package test import ( "apsClient/service" "encoding/binary" "log" "testing" ) func TestWriteHoldingRegister(t *testing.T) { Init() ipPort := "127.0.0.1:502" address := 1001 value := 1001 err := service.WriteHoldingRegister(ipPort, address, value) if err != nil { log.Fatal(err) } var readValue int raw, err := service.ReadByModbusTCP(ipPort, address, 1) if err != nil { log.Fatal(err) } if len(raw) == 2 { readValue = int(binary.BigEndian.Uint16(raw)) } else if len(raw) == 4 { readValue = int(binary.BigEndian.Uint32(raw)) } else { log.Fatal("unknown supported raw value length") } if readValue != value { t.Logf("read value:%v not equal write value:%v", readValue, value) t.Fail() } else { t.Logf("write ok, read value:%v equal write value:%v", readValue, value) } }