123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package helper
- import (
- "city_chips/pkg/log"
- "fmt"
- "time"
- "github.com/simonvetter/modbus"
- "github.com/spf13/viper"
- )
- func ModBus(conf *viper.Viper, logger *log.Logger) error {
- var client *modbus.ModbusClient
- var err error
- //创建并配置Modbus客户端
- client, err = modbus.NewClient(&modbus.ClientConfiguration{
- URL: conf.GetString("Modbus.url"),
- Timeout: 3 * time.Second,
- })
- if err != nil {
- logger.Error(fmt.Errorf("创建Modbus客户端失败: %v", err).Error())
- return err
- }
- defer client.Close()
- err = client.Open()
- if err != nil {
- logger.Error(fmt.Errorf("连接打开失败: %v", err).Error())
- return err
- }
- // LatestData := make(map[int]Temperature)
- // LatestDatas = nil
- // for {
- // for i := 1; i <= 6; i++ {
- // client.SetUnitId(uint8(i))
- // temperature, err := client.ReadRegister(0, modbus.INPUT_REGISTER)
- // humidity, err := client.ReadRegister(1, modbus.INPUT_REGISTER)
- // if err != nil {
- // simple_zap.WithCtx(context.Background()).Sugar().Error(err, "读取失败")
- // break
- // }
- // //fmt.Printf("设备:%v 温度: %v\n", i, int16(temperature))
- // //fmt.Printf("设备:%v 湿度: %v\n", i, int16(humidity))
- // LatestData[i] = Temperature{
- // SlaveID: i,
- // Temperature: float64(temperature) / 10,
- // Humidity: float64(humidity) / 10,
- // UploadTime: Time(time.Now()),
- // }
- // }
- // LatestDatas = LatestData
- // }
- return nil
- }
|