github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/plugins/modbus_tcp/types.go (about) 1 // This file is part of the Smart Home 2 // Program complex distribution https://github.com/e154/smart-home 3 // Copyright (C) 2016-2023, Filippov Alex 4 // 5 // This library is free software: you can redistribute it and/or 6 // modify it under the terms of the GNU Lesser General Public 7 // License as published by the Free Software Foundation; either 8 // version 3 of the License, or (at your option) any later version. 9 // 10 // This library is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 // Library General Public License for more details. 14 // 15 // You should have received a copy of the GNU Lesser General Public 16 // License along with this library. If not, see 17 // <https://www.gnu.org/licenses/>. 18 19 package modbus_tcp 20 21 import ( 22 "github.com/e154/smart-home/common" 23 m "github.com/e154/smart-home/models" 24 "github.com/e154/smart-home/plugins/node" 25 ) 26 27 const ( 28 // Name ... 29 Name = "modbus_tcp" 30 // FuncEntityAction ... 31 FuncEntityAction = "entityAction" 32 // DeviceTypeModbusTcp ... 33 DeviceTypeModbusTcp = node.DeviceType("modbus_tcp") 34 35 Version = "0.0.1" 36 ) 37 38 const ( 39 // AttrSlaveId ... 40 AttrSlaveId = "slave_id" 41 // AttrAddressPort ... 42 AttrAddressPort = "address_port" 43 ) 44 45 // NewAttr ... 46 func NewAttr() m.Attributes { 47 return nil 48 } 49 50 // NewSettings ... 51 func NewSettings() m.Attributes { 52 return m.Attributes{ 53 AttrSlaveId: { 54 Name: AttrSlaveId, 55 Type: common.AttributeInt, 56 }, 57 AttrAddressPort: { 58 Name: AttrAddressPort, 59 Type: common.AttributeInt, 60 }, 61 } 62 } 63 64 // ModBusResponse ... 65 type ModBusResponse struct { 66 Error string `json:"error"` 67 Time float64 `json:"time"` 68 Result []uint16 `json:"result"` 69 } 70 71 // ModBusCommand ... 72 type ModBusCommand struct { 73 Function string `json:"function"` 74 Address uint16 `json:"address"` 75 Count uint16 `json:"count"` 76 Command []uint16 `json:"command"` 77 }