0

我有一台 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 &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 使用连接 - 无需更改。

感谢您的时间。

4

1 回答 1

0
  1. 首先,您需要检查外部设备的物理可用性。
  2. 检查波特率、数据位、停止位、行控制参数...
  3. 检查操作系统硬件列表以了解驱动程序的正确性。
于 2021-01-22T12:18:19.430 回答