serial front_door signment and gps signment
import socket
import serial
import os
import sys
import struct
#serial
ser_intf = serial.Serial(port='/dev/ttyS0',baudrate=19200,bytesize=8,timeout=1)
#read data from power board serial port
def serialRead(serial_handle):
serial_handle.flushInput()
cnt =0
while 1:
din = serial_handle.read(30)
cnt +=1
#loop execution 8 times
if len(din) ==0 and cnt < 8:
continue
if len(din) ==30 and din[0] ==53 and din[1] ==53 and din[26] ==70 and din[27] ==69 and din[28]==70 and din[29]==70:
print(din)
return din.decode('utf-8')
elif cnt ==8 :
print("Can not receive data from power board")
return ""
serial_handle.flushInput()
def convertGPS(gps):
gps_la = gps[0:8]
gps_lo = gps[8:16]
list_la = []
list_lo = []
for i in range(4):
list_la.append(int(gps_la[6-i*2:8-i*2],16))
la = str(struct.unpack('<f', struct.pack('4B', *list_la))[0]).zfill(20)
for i in range(4):
list_lo.append(int(gps_lo[6-i*2:8-i*2],16))
lo = str(struct.unpack('<f', struct.pack('4B', *list_lo))[0]).zfill(20)
return la,lo
def convertGPSOrientation(gps):
gps_n=''
gps_e=''
#NORTH,SOUTH,EAST,WEST,
if gps[0:2]=='4E' and gps[2:4]=='45':
gps_n ='N'
gps_e ='E'
if gps[0:2]=='53' and gps[2:4]=='45':
gps_n ='S'
gps_e ='E'
if gps[0:2]=='4E' and gps[2:4]=='57':
gps_n ='N'
gps_e ='W'
if gps[0:2]=='53' and gps[2:4]=='57':
gps_n ='S'
gps_e ='W'
return gps_n,gps_e
def gateIsOpened(gate_sign):
if gate_sign=='0':
flag=[0,0]
print("front gate closed,back gate closed")
return flag
if gate_sign=='1':
flag=[1,0]
print("front gate opened,back gate closed")
return flag
if gate_sign=='2':
flag=[0,1]
print("front gate closed,back gate opened")
return flag
if gate_sign=='3':
flag=[1,1]
print("front gate opened,back gate opened")
return flag
PB_data = serialRead(ser_intf)
print('---------------------pb_data-----------------------------------')
la,lo =convertGPS(PB_data[4:20])
print('-----------------gps--------------------------------')
print('la',la)
print('lo',lo)
gps_n,gps_e=convertGPSOrientation(PB_data[20:24])
print(gps_e)
print(gps_n)
flag=gateIsOpened(PB_data[3])
print('flag',flag)
根据串口协议,转换ASCII成utf-8格式。数值转换成十进制,比如5 十进制是53,从串口接收到的数值是53。门的信号为00是都关,01是前门开,以此类推,
gps是怎样解析的,从2到9个字节是gps信号。
serial front_door signment and gps signment的更多相关文章
- 玩转ArduinoJson库 V5版本
1.前言 一直以来,博主的事例代码中都一直使用到JSON数据格式.而很多初学者一直对JSON格式有很大疑惑,所以博主特意分出一篇博文来重点讲解Arduino平台下的JSON库--Arduino ...
- Qt - 读取GPS数据
1.GPS型号为ublox(EVK-M8L),配有USB接口,Qt版本5.7 2.实现步骤: (1)实现串口通信 采用Qt5.7 内置的串口操作类QSerialPort和QSerialPortInfo ...
- Serial Communication Protocol Design Hints And Reference
前面转载的几篇文章详细介绍了UART.RS-232和RS-485的相关内容,可以知道,串口通信的双方在硬件层面需要约定如波特率.数据位.校验位和停止位等属性,才可以正常收发数据.实际项目中使用串口通信 ...
- UART to Serial Terminal(转载)
前一篇<UART Explained>介绍了UART的基本信息,重点分析了UART的信号.本文摘录的文章则重点介绍了波特率(Baud Rate)相关的内容,波特率越高,传输速度越快,但实际 ...
- 树莓派连接GPS模块
一月份的时候觉得好玩买了树莓派,但是太懒没怎么研究,但最近当初买树莓派时的那个梦想又萦绕心头,决定抽空完成一下当年的计划~ GPS模块是其中很重要的一环,于是在某宝上搜索,找了一家相对便宜也很轻巧的G ...
- 物流追踪 - -GPS和GPRS应用
源码1: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<termios.h ...
- Win CE 6.0 获取手持机GPS定位2----示例代码 (C#)
一.须知 1.手持机(PDA)必须有GPS模块,才能通过代码使用串口通信获取GPS相关信息 2.要清楚自己手持机(PDA)固定的GPS通信串口号,如我们公司的手持机获取GPS信息的串口为COM4 3. ...
- LCD显示GPS时钟[嵌入式系统]
夏任务102:做一个GPS钟 实验要求 用RPi的串口连接一个GPS模块,从GPS得到实时时间,在7段数码管或LCD上显示 实验工具: Raspberry Pi Model B主机, 8G c10 S ...
- 在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~
在ROS(indigo)中读取手机GPS用于机器人定位~GPS2BT在ubuntu和window系统下的使用方法~ 不需要额外购买GPS设备. 将手机GPS数据通过蓝牙传输给计算机使用,当然通过类似方 ...
随机推荐
- sqlite数据库中为字段设置默认值为当前时间
开始 `creation_time` NUMERIC DEFAULT (datetime('now','localtime')), `update_time` NUMERIC DEFAULT (dat ...
- 【2017-05-18】WebForm的Repeater控件及简单控件
<%@ %> - 这里面写一些声明和引用的 <% %> - 编写C#代码的 <%= %> - 往界面上输出一个变量的值 <%# Eval("属性名 ...
- John Deere Service Advisor EDL V2 Diagnostic Kit
Support Languages: English, French, German, Italian, Portuguese, Russian, Spanish. John Deere Servic ...
- 面试常问Spring IOC,不得不会。
广义的 IOC IoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”. 两种实现: 依赖查找(DL)和依赖注入(DI). IOC 和 DI .DL 的关系( ...
- 使用SpotBugs/FindBugs进行代码检查
原po:https://blog.csdn.net/zhangb00/article/details/8407070 SpotBugs 介绍 SpotBugs是Findbugs的继任者(Findbug ...
- 《温故而知新》JAVA基础三
面向对象 现实定义: 购买手机 阐述描述配置尺寸啥的,要求能打电话,然后服务员给你拿出一款手机,你所阐述的就是类,服务员给你的就是对象 package com.xie public class Tel ...
- MVC 深入讲解Routing _路由规则【八】
一.客户端=>控制器 在项目中我们引用了system.web.routing, 如果第一个匹配成功了,那么后面的都不会再匹配. 1. routing的作用: 确定colltroller,确定ac ...
- JxBrowser之二:常用函数addLoadListener
1.常用函数addLoadListener,包含对页面加载状态的多种监控回调. browser.addLoadListener(new LoadAdapter() { @Override public ...
- 20175317 《Java程序设计》第一周学习总结
20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...
- 利用iframe实现无刷新提交
服务器里边: