PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » WriteSerialPortData как Printbin


WriteSerialPortData как Printbin

Сообщений 1 страница 5 из 5

1

Доброго времени суток!

Прошу разъяснить как в Пурике в порт отправлять данные в формате HEX

Например в Bascom команда Printbin

Dim A As Byte
Dim B As Byte
Dim X1 As Byte
Dim X2 As Byte
Dim X3 As Byte
Dim C1 As Byte
Dim C2 As Byte
Dim C3 As Byte

Переменные

A = 137
B = 7
X1 = 31
X2 = 31
X3 = 31
C1 = 0
C2 = 0
C3 = 0

Printbin A ; B ; X1 ; X2 ; X3 ; C1 ; C2 ; C3

Выведет как

89 07 1F 1F 1F 00 00 00

Как тоже самое сделать на Пурике?

0

2

Printbin отправляет в двоичном виде. Один из вариантов.

Код:
Dim Buff.a(7)

Buff(0) = 137
Buff(1) = 7
Buff(2) = 31
Buff(3) = 31
Buff(4) = 31
Buff(5) = 0
Buff(6) = 0
Buff(7) = 0

If OpenSerialPort(0, "COM4", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 255, 255)
  WriteSerialPortData(0, @Buff(), 8)
  CloseSerialPort(0)
Else
  Debug "Не удалось открыть порт"
EndIf

Создается байтовый массив и заполняется. Открывается порт и отправляются данные. Открывать и закрывать порт не обязательно для каждой посылки. Обычно порт открывают при начале передачи и закрывают когда больше по нему передавать не планируется (например когда завершается работа программы или был выбран другой порт).

0

3

Спасибо работает :cool:

0

4

Как из одной программы отправлять данные в два разных порта?

0

5

Функцией OpenSerialPort открываете порты с разными идентификаторами и отправляете данные.

Код:
OpenSerialPort(0, "COM4", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 255, 255)
OpenSerialPort(1, "COM2", 115200, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 255, 255)

WriteSerialPortData(0, @Buff(), 8)
WriteSerialPortData(1, @Buff2(), 20)

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » WriteSerialPortData как Printbin