Вы должны тщательно прочитать серийный стек ... его не очень легко, но он способен.
Вы можете напрямую прочитать последовательный порт. В этом случае вам не нужен последовательный переадресатор. Есть кое-что, о чем нужно позаботиться.
Например, если вы хотите прочитать серийное сообщение, отправляемое на последовательный порт вашего ПК (сенсорные панели usb работают как серийные, так как они используют usb для последовательных преобразователей, например, FTDI-чип).
в C# (то же самое для Java и т. Д.) Вы можете читать потоки байтов, которые поступают в последовательный порт. Вы можете анализировать эти байтовые потоки, чтобы извлечь стандартное последовательное сообщение тиньо.
Это как-то объяснено в TEP #113, хотя у него есть некоторые проблемы, но вы должны быть в состоянии найти эти проблемы и сделать вашу программу работы.
Как указано в ТЭП 113, стандартный серийный пакет что-то вроде:
7e 40 09 00 быть эф 05 7d 5d 06 01 02 03 04 05 7e
Это означает, что пакет начинается с hex 7E
(я считаю его 126 или 127) и заканчивается также 7E
. Последние 2 байта составляют CRC
пакета. Таким образом, вы можете в своей программе C# начать чтение из последовательного порта, когда вы столкнулись с 7E
, и прекратите чтение, когда вы достигнете следующего 7E
в потоке. Все будет между вами и вашим пакетом.
Вы должны быть осторожны escaping
, который, если 7E
является частью контента пакета, чтобы не путать с начальным и конечным dilimeters, он будет экранировать к чему-то еще ... что это также объясняется тем, что TEP 113.
Я считаю, что для вычисления CRC был написан код C++, который вы можете легко преобразовать в код C# или Java.
Также проверьте исходный код Serial.h
, который содержит некоторые сведения о том, как формируется последовательный пакет в TinyOS.