bridge.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. // Author: NiuJiuRu
  2. // Email: niujiuru@qq.com
  3. package air720u
  4. /*
  5. #include "air720u.h"
  6. */
  7. import "C"
  8. import (
  9. "fmt"
  10. "strconv"
  11. "unsafe"
  12. )
  13. // 打开与模块的通讯
  14. func air720U_ComInit() (int, error) {
  15. ret := int(C.Air720U_ComInit())
  16. if ret != 0 {
  17. return ret, fmt.Errorf("an error occurred while calling the C.Air720U_ComInit() function(%d)", ret)
  18. }
  19. return 0, nil
  20. }
  21. // 关闭与模块的通讯
  22. func air720U_ComExit() error {
  23. ret := int(C.Air720U_ComExit())
  24. if ret != 0 {
  25. return fmt.Errorf("an error occurred while calling the C.Air720U_ComExit() function(%d)", ret)
  26. }
  27. return nil
  28. }
  29. func air720U_Repower() error {
  30. ret := int(C.Air720U_Repower())
  31. if ret != 0 {
  32. return fmt.Errorf("an error occurred while calling the C.Air720U_Repower() function(%d)", ret)
  33. }
  34. return nil
  35. }
  36. // 获取模块的标识号
  37. func air720U_GetIMEI() (string, error) {
  38. var buf [16]byte
  39. ret := int(C.Air720U_GetIMEI((*C.char)(unsafe.Pointer(&buf[0]))))
  40. if ret != 15 {
  41. return "", fmt.Errorf("an error occurred while calling the C.Air720U_GetIMEI() function(%d)", ret)
  42. }
  43. return C.GoString((*C.char)(unsafe.Pointer(&buf[0]))), nil
  44. }
  45. // 获取网络注册状态
  46. func air720U_GetCregState() (int, error) {
  47. ret := int(C.Air720U_GetCregState())
  48. if ret < 0 {
  49. return -1, fmt.Errorf("an error occurred while calling the C.Air720U_GetCregState() function(%d)", ret)
  50. }
  51. return ret, nil
  52. }
  53. // 获取当前信号强度
  54. func air720U_GetRSSIFromCSQ() (string, error) {
  55. ret := int(C.Air720U_GetRSSIFromCSQ())
  56. if ret < 0 {
  57. return "", fmt.Errorf("an error occurred while calling the C.Air720U_GetRSSIFromCSQ() function(%d)", ret)
  58. }
  59. return strconv.Itoa(ret), nil
  60. }
  61. // 返回电话卡的状态
  62. func air720U_IsSimCardReady() (bool, error) {
  63. ret := int(C.Air720U_IsSimCardReady())
  64. if ret < 0 {
  65. return false, fmt.Errorf("an error occurred while calling the C.Air720U_IsSimCardReady() function(%d)", ret)
  66. }
  67. return ret == 1, nil
  68. }
  69. // 获取电话卡标识号
  70. func air720U_GetSimICCID() (string, error) {
  71. var buf [21]byte
  72. ret := int(C.Air720U_GetSimICCID((*C.char)(unsafe.Pointer(&buf[0]))))
  73. if ret != 20 {
  74. return "", fmt.Errorf("an error occurred while calling the C.Air720U_GetSimICCID() function(%d)", ret)
  75. }
  76. return C.GoString((*C.char)(unsafe.Pointer(&buf[0]))), nil
  77. }