⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trans_process.lst

📁 通过车载终端采集GPS数据
💻 LST
📖 第 1 页 / 共 4 页
字号:
 256          
 257          
 258          /*上下班考核消息打包*/
 259          /*xhb  hl  1:上班    2下班  3请求营运   4退出营运    5请求营运计划  6请求状态
 260             ptr为驾驶员工号长度4字节*/
 261          void make_assess_message(Uchar hl)
 262          {
 263   1          Uchar  station_unm;    
 264   1          
 265   1          if (6 == hl)
 266   1          {
 267   2              //new version (version 4)需要变成发送注册消息
 268   2              BUS_ASSESS_NEW* gprs_info;
 269   2              SIMCARD_INFO* pSimcard;
 270   2              pSimcard = get_simcard();
 271   2              gprs_info = (BUS_ASSESS_NEW *) sbuf.buf[2];
 272   2              serial_number++;
 273   2              memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
 274   2              gprs_info->mess_head.mess_version = 4;//2;
 275   2              gprs_info->mess_head.mess_reserve = 0;
 276   2              gprs_info->mess_head.mess_type = (Word)(ASSESS);
 277   2              gprs_info->messageid = serial_number;
 278   2              get_line_id(gprs_info->line_id);
 279   2              get_bus_id(gprs_info->bus_id);
 280   2              get_cur_tranStation( &station_unm);
 281   2              gprs_info->sta_num = station_unm;
 282   2              get_station_id(gprs_info->sta_num,&(gprs_info->station_id));
 283   2              get_cur_direction(&(gprs_info->rundir));
 284   2              gprs_info->messagetype = 0xDD;
 285   2      
 286   2              get_driver_id(gprs_info->driverid);
 287   2              get_term_data(gprs_info->time);
 288   2              get_term_time(gprs_info->time+3);
 289   2              get_device_id(gprs_info->hostId);
 290   2              
 291   2              //在一体式中,将终端ID设置为全"0xff"
 292   2              memset(gprs_info->termId, 0xff, 3);
 293   2       //       siob_send(gprs_info->hostId, 10);// for debug
 294   2              get_device_info(gprs_info->hostSoft);
 295   2              //在一体式中,将终端版本号设置为全"0xff"
 296   2              memset(gprs_info->termSoft, 0xff, 4);
 297   2              memcpy(gprs_info->simcard, pSimcard->card, 20);
 298   2              get_lineIDloaded(gprs_info->line);
 299   2             // memcpy(gprs_info->line, pTerm->lineID, 24);
 300   2              gprs_info->mess_head.mess_length = 0x5b;//debug;//sizeof(BUS_ASSESS_NEW)-sizeof(struct _mess_head_
             -info);        
C51 COMPILER V7.09   TRANS_PROCESS                                                         09/16/2008 09:24:30 PAGE 6   

 301   2              swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
 302   2              swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));        
 303   2              sbuf.valid[2] = 1;    
 304   2          }
 305   1          else
 306   1          {
 307   2              //old version (version 2)
 308   2              BUS_ASSESS *gprs_info;
 309   2              gprs_info = (BUS_ASSESS *) sbuf.buf[2];
 310   2              serial_number++;
 311   2              memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
 312   2              gprs_info->mess_head.mess_version = 2;
 313   2              gprs_info->mess_head.mess_reserve = 0;
 314   2              gprs_info->mess_head.mess_type = (Word)(ASSESS);
 315   2              gprs_info->messageid = serial_number;
 316   2              get_line_id(gprs_info->line_id);
 317   2              get_bus_id(gprs_info->bus_id);
 318   2              get_cur_tranStation( &station_unm);
 319   2              gprs_info->sta_num = station_unm;
 320   2              get_station_id(gprs_info->sta_num,&(gprs_info->station_id));
 321   2              get_cur_direction(&(gprs_info->rundir));
 322   2          
 323   2              switch(hl)
 324   2              {
 325   3                  case 1:
 326   3                      gprs_info->messagetype = 0xAA;
 327   3                      break;
 328   3                      
 329   3                  case 2:
 330   3                      gprs_info->messagetype = 0x55;
 331   3                      break;
 332   3                      
 333   3                  case 3:
 334   3                      gprs_info->messagetype = 0xBB;
 335   3                      break;
 336   3                      
 337   3                  case 4:
 338   3                      gprs_info->messagetype = 0x66;
 339   3                      break;
 340   3                      
 341   3                  case 5:
 342   3                      gprs_info->messagetype = 0xCC;
 343   3                      break;
 344   3                      
 345   3                  case 6:
 346   3                      gprs_info->messagetype = 0xDD;
 347   3                      break;
 348   3                      
 349   3              }
 350   2          
 351   2              get_driver_id(gprs_info->driverid);
 352   2              gprs_info->mess_head.mess_length = 41;  
 353   2              swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
 354   2              swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));        
 355   2              sbuf.valid[2] = 1;    
 356   2          }        
 357   1      }
 358          
 359          /*文本消息打包*/
 360          void make_text_message(Uchar *ptr, Uchar len_date)
 361          {
 362   1          BUS_TEXT *gprs_info;
C51 COMPILER V7.09   TRANS_PROCESS                                                         09/16/2008 09:24:30 PAGE 7   

 363   1          GPS_DATA *pgps;
 364   1          gprs_info = (BUS_TEXT *) sbuf.buf[2];
 365   1          serial_number++;
 366   1          memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
 367   1          gprs_info->mess_head.mess_version = 2;
 368   1          gprs_info->mess_head.mess_reserve = 0;
 369   1          gprs_info->mess_head.mess_type = (Word)(TEXTMESSAGE);
 370   1          gprs_info->messageid = serial_number;
 371   1          get_gps_data(&pgps);
 372   1          memcpy(gprs_info->date, pgps->date, 3);
 373   1          memcpy(gprs_info->time, pgps->time, 3);
 374   1          get_line_id(&(gprs_info->line_id));
 375   1          get_device_id(&(gprs_info->terminal_id));
 376   1          get_bus_id(&(gprs_info->bus_id));
 377   1          gprs_info->mess_head.mess_length = len_date;
 378   1          memcpy(gprs_info->mess_date, ptr, len_date);
 379   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
 380   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));    
 381   1          sbuf.valid[2] = 1;         
 382   1      }
 383          
 384          /******报警消息打包******/
 385          /*alarmType:报警类型
 386          *alarmValue:报警的值,1有报警;0无报警
 387          **************************/
 388          void make_alarm_message(unsigned char alarmType, unsigned char alarmValue)
 389          {
 390   1          Uchar  run_array[3];
 391   1          Uchar  *parray;
 392   1          GPS_DATA *pgps;
 393   1          BUS_ALARM *gprs_info;
 394   1          parray = run_array;
 395   1          gprs_info = (BUS_ALARM *) sbuf.buf[2];
 396   1          serial_number++;
 397   1          memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
 398   1          gprs_info->mess_head.mess_version = 4;
 399   1          gprs_info->mess_head.mess_reserve = 0;
 400   1          gprs_info->mess_head.mess_type = (Word)(ALARMMESSAGE);
 401   1          gprs_info->messageid = serial_number;
 402   1          get_term_data(gprs_info->date);
 403   1          get_term_time(gprs_info->time);
 404   1          get_line_id(gprs_info->line_id);
 405   1          get_device_id(gprs_info->terminal_id);
 406   1          get_bus_id(gprs_info->bus_id);
 407   1          get_cur_runmode(parray);
 408   1          if (run_array[0] != 0 )
 409   1          {
 410   2              get_cur_mode(parray + 1);
 411   2              if(run_array[1] >= 1 & run_array[1] <= 8)
 412   2              {
 413   3                  get_cur_direction(parray + 2);
 414   3                  if(run_array[2] == 0)
 415   3                  {
 416   4                      run_array[2]  = 1;
 417   4                  }
 418   3                  else
 419   3                  {
 420   4                      run_array[2]  = 2;
 421   4                  }
 422   3                  gprs_info->runmode = ((run_array[2] << 6) | (run_array[1]));
 423   3              }
 424   2              else
C51 COMPILER V7.09   TRANS_PROCESS                                                         09/16/2008 09:24:30 PAGE 8   

 425   2              {
 426   3                  gprs_info->runmode = run_array[1];
 427   3              }
 428   2          }
 429   1          else
 430   1          {
 431   2              gprs_info->runmode = 0;
 432   2          }
 433   1      
 434   1          get_gps_data(&pgps);
 435   1          gprs_info->gps_flag = (pgps->state << 6) & (pgps->numbers);
 436   1          gprs_info->longitude = pgps->longitude;
 437   1          gprs_info->latitude = pgps->latitude;
 438   1          gprs_info->speed = pgps->speed;
 439   1          gprs_info->direction = pgps->direction;
 440   1          gprs_info->changeStatus = alarmType;
 441   1          if (alarmValue)
 442   1              gprs_info->alarmStatus = alarmType;
 443   1          else
 444   1              gprs_info->alarmStatus = 0;
 445   1          gprs_info->mess_head.mess_length = 40;
 446   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
 447   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));    
 448   1          sbuf.valid[2] = 1;         
 449   1      }
 450          
 451          extern char testBuf[550];
 452          /*******相片数据组包***************/
 453          /***
 454          nCur:值从1开始
 455          ***/
 456          void make_photo_message(Uint16 nTotal, Uint16 nCur, Byte* pnSeq, Byte* pSrcBuf, Uint16 nBufLen)
 457          {
 458   1          REMOTE_PHOTOMSG* gprs_info;
 459   1          gprs_info = (REMOTE_PHOTOMSG *) sbufPhoto.buf;
 460   1          memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
 461   1          gprs_info->mess_head.mess_version = 2;
 462   1          gprs_info->mess_head.mess_reserve = 0;
 463   1          gprs_info->mess_head.mess_type = REMOTE_PHOTO_MESSAGE;
 464   1          memcpy(gprs_info->messageid, pnSeq, 4);
 465   1          gprs_info->packNum = nTotal;
 466   1          gprs_info->curNum = nCur;
 467   1          get_bus_id(gprs_info->bus_id);
 468   1          memcpy(gprs_info->memo, pSrcBuf, nBufLen);
 469   1          gprs_info->mess_head.mess_length = 15+nBufLen;
 470   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
 471   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));    
 472   1          swap_uint((Uchar *)(&gprs_info->packNum));
 473   1          swap_uint((Uchar *)(&gprs_info->curNum));
 474   1          sbufPhoto.valid = 1; 
 475   1          
 476   1      }
 477          
 478          /************************************/
 479          /*终端远程更新程序应答的组包函数*/
 480          void make_response_update(Byte* pSrc)
 481          {
 482   1          RES_REMOTE_UPDATE* gprs_info;
 483   1          gprs_info = (RES_REMOTE_UPDATE *) sbuf.buf[REMOTE_BUFFER_ID];
 484   1          memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
 485   1          gprs_info->mess_head.mess_version = 2;
 486   1          gprs_info->mess_head.mess_reserve = 0;
C51 COMPILER V7.09   TRANS_PROCESS                                                         09/16/2008 09:24:30 PAGE 9   

 487   1          gprs_info->mess_head.mess_type = (Word)(RES_UPDATE_PROGRAM);
 488   1          memcpy(gprs_info->messageid, pSrc+4, 4);
 489   1          gprs_info->type = pSrc[8];
 490   1          get_bus_id(gprs_info->bus_id);
 491   1          memcpy(&(gprs_info->content), pSrc+9, 6);
 492   1          gprs_info->mess_head.mess_length = sizeof(RES_REMOTE_UPDATE)-sizeof(struct _mess_head_info);
 493   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
 494   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
 495   1          sbuf.valid[REMOTE_BUFFER_ID] = 1;
 496   1      }
 497          /*调度消息应答*/
 498          void res_direct_message(Uchar mess_num[4])
 499          {
 500   1          Uchar  *pnum;
 501   1          RES_DIREC *gprs_info;
 502   1          pnum = mess_num;
 503   1          gprs_info = (RES_DIREC *) sbuf.buf[1];
 504   1          memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
 505   1          gprs_info->mess_head.mess_version = 2;
 506   1          gprs_info->mess_head.mess_reserve = 0;
 507   1          gprs_info->mess_head.mess_type = (Word)(RES_DIRECT);
 508   1          get_bus_id(gprs_info->bus_id);
 509   1          get_line_id(gprs_info->line_id);    
 510   1          memcpy(gprs_info->res_messageid, mess_num, 4);
 511   1          gprs_info->mess_head.mess_length = 15;
 512   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
 513   1          swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));    
 514   1          sbuf.valid[1] = 1;
 515   1      }
 516          
 517          /*终端参数配置应答*/
 518          void res_seeconfiguer_message(Uchar mess_num[4])
 519          {
 520   1          Uchar  *pnum;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -