serialport.Write() - как правильно форматировать байты

Я должен поговорить с весами, заставив их ПЕЧАТЬ программно.

В руководстве говорится, что команда печати - это просто P, заканчивающийся возвратом каретки. Я использую следующий код:

Byte[] bytes = {80, 13};
_sp.Write(bytes,0,bytes.Length);

Но каждый раз я получаю код ES от весов, что означает ошибку, но все равно печатает. Я просто хочу выяснить, почему, несмотря на то, что это работает, я получаю обратно ES.

Любые идеи? Формат bytes[] правильный?


person sarsnake    schedule 12.03.2009    source источник


Ответы (1)


Байты верны, в соответствии с тем, что вы говорите, что указано в руководстве.

Возможно, в руководстве неясно (или это указано в другом месте), и под «возвратом каретки» на самом деле подразумевается последовательность новой строки CR + LF, которая используется в некоторых системах (например, MS-DOS). Тогда байты будут такими:

Byte[] bytes = { 80, 13, 10 };
person Guffa    schedule 12.03.2009
comment
Я получаю код ES обратно каждый раз... если я не добавляю 10, я получаю его время от времени. Не знаю, почему чертовому балансу не нравится четко указанный формат. - person sarsnake; 12.03.2009
comment
Как я уже говорил, я получаю вес, отправленный обратно на весы. Но я хотел бы либо проглотить ES, либо понять, ПОЧЕМУ я получаю его обратно. - person sarsnake; 12.03.2009