steering.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <template>
  2. <Icon
  3. name="stree"
  4. :size="20"
  5. :color="show && rtcConnected ? '#00CED1' : 'rgba(255, 255, 255, 0.5)'"
  6. style="margin-left: 7px;"
  7. />
  8. </template>
  9. <script setup lang="ts">
  10. import { invoke } from '@tauri-apps/api/core'
  11. import { listen } from '@tauri-apps/api/event'
  12. import { computed, ref } from 'vue'
  13. import { useMessage } from 'naive-ui'
  14. import useStore from '@/store'
  15. const emit = defineEmits<{(evt: 'callBack', value: Any): void }>()
  16. const message = useMessage()
  17. const store = useStore()
  18. const rtcConnected = computed(() => store.rtcConnected)
  19. const show = ref(false)
  20. function parseG923Data(data) {
  21. // 假设数据是一个数组,例如 [128, 255, 0, 0, ...]
  22. const buffer = new Uint8Array(data)
  23. // 解析转向值(假设存储在 buffer[0] 和 buffer[1] 中,小端序)
  24. const steeringValue = (buffer[1] << 8) | buffer[0]
  25. // 解析刹车值(假设存储在 buffer[2] 中)
  26. const brakeValue = buffer[2]
  27. return {
  28. steering: steeringValue,
  29. brake: brakeValue
  30. }
  31. }
  32. invoke('start_reading_data')
  33. listen('g923-data', (event) => {
  34. const data = event.payload
  35. const parsedData = parseG923Data(data)
  36. console.log('解析后的 G923 数据:', data, parsedData)
  37. })
  38. </script>