modem.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package netmgrd
  2. import (
  3. modem1 "hnyfkj.com.cn/rtu/linux/air720u"
  4. modem2 "hnyfkj.com.cn/rtu/linux/ec200u"
  5. )
  6. type ModemType int
  7. const (
  8. Unknown ModemType = iota
  9. Air720U // 合宙4G调制解调器, 注册网卡名为"eth2"
  10. EC200U // 移远4G调制解调器, 注册网卡名为"usb0"
  11. )
  12. var (
  13. curModemType ModemType
  14. )
  15. const ErrUnknownModemTypeMsg = "未知的调制解调器类型" // ?
  16. func (m ModemType) String() string {
  17. switch m {
  18. case Air720U:
  19. return "合宙"
  20. case EC200U:
  21. return "移远"
  22. default:
  23. return "未知"
  24. }
  25. }
  26. func ModemInit() bool {
  27. if modem1.ModuleInit(false) {
  28. curModemType = Air720U
  29. return true
  30. } else {
  31. modem1.ModuleExit()
  32. }
  33. if modem2.ModuleInit(false) {
  34. curModemType = EC200U
  35. return true
  36. } else {
  37. modem2.ModuleExit()
  38. }
  39. return false
  40. }
  41. func ModemExit() {
  42. switch curModemType {
  43. case Air720U:
  44. modem1.ModuleExit()
  45. case EC200U:
  46. modem2.ModuleExit()
  47. }
  48. }
  49. func GetCurModemType() ModemType {
  50. return curModemType
  51. }
  52. func GetIMEI() string {
  53. switch curModemType {
  54. case Air720U:
  55. return modem1.GetIMEI()
  56. case EC200U:
  57. return modem2.GetIMEI()
  58. default:
  59. return ErrUnknownModemTypeMsg
  60. }
  61. }
  62. func GetRSSI() string {
  63. switch curModemType {
  64. case Air720U:
  65. return modem1.GetRSSI()
  66. case EC200U:
  67. return modem2.GetRSSI()
  68. default:
  69. return ErrUnknownModemTypeMsg
  70. }
  71. }
  72. func GetSimICCID() string {
  73. switch curModemType {
  74. case Air720U:
  75. return modem1.GetSimICCID()
  76. case EC200U:
  77. return modem2.GetSimICCID()
  78. default:
  79. return ErrUnknownModemTypeMsg
  80. }
  81. }