custom_protocols
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
custom_protocols [2020/01/02 10:31] – [readRegister] emozolyak | custom_protocols [2021/07/13 11:12] – [The examples of custom protocols] emozolyak | ||
---|---|---|---|
Line 93: | Line 93: | ||
Three parameters are passed to it as arguments: | Three parameters are passed to it as arguments: | ||
- | reg - Table (structure) with register parameters | + | ***reg** - Table (structure) with register parameters |
- | device - Table (structure) with register type parameters (that were defined in createDevices) | + | ***device** - Table (structure) with register type parameters (that were defined in createDevices) |
- | unitId – device ID for the bus or other ID. For instance, Slave ID in ModBus RTU or Unit ID in ModBus TCP. | + | ***unitId** – device ID for the bus or other ID. For instance, Slave ID in ModBus RTU or Unit ID in ModBus TCP. |
- | There are such attributes in the reg structure: | + | There are such attributes in the __reg__ |
- | internalAddr - Recalculated register address. This number is recalculated from the specified number system with shift added to it. | + | *internalAddr - Recalculated register address. This number is recalculated from the specified number system with shift added to it. |
- | addr - The original address of the register that the user entered. | + | *addr - The original address of the register that the user entered. |
- | dataType – The type of data that the user specified for the register. 0 = Bit, 1 = Byte, 2 = Word, 3 = Double Word, 4 = UnixTime | + | *dataType – The type of data that the user specified for the register. 0 = Bit, 1 = Byte, 2 = Word, 3 = Double Word, 4 = UnixTime |
- | There are such attributes in the device | + | There are such attributes in the __device__ |
- | shift - The shift value from the corresponding row in createDevices | + | *shift - The shift value from the corresponding row in createDevices |
- | base - base value from the corresponding row in createDevices | + | *base - base value from the corresponding row in createDevices |
- | xtraFields – xtraFields value from the corresponing row in createDevices | + | *xtraFields – xtraFields value from the corresponing row in createDevices |
These parameters are passed in order to be able to correctly and fully compose a request according to the protocol. | These parameters are passed in order to be able to correctly and fully compose a request according to the protocol. | ||
- | To send a request to the device // | + | To send a request to the device // |
- | The sendBytes | + | ^ Function ^ Arguments ^ Returns ^ |
- | The sendString | + | |sendBytes |
- | На вход | + | |sendString |
- | На вход | + | |readBytes |
- | Если необходимо закрыть соединение | + | |readString |
- | Если необходимо сделать паузу, то можно вызвать функцию sleep. Ее единственным аргументом должно быть время в микросекундах. Пример: | + | To close connection |
- | Для работы с битами можно использовать библиотеку bitop [4]. | + | To make a delay, //sleep// function can be used. Its only argument is time in microseconds, |
- | Для отладки и вывода диагностических сообщений можно использовать процедуры ERROR, INFO, DEBUG и TRACE которые доступны и в обычных сценариях Lua [5]. | + | For bit processing refer to bitop library and this [[useful_programs# |
- | Что бы лучше понять как это все работает давайте рассмотрим пример функции | + | For debugging and diagnostic messages you can use ERROR, INFO, DEBUG or TRACE from the users Lua scripts - see [[write_to_logs | this]]. |
+ | |||
+ | To better understand the custom protocol application, | ||
<code lua> | <code lua> | ||
Line 447: | Line 449: | ||
*[[http:// | *[[http:// | ||
*[[http:// | *[[http:// | ||
+ | *[[http:// | ||
*Other devices that were connected using [[http:// | *Other devices that were connected using [[http:// | ||
custom_protocols.txt · Last modified: 2023/02/21 17:52 by emozolyak