Соединение MT166-С не отвечает. С ++ Библиотека - PullRequest
0 голосов
/ 19 марта 2020

У меня есть дозатор 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);

Аналогично документации (стр. 3.1 в MT166- C .docx - Ссылка Тоже )

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 - без изменений.

Спасибо за ваше время.

...