How to use AKBusGpsParser
step 01:
sudo easy_install AKBusGpsParser
step02: Let's see a sample
#!/usr/bin/python
#coding:UTF-8
#-----------------------------------------
#-- Name : AKBusGpsParser
#-- ORG : Landpack
#-- Author : Frank AK
#-- Addr : Design In IMUT
#-- Email : landpack@sina.com
#-----------------------------------------
import MySQLdb
from AKBusGpsParser import *
#------------------------------------------------
if __name__ == '__main__': url="http://192.168.0.202/zsgj/Service/Common/onBusRealChanged"
line_id_dict={'x1':'','x2':'','h1':'',
'h2':'','k1':'','K1':'',
'K2':'','k2':'','k4':'',
'K4':'','k5':'','K5':''}
sample_gps = """*|GPS|1729|K2|2006-01-04|13:15:08|6000.0000|2000.0000\
|40|140|4|5|1|2006-01-04|13:01:04|0|0|0|01000932|1|#*"""
sample_stn="*|STN|1728|K4|2006-01-04|13:15:23|2|0|1|#" sourcekeys_gps=['star','cmd','bus_no','line_no','gps_date','gps_time','latitude','longitude','speed',
'angle','next_station','people_num','start_end_flag','send_date','send_time',
'direction','run_status','leave_flag','driver_no','driver_flag']
sourcekeys_stn=['star','cmd','bus_no','line_no','stn_date','stn_time','station_no','flag','direction'] insertkeys_gps=['star','cmd','bus_no','line_no','gps_datetime','latitude','longitude','speed',
'angle','next_station','people_num','start_end_flag',
'send_datetime','direction','run_status','leave_flag',
'driver_no','driver_flag']
insertkeys_stn=['star','cmd','bus_no','line_no','direction','stn_dt','flag','station_no'] insertruler_gps=['s','s',1,'s','s',9,'s',1]
insertruler_stn=['s','s',4] updatekeys_gps=['start','cmd','bus_no','line_id','gps_datetime','longitude','latitude','next_station','direction']
updatekeys_stn=['start','cmd','bus_no','line_id','station_no','stn_dt','flag','direction'] updateruler_gps=['s',1,1,'s','s',1,1]
updateruler_stn=['s',5] myflag='|' db=MySQLdb.connect("localhost","your_name","your_passwd","database_name")
cur=db.cursor()
BGP=BusGpsParser(db,cur)
BGP.load(sample_gps,sourcekeys_gps,line_id_dict)
BGP.parser(myflag) BGP.recondition(insertkeys_gps)
insert_data=BGP.wrap(insertruler_gps)
myitem=BGP.items()
sqldup=BGP.equal_value() gps_tn=BGP.tableName('gps')
sql_insert="""INSERT INTO `%s` %s VALUES %s ON DUPLICATE KEY UPDATE %s;""" % (gps_tn,myitem,insert_data,sqldup)
BGP.save(sql_insert) BGP.recondition(updatekeys_gps)
update_data=BGP.wrap(updateruler_gps)
myitem=BGP.items()
sqldup=BGP.equal_value()
sql_update="""INSERT INTO bus_gps %s VALUES %s ON DUPLICATE KEY UPDATE %s;""" % (myitem,update_data,sqldup)
BGP.update(sql_update) BGP.load(sample_stn,sourcekeys_stn,line_id_dict)
BGP.parser(myflag) BGP.recondition(insertkeys_stn)
insert_data=BGP.wrap(insertruler_stn)
myitem=BGP.items()
sqldup=BGP.equal_value()
stn_tn=BGP.tableName('stn')
sql_insert="""INSERT INTO `%s` %s VALUES %s ON DUPLICATE KEY UPDATE %s;""" % (stn_tn,myitem,insert_data,sqldup)
BGP.save(sql_insert) BGP.recondition(updatekeys_stn)
update_data=BGP.wrap(updateruler_stn)
myitem=BGP.items()
sqldup=BGP.equal_value()
sql_update="""INSERT INTO bus_stn %s VALUES %s ON DUPLICATE KEY UPDATE %s;""" % (myitem,update_data,sqldup)
BGP.update(sql_update)
BGP.post(url)
How to use AKBusGpsParser的更多相关文章
随机推荐
- node中的可读流和可写流
javascript的一个不足之处是不能处理二进制数据,于是node中引入了Buffer类型.这个类型以一个字节(即8位)为单位,给数据分配存储空间.它的使用类似于Array,但是与Array又有不同 ...
- performSelector may cause a leak because its selector is unknown解决
解决方法 SEL selector = NSSelectorFromString(@"applySketchFilter:"); IMP imp = [FWApplyFilter ...
- Java 容器:Collection 初探之 List
1 ///: JavaBasic//com.cnblogs.pattywgm.day1//CollectionTest.java 2 3 package com.cnblogs.pattywgm.da ...
- SecureCRT自动备份脚本-华为
# $language = "VBScript" # $interface = "1.0" Sub Main Const ForReading = 1, For ...
- OpenFileDialog - 设置 - Filter 笔记
using (OpenFileDialog fileSelectDialog = new OpenFileDialog()) { fileSelectDialog.Multiselect = fals ...
- 移动端调试工具推荐 小苹果和debugap
小苹果的安装很简单,这是官网,一看就会,完全小白教程. http://www.xbole.com/ debugap的也很简单,这里简单附图介绍一下 ps 官网: http://www.debuggap ...
- pdflatex, xelatex, texstudio中文编码问题
使用xelatex,源文件需要用utf-8编译,pdf文件不会乱码. 使用pdflatex,源文件不能使用utf-8编码,否则pdf文件会乱码. 使用GB2312没问题.
- SSH Secure Shell Client中文乱码的解决办法
#vi /etc/sysconfig/i18n 将内容改为 LANG="zh_CN.GB18030" LANGUAGE="zh_CN.GB18030:zh_CN. ...
- ubuntu下非本账户的.profile文件的修改
今天不小心在账户了修改了自己的.profile文件,导致重启之后账户无法进入,点登陆账户后黑屏后就重新回到账户登陆界面.一番折腾之后终于成功修改了原账户中的.profile文件,成功从新进入了原账户. ...
- yield学习续:yield return迭代块在Unity3D中的应用——协程
必读好文推荐: Unity协程(Coroutine)原理深入剖析 Unity协程(Coroutine)原理深入剖析再续 上面的文章说得太透彻,所以这里就记一下自己的学习笔记了. 首先要说明的是,协程并 ...