Цитата:
Сообщение от fen
Проблема осталась в том, что предыдущая программа интерпретировала данные с RFID-карты как 612815812861289619224825415824815830248 (40 знаков), по твоему алгоритму выдаёт данные 1111160254255160255110147 (26 знаков).
Не хочется 150 карточек сотрудников перезаписывать в базу, но судя по всему придётся.
|
а сколько за раз приходит байт? по идее как раз 26 (в моем примере цикл идет до значения количества пришедших байт), если так, то попробуйте увеличить системный буфер приема
SetupComm, т.к. могут происходить склейки и разрывы данных, то накапливать данные в локальный буфер, а потом парсить. да и стоит попробовать просто посмотреть, что именно принимает переделываемая программа
например вот этим и корректность скорости и прочих параметров стурктуры
DCB
судя по разительному отличию данных "правильной" программы и вашей - вполне вероятно выставлена неверная скорость приема порта.
еще закрадываются смутные сомнения по поводу правильного понимания смысла приходящих данных

т.е. их интерпретации... алгоритм, что я привел, подразумевает, что ридер присылает номер карточки никак "не обернутым" и в одном байте посылки содержится значение одной цифры номера...но это сможет показать уже тот же PortMon небезызвестного Руссиновича (ИМХО: программа хороша, но для коротких посылок/ответов; при размере посылки в 300 байт у меня отображала только первые 24 байта, но зато при отправке/приеме раз в 50-100 мс отлично себя показала), как альтернативу могу предложить
Free Serial Port Monitor