modem.go 1.5 KB

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