Jump to content
Форум по продукции MOXA

Как через МОХА 5232 передавть байты с "0" в сеть 485 через IP Serial lib?


Recommended Posts

В команде nsio_write(port_id: Longint; buf: PChar; - Режет всё что в строке за байтом = "0"(ноль) всместе нулём

(оно и понятно). наверное есть какие-то методы передавать всю строку "Нулями"

Пишу программу на DELPHI.

(Библиотека IP Serial LIB)

 

Спасибо зареннее Всем ответившим!.

C Уважением Игорь.

Link to comment

Добрый день,

Сейчас нет NPort "под рукой", не помню особенностей. А что реально передается в порт после нулей? Абсолютно ничего ничего (передача просто обрывается на первом же нуле в строке)?

Вообше, передача не должна обрываться при "нуле". В функции nsio_write() есть параметр len, поэтому "0" не воспринимается как конец строки. Функция считает длину строки исходя из указанной длины, а не при достижении первого "нуля".

Link to comment

Разобрался - дело в том, что когда в процедуре обьявляется Х:PChar А потом ему присваивается нечто Чаровское обьявленное ТАМ ЖЕ, то может произойти такая картина: чар порежет всё до Нуля так как он там инициализируется, в прараметр записи попадёт его (Чара ) "порезанная длина до 0, и собственно, всё плохо... Заморачиваться с ключами компиляции не стал... просто создаю ACH: Array of Char; Сначала SetLength (ACH, 255); ACH [2]:= chr(0); и т.д. (потом уменьшаю до приемлемой длинны) в результате в параметр размерности попадает правильная цифра и строка NSIO_WRITE (...@ACH, length(ACH)); выполняется корректно;

 

Спасбо за ответ.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...