zhangqian
2023-12-08 94dadbe9b05b24bf710ec237c00e9ec7798b7afc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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)
    }
}