Задача в опросе весов CAS AP через RS 232 или СОМ порт.
Как отправить команду, поскольку что ENQ, что DC1 или DC2 не имеют символьного аналога? Может у кого есть соображения как отправлять ASCII команды, используя коды символов. Теоретически это должно быть так:
int value = ??? ENQ
char c = Convert.ToChar(value);
byte[] mes = System.Text.Encoding.ASCII.GetByte(new byte[] { c });
Или как вариант можно было бы и так:
string comand = "???";
byte[] mes = Encoding.ASCII.GetBytes(comand);
Ну и:
_serialPort.Write(mes, 0, mes.Length);
Отправлять следует байты, найдете в таблице ASCII:
someSerialPort.Write(bytesToSend, 0, bytesToSend.Length);
Описание функции смотрите на MSDN: ссылка
Для какой-то обработки принятых данных надо присоединить Ваш метод к событию DataReceived
Например:
_port.DataReceived += new SerialDataReceivedEventHandler(SomeMethod);
...
public void SomeMethod(object sender, SerialDataReceivedEventArgs e)
{
...
var receivedBytes = _someSerialPort.Read();
}
Примерная реализация метода Read():
public byte[] Read()
{
var buffer = new byte[_someSerialPort.BytesToRead];
_someSerialPort.Read(buffer, 0, buffer.Length);
return buffer;
}
На MSDN хорошо описаны методы, рекомендую к ознакомлению: ссылка
P.S. я в своем рабочем проекте реализовывал классы для работы с COM-портом, некоторая информация может быть Вам будет полезна: ссылка на github
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости