【问题标题】:MT166-С connection not responding. С++ LibraryMT166-С 连接无响应。 С++ 库
【发布时间】:2020-03-19 17:45:30
【问题描述】:

我有一个 MT166-C 分配器。我正在编写 C++ 代码来管理分配器。

在开发中使用 SDK(附加 link),我遇到了问题。 为了使用分配器,我打开了 COM 端口。代码:

int input_port;
string com_str = "\\\\.\\COM";

std::cin >> input_port;
std::cout << "\nInput COM value: " << input_port << std::endl;

com_str = com_str + to_string(input_port);

char* cstr = &com_str[0];
char* port_com = cstr;

HANDLE port = CommOpenWithBaut(port_com, 9600);

if (port == 0)
{
    std::cout << "Cannot open connect!\n\n" << std::endl;

    return -1;
}

在我使用 HANDLE 端口调用方法之后。

int iRetn = 0;
BYTE byStatus = 0;

string str = "";

iRetn = MT166_GetStatus(hPortHandle, 0x98, byStatus);

类似于文档(MT166-C.docx 中的第 3.1 页 - Link Too

DLLEXPORT int APIENTRY MT166_GetStatus(HANDLE hComHandle, BYTE CardNum,BYTE &amp;byStatus)
///Parameter:
// hComHandle: Input parameter, serial port handle, obtained by opening the serial port
// CarderNum: Input parameter, card dispenser NO. Default is 0x98
// byStatus: output parameter, card dispenser status word

//Return value:
//Succeed, return value is 0
//failed, return value is not 0 = -1 no communication

作为回应,我得到代码 -1 - 没有通信。对于其他方法,情况相同。

我不明白为什么分配器没有回答(没有沟通)。如果有任何帮助,我将不胜感激。 我通过 rs232 电缆或 USB 适配器 rs232 使用连接 - 无需更改。

感谢您的宝贵时间。

【问题讨论】:

  • 您确定端口正确吗?你确定波特率应该是9600吗?
  • 谢谢,但问题已解决。设备无法正常工作,硬件问题。我直接连接到读卡器并使用它。是的,该设备适用于 9600 和 38400 速率

标签: c++ serial-port cardreader


【解决方案1】:
  1. 首先,您需要检查外部设备的物理可用性。
  2. 检查波特率、数据位、停止位、行控制参数...
  3. 检查操作系统硬件列表以了解驱动程序的正确性。

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 2023-03-17
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多