modem.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. func (m ModemType) String() string {
  16. switch m {
  17. case Air720U:
  18. return "合宙"
  19. case EC200U:
  20. return "移远"
  21. default:
  22. return "未知"
  23. }
  24. }
  25. func ModemInit() bool {
  26. if modem1.ModuleInit(false) {
  27. curModemType = Air720U
  28. return true
  29. } else {
  30. modem1.ModuleExit()
  31. }
  32. if modem2.ModuleInit(false) {
  33. curModemType = EC200U
  34. return true
  35. } else {
  36. modem2.ModuleExit()
  37. }
  38. return false
  39. }
  40. func ModemExit() {
  41. switch curModemType {
  42. case Air720U:
  43. modem1.ModuleExit()
  44. case EC200U:
  45. modem2.ModuleExit()
  46. }
  47. }
  48. func GetCurModemType() ModemType {
  49. return curModemType
  50. }
  51. func GetIMEI() string {
  52. switch curModemType {
  53. case Air720U:
  54. return modem1.GetIMEI()
  55. case EC200U:
  56. return modem2.GetIMEI()
  57. default:
  58. return "未知的调制解调器类型"
  59. }
  60. }
  61. func GetRSSI() string {
  62. switch curModemType {
  63. case Air720U:
  64. return modem1.GetRSSI()
  65. case EC200U:
  66. return modem2.GetRSSI()
  67. default:
  68. return "未知的调制解调器类型"
  69. }
  70. }
  71. func GetSimICCID() string {
  72. switch curModemType {
  73. case Air720U:
  74. return modem1.GetSimICCID()
  75. case EC200U:
  76. return modem2.GetSimICCID()
  77. default:
  78. return "未知的调制解调器类型"
  79. }
  80. }