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的更多相关文章
随机推荐
- scala 学习:object 和class, trait
object: Scala中没有静态修饰符,static,在object下的成员全部都是静态的,如果在类中声明了与该类相同的名字的object则该object是该类的"半生对象", ...
- phpmyadmin
下载地址:https://www.phpmyadmin.net/ 详情:http://baike.baidu.com/link?url=OIngLv0mpiYTZl_sCEmryWkHgUYqZeHr ...
- hdu 3506 Monkey Party 区间dp + 四边形不等式优化
http://acm.hdu.edu.cn/showproblem.php?pid=3506 四边行不等式:http://baike.baidu.com/link?url=lHOFq_58V-Qpz_ ...
- Builder(生成器)-对象创建型模式
一.意图 将一个复杂对象的构建与它的表示分离,使得同样的构造过程可以创建不同的表示. 二.动机 一个复杂的对象的构造过程中,原料相同,可能会要求生产不同的产品,并且生产的产品种类还能够方便的增加.Bu ...
- [整理]PCB阻抗控制
之前一直听说PCB设计中信号完整性及阻抗方面的要求,但是本人对此还是有很多的不了解,每次和别人讨论到这里后就不知道该怎么继续就这个问题交谈下去.正巧最近手头有一点工作有这方面的一些需求,就拿来花了一点 ...
- MRP生产计划模式在多品种小批量生产过程中遭遇挑战
传统的MPS主生产计划和MRP物料需求计划的方式,已很难适应按需生产环境,很多企业正在转向按需生产环境,按需生产的最大的挑战是模拟计算CTP可以承诺交期.准时交货和应对不确定的插单等变化.不仅需要订单 ...
- python 小知识
PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找. 使用下面的代码可以打印PYTHONPATH: print(os.sys.path) impr ...
- vs2013专业版密钥
KCQWK-Q43V3-M3F2T-83VGV-Y6VTX
- idhttp的用法
1)POST function PostMethod(http: TIDhttp; URL: string; Params: TStringList): string;var RespData: TS ...
- 常用linux指令
删除:rm -rf -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思 压缩解压:tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向 ...