modem.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. }
  31. if modem2.ModuleInit(false) {
  32. curModemType = EC200U
  33. return true
  34. }
  35. return false
  36. }
  37. func ModemExit() {
  38. switch curModemType {
  39. case Air720U:
  40. modem1.ModuleExit()
  41. case EC200U:
  42. modem2.ModuleExit()
  43. }
  44. }
  45. func GetCurModemType() ModemType {
  46. return curModemType
  47. }
  48. func GetIMEI() string {
  49. switch curModemType {
  50. case Air720U:
  51. return modem1.GetIMEI()
  52. case EC200U:
  53. return modem2.GetIMEI()
  54. default:
  55. return ErrUnknownModemTypeMsg
  56. }
  57. }
  58. func GetRSSI() string {
  59. switch curModemType {
  60. case Air720U:
  61. return modem1.GetRSSI()
  62. case EC200U:
  63. return modem2.GetRSSI()
  64. default:
  65. return ErrUnknownModemTypeMsg
  66. }
  67. }
  68. func GetSimICCID() string {
  69. switch curModemType {
  70. case Air720U:
  71. return modem1.GetSimICCID()
  72. case EC200U:
  73. return modem2.GetSimICCID()
  74. default:
  75. return ErrUnknownModemTypeMsg
  76. }
  77. }