| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Платформы Windows Mobile и Windows Embedded > Байт данных из PALM по RS232 |
| Автор: 85237 13.10.2008, 12:15 |
| Необходимо передать из PALM в устройство команду из последовательности байтов по RS232. ********** Приложение под Windows создано и работает. Например, передача: STX-старт, A, B, C, D, ETX-стоп Монитор порта показывает: Serial0 SUCCESS Length 1: 02 Serial0 SUCCESS Length 1: 41 Serial0 SUCCESS Length 1: 42 Serial0 SUCCESS Length 1: 43 Serial0 SUCCESS Length 1: 44 Serial0 SUCCESS Length 1: 03 ********** Передача команды в PALM portOpened = SrmOpen(serPortCradleRS232Port, 9600, &portRef); SrmSend(portRef, "2", 1, &error); SrmSend(portRef, "A", 1, &error); SrmSend(portRef, "B", 1, &error); SrmSend(portRef, "C", 1, &error); SrmSend(portRef, "D", 1, &error); SrmSend(portRef, "3", 1, &error); SrmClose(portRef); Монитор порта показывает: Serial0 SUCCESS Length 1: 32 Serial0 SUCCESS Length 1: 41 Serial0 CANCELLED Length 4: 42 43 44 33 ********** Совсем не то что требуется. Передаются только символы Chr а принимаются Hx А что сделать, чтобы устройство приняло, например 02 ? Очень нужно... Спасибо... |
| Автор: Partizan 14.10.2008, 13:25 |
| очевидно, что нужно передавать символы соответствующие коду... ((char)2) |
| Автор: 85237 15.10.2008, 08:28 |
| Спасибо всем. Проблему решил следующим образом: //*************************** SrmOpen(serPortCradleRS232Port, 9600, &portRef); mess[1] = 0x00; mess[2] = 0x00; // mess[3] = 0x02; mess[4] = 'A'; mess[5] = 'B'; mess[6] = 'C'; mess[7] = 'D'; mess[8] = 0x03; // mess[9] = 0x00; mess[10] = 0x00; for (i=1; i<11; i++) { SrmReceive (portRef, &mess[i], 1, 1, &error); SrmSend(portRef, &mess[i], 1, &error); SrmSendWait(portRef); } SrmClose(portRef); //*************************** |