tcpclient_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2014 Quoc-Viet Nguyen. All rights reserved.
  2. // This software may be modified and distributed under the terms
  3. // of the BSD license. See the LICENSE file for details.
  4. package test
  5. import (
  6. "log"
  7. "os"
  8. "testing"
  9. "time"
  10. "github.com/goburrow/modbus"
  11. )
  12. const (
  13. tcpDevice = "localhost:5020"
  14. )
  15. func TestTCPClient(t *testing.T) {
  16. client := modbus.TCPClient(tcpDevice)
  17. ClientTestAll(t, client)
  18. }
  19. func TestTCPClientAdvancedUsage(t *testing.T) {
  20. handler := modbus.NewTCPClientHandler(tcpDevice)
  21. handler.Timeout = 5 * time.Second
  22. handler.SlaveId = 1
  23. handler.Logger = log.New(os.Stdout, "tcp: ", log.LstdFlags)
  24. handler.Connect()
  25. defer handler.Close()
  26. client := modbus.NewClient(handler)
  27. results, err := client.ReadDiscreteInputs(15, 2)
  28. if err != nil || results == nil {
  29. t.Fatal(err, results)
  30. }
  31. results, err = client.WriteMultipleRegisters(1, 2, []byte{0, 3, 0, 4})
  32. if err != nil || results == nil {
  33. t.Fatal(err, results)
  34. }
  35. results, err = client.WriteMultipleCoils(5, 10, []byte{4, 3})
  36. if err != nil || results == nil {
  37. t.Fatal(err, results)
  38. }
  39. }