Size: a a a

2020 February 15

DB

Dmitry Belkevich in Delphi & Lazarus
или вариантную запись, она более безопасна
источник

DB

Dmitry Belkevich in Delphi & Lazarus
гуглить: variant record delphi
источник

P

PTyTb in Delphi & Lazarus
Alexey Shumkin
Профессионализм - это постоянное совершенствование, а не то, чему научили...
А ты хочешь быть им?
Именно по этому и решил написать модбас слейв сам, а не скачать готовую программу, вот уже узнал что real использовать плохо, поменяю на double
источник

AS

Alexey Shumkin in Delphi & Lazarus
PTyTb
Именно по этому и решил написать модбас слейв сам, а не скачать готовую программу, вот уже узнал что real использовать плохо, поменяю на double
Ну, real это "внутри" тот же double, только  "устарел", но остался для совместимости :)
источник

RS

Renat Suleymanov in Delphi & Lazarus
Alexey Shumkin
Ну, real это "внутри" тот же double, только  "устарел", но остался для совместимости :)
Не совсем и не всегда. В частности в FPC размер может быть разный https://www.freepascal.org/docs-html/ref/refsu5.html
источник

DB

Dmitry Belkevich in Delphi & Lazarus
да, с real есть особенности, и лучше его не использовать, неудобный тип
источник

RS

Renat Suleymanov in Delphi & Lazarus
Dmitry Belkevich
да, с real есть особенности, и лучше его не использовать, неудобный тип
Использовать, осознавая, что его размер зависит от платформы. В частных случаях, думаю, наоборот это может оказаться полезным
источник

P

PTyTb in Delphi & Lazarus
Понял принял, спасибо)
источник

V

VXDRV in Delphi & Lazarus
PTyTb
Именно по этому и решил написать модбас слейв сам, а не скачать готовую программу, вот уже узнал что real использовать плохо, поменяю на double
Modbus Slave RTU в вашем ПО?
источник

P

PTyTb in Delphi & Lazarus
Да. Есть база данных в ней с кучи объектов данные (показания датчиков и приборов) мне нужно их переправить в облоко owencloud, для этого используется их модем который опрашивает устройства по modbus, вот я и хочу программу заставить отвечать на эти запросы и передавать данные этому модему
источник

V

VXDRV in Delphi & Lazarus
А как вы разрулили таймауты пакетов?
источник

P

PTyTb in Delphi & Lazarus
В смысле?
источник

P

PTyTb in Delphi & Lazarus
Пока я только принимаю запрос собираю все нужные данные и пытаюсь сформировать запрос для отправки
источник

V

VXDRV in Delphi & Lazarus
VXDRV
А как вы разрулили таймауты пакетов?
Ну пакеты-запросы от общего потока данных...
источник

P

PTyTb in Delphi & Lazarus
Их же делает мастер, а слейв просто отвечает, единственное есть задержка чтения запроса в 50 милисекунд
источник

V

VXDRV in Delphi & Lazarus
Ну слейв же должен определить... Это начало пакета или середина...
источник

V

VXDRV in Delphi & Lazarus
Вдруг обрыв был...
источник

P

PTyTb in Delphi & Lazarus
Для этого проверяется контрольная сумма
источник

V

VXDRV in Delphi & Lazarus
PTyTb
Для этого проверяется контрольная сумма
Надо по таймауту делать сброс счётчика байтов и по таймауту от последнего байта делать анализ принятого пакета... Самый гимор - реализовать этот механизм...
источник

P

PTyTb in Delphi & Lazarus
ff:string = 7,554
f1:=strtofloat(ff);
f1= 7.5540000000000003
Какого!?
источник