我有一台 MT166-C 点胶机。我正在编写 C++ 代码来管理分配器。
在开发中使用 SDK(附上链接),我遇到了问题。为了使用分配器,我打开了 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 - Link Too中的第 3.1 页)
DLLEXPORT int APIENTRY MT166_GetStatus(HANDLE hComHandle, BYTE CardNum,BYTE &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 使用连接 - 无需更改。
感谢您的时间。