bridge.go 1006 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Author: NiuJiuRu
  2. // Email: niujiuru@qq.com
  3. package air530z
  4. /*
  5. #include "air530z.h"
  6. */
  7. import "C"
  8. import (
  9. "fmt"
  10. "unsafe"
  11. )
  12. // 打开与模块的通讯
  13. func air530Z_ComInit() (int, error) {
  14. ret := int(C.Air530Z_ComInit())
  15. if ret != 0 {
  16. return ret, fmt.Errorf("an error occurred while calling the C.Air530Z_ComInit function(%d)", ret)
  17. }
  18. return 0, nil
  19. }
  20. // 关闭与模块的通讯
  21. func air530Z_ComExit() error {
  22. ret := int(C.Air530Z_ComExit())
  23. if ret != 0 {
  24. return fmt.Errorf("an error occurred while calling the C.Air530Z_ComExit function(%d)", ret)
  25. }
  26. return nil
  27. }
  28. // 获取当前的2D位置
  29. func air530Z_Get2DPosition() (lat string, lon string, err error) {
  30. var bufLat, bufLon [64]byte
  31. ret := int(C.Air530Z_GetPos2D((*C.char)(unsafe.Pointer(&bufLat[0])), (*C.char)(unsafe.Pointer(&bufLon[0]))))
  32. if ret == -1 {
  33. return "", "", fmt.Errorf("未定位, 请稍后")
  34. }
  35. return C.GoString((*C.char)(unsafe.Pointer(&bufLat[0]))), C.GoString((*C.char)(unsafe.Pointer(&bufLon[0]))), nil
  36. }