commander.go 715 B

123456789101112131415161718192021222324252627282930313233343536
  1. package gate_command
  2. import (
  3. dbmodel "property-device/model"
  4. "property-device/utils/gate_utils"
  5. )
  6. type Commander interface {
  7. Open() error
  8. Reboot() error
  9. Command() bool
  10. }
  11. func NewCommander(gateInfo *dbmodel.TGate) Commander {
  12. switch gateInfo.Protocol {
  13. case gate_utils.GateProtocolYufanHttpV1:
  14. byIp := false
  15. if gate_utils.CheckYufanIp(gateInfo.Ip, gateInfo.Port, gateInfo.Password) {
  16. byIp = true
  17. }
  18. return &YufanHttpv1Commander{
  19. GateInfo: gateInfo,
  20. ByIp: byIp,
  21. }
  22. case gate_utils.GateProtocolSaiboMqttV1:
  23. return &SaiboMqttv1Commander{
  24. GateInfo: gateInfo,
  25. }
  26. case gate_utils.GateProtocolSaiboHttpV1:
  27. return &SaiboHttpv1Commander{
  28. GateInfo: gateInfo,
  29. }
  30. }
  31. return nil
  32. }