📄 trans_process.lst
字号:
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 + -