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':'1111','x2':'1112','h1':'1113',
              'h2':'1114','k1':'1115','K1':'1115',
              'K2':'1116','k2':'1116','k4':'1118',
              'K4':'1118','k5':'1119','K5':'1119'}
        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)

 

posted @ 2015-05-13 21:26  Landpack  阅读(262)  评论(0编辑  收藏  举报