📄 trans_process.lst
字号:
521 1 RES_CONFIGUR *gprs_info;
522 1 pnum = mess_num;
523 1 gprs_info = (RES_CONFIGUR *) sbuf.buf[1];
524 1 memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
525 1 gprs_info->mess_head.mess_version = 2;
526 1 gprs_info->mess_head.mess_reserve = 0;
527 1 gprs_info->mess_head.mess_type = (Word)(RES_CONFIGURE);
528 1 memcpy(&(gprs_info->res_messageid), pnum, 4);
529 1 get_device_id(gprs_info->terminal_id);
530 1 get_bus_id(gprs_info->bus_id);
531 1 gprs_info->res_value = 0;
532 1 gprs_info->mess_head.mess_length = 15;
533 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
534 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
535 1 sbuf.valid[1] = 1;
536 1 }
537
538
539 /*查询位置信息应答应答*/
540 void res_seeposition_message(Uchar mess_num[4])
541 {
542 1 Uchar *pnum;
543 1 Uchar run_array[3];
544 1 Uchar *parray;
545 1 GPS_DATA *pgps;
546 1 RES_SEEPOSITIO *gprs_info;
547 1 parray = run_array;
548 1 pnum = mess_num;
C51 COMPILER V7.09 TRANS_PROCESS 09/16/2008 09:24:30 PAGE 10
549 1 gprs_info = (RES_SEEPOSITIO *) sbuf.buf[1];
550 1 memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
551 1 gprs_info->mess_head.mess_version = 2;
552 1 gprs_info->mess_head.mess_reserve = 0;
553 1 gprs_info->mess_head.mess_type = (Word)(RES_SEEPOSITION);
554 1 memcpy(&(gprs_info->res_messageid), pnum, 4);
555 1 get_device_id(gprs_info->terminal_id);
556 1 get_bus_id(gprs_info->bus_id);
557 1 get_cur_runmode(parray);
558 1 if (run_array[0] != 0 )
559 1 {
560 2 get_cur_mode(parray + 1);
561 2 if(run_array[1] >= 1 & run_array[1] <= 8)
562 2 {
563 3 get_cur_direction(parray + 2);
564 3 if(run_array[2] == 0)
565 3 {
566 4 run_array[2] = 1;
567 4 }
568 3 else
569 3 {
570 4 run_array[2] = 2;
571 4 }
572 3 gprs_info->runmode = (run_array[2] << 6) & (run_array[1]);
573 3 }
574 2 else
575 2 {
576 3 gprs_info->runmode = run_array[1];
577 3 }
578 2 }
579 1 else
580 1 {
581 2 gprs_info->runmode = 0;
582 2 }
583 1 gprs_info->res_value = 0;
584 1 get_cur_direction(&(gprs_info->runmode));
585 1 get_gps_data(&pgps);
586 1 memcpy(gprs_info->date, pgps->date, 3);
587 1 memcpy(gprs_info->time, pgps->time, 3);
588 1 memcpy(&(gprs_info->longitude), &(pgps->longitude), 4);
589 1 memcpy(&(gprs_info->latitude), &(pgps->latitude), 4);
590 1 gprs_info->speed = pgps->speed;
591 1 gprs_info->direction = pgps->direction;
592 1 get_device_id(&(gprs_info->terminal_id));
593 1 get_bus_id(&(gprs_info->bus_id));
594 1 gprs_info->mess_head.mess_length = 15;
595 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
596 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
597 1 sbuf.valid[1] = 1;
598 1 }
599
600
601 /*查询终端信息应答应答*/
602 void res_seeterminal_message(Uchar mess_num[4])
603 {
604 1 Uchar *pnum;
605 1 RES_SEETERMINA *gprs_info;
606 1 pnum = mess_num;
607 1 gprs_info = (RES_SEETERMINA *) sbuf.buf[1];
608 1 memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
609 1 gprs_info->mess_head.mess_version = 2;
610 1 gprs_info->mess_head.mess_reserve = 0;
C51 COMPILER V7.09 TRANS_PROCESS 09/16/2008 09:24:30 PAGE 11
611 1 gprs_info->mess_head.mess_type = (Word)(RES_SEETERMINAL);
612 1 memcpy(&(gprs_info->res_messageid), pnum, 4);
613 1 get_device_id(gprs_info->terminal_id);
614 1 get_bus_id(gprs_info->bus_id);
615 1 gprs_info->res_value = 0;
616 1 get_software_version(&(gprs_info->soft_edition));
617 1 gprs_info->mess_head.mess_length = 16;
618 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
619 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
620 1 sbuf.valid[1] = 1;
621 1 }
622
623 /*远程下载更新应答*/
624 void res_update_message(Uchar mess_num[4], Uchar rcv_block[2], Uchar type, Uchar up_value )
625 {
626 1 Uchar *pnum;
627 1 RES_UPDAT *gprs_info;
628 1 pnum = mess_num;
629 1 gprs_info = (RES_UPDAT *) sbuf.buf[1];
630 1 memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
631 1 gprs_info->mess_head.mess_version = 2;
632 1 gprs_info->mess_head.mess_reserve = 0;
633 1 gprs_info->mess_head.mess_type = (Word)(RES_UPDATE);
634 1 memcpy(&(gprs_info->res_messageid), pnum, 4);
635 1 get_device_id(gprs_info->terminal_id);
636 1 get_bus_id(gprs_info->bus_id);
637 1 gprs_info->res_value = up_value;
638 1 memcpy(&(gprs_info->block), rcv_block, 2);/*返回的block*/
639 1 gprs_info->update_type = type;
640 1 gprs_info->mess_head.mess_length = 18;
641 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
642 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
643 1 sbuf.valid[1] = 1;
644 1 }
645
646 /*查询终端参数配置应答*/
647 void res_seeconfugure_message(Uchar mess_num[4])
648 {
649 1 Uchar *pnum;
650 1 RES_SEECONFIGUR *gprs_info;
651 1 pnum = mess_num;
652 1 gprs_info = (RES_SEECONFIGUR *) sbuf.buf[1];
653 1 memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
654 1 gprs_info->mess_head.mess_version = 2;
655 1 gprs_info->mess_head.mess_reserve = 0;
656 1 gprs_info->mess_head.mess_type = (Word)(RES_SEECONFIGURE);
657 1 memcpy(&(gprs_info->res_messageid), pnum, 4);
658 1 get_device_id(gprs_info->terminal_id);
659 1 get_bus_id(gprs_info->bus_id);
660 1 gprs_info->res_value = 0;
661 1 get_online_time(&(gprs_info->heartbeat_interval));/*心跳间隔*/
662 1 get_auto_time(&(gprs_info->potision_interval));/*gps间隔*/
663 1 get_arrive_meter(&(gprs_info->in_distance));/*到站距离*/
664 1 get_left_meter(&(gprs_info->out_distance));/*出站距离*/
665 1 gprs_info->mess_head.mess_length = 20;
666 1 swap_uint((Uchar *)(&(gprs_info->potision_interval)));
667 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
668 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
669 1 sbuf.valid[1] = 1;
670 1 }
671
672
C51 COMPILER V7.09 TRANS_PROCESS 09/16/2008 09:24:30 PAGE 12
673 /**照片拍摄应答**/
674 void res_photo_message(Uchar* messID)
675 {
676 1 RES_PHOTOMESSAGE_STR *gprs_info;
677 1 gprs_info = (RES_PHOTOMESSAGE_STR *) sbuf.buf[1];
678 1 memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
679 1 gprs_info->mess_head.mess_version = 2;
680 1 gprs_info->mess_head.mess_reserve = 0;
681 1 gprs_info->mess_head.mess_type = (Word)(RES_PHOTOMESSAGE);
682 1 memcpy(gprs_info->messID, messID, 4);
683 1 get_bus_id(gprs_info->bus_id);
684 1 gprs_info->mess_head.mess_length = 11;
685 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
686 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
687 1 sbuf.valid[1] = 1;
688 1 }
689
690 /**照片停止拍摄应答**/
691 void res_photostop_message(Uchar* messID)
692 {
693 1 RES_PHOTOMESSAGE_STR *gprs_info;
694 1 gprs_info = (RES_PHOTOMESSAGE_STR *) sbuf.buf[1];
695 1 memcpy(gprs_info->mess_head.mess_sync, "NJPT", 4);
696 1 gprs_info->mess_head.mess_version = 2;
697 1 gprs_info->mess_head.mess_reserve = 0;
698 1 gprs_info->mess_head.mess_type = (Word)(RES_PHOTOSTOPMSG);
699 1 memcpy(gprs_info->messID, messID, 4);
700 1 get_bus_id(gprs_info->bus_id);
701 1 gprs_info->mess_head.mess_length = 11;
702 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_type));
703 1 swap_uint((Uchar *)(&gprs_info->mess_head.mess_length));
704 1 sbuf.valid[1] = 1;
705 1 }
706
707
708 /*发送处理*/
709 void serverTrans_process(void)
710 {
711 1 Int8 *ptr;
712 1 Uint16 len = 0;
713 1 struct _mess_head_info *head_info;
714 1 Uint16 gps_send_num;
715 1 Uchar heart_send_num;
716 1 Uint16 heart_send_number;
717 1
718 1 gps_num++;
719 1 heart_num++;
720 1 get_auto_time(&gps_send_num);
721 1 get_online_time(&heart_send_num);
722 1 heart_send_number = heart_send_num * 20;
723 1
724 1
725 1 /********************发送相片数据使用***********************/
726 1 if (1 == sbufPhoto.valid)
727 1 {
728 2 head_info = (struct _mess_head_info *)(sbufPhoto.buf);
729 2 len = Le16(head_info->mess_length);
730 2 if (udp_send(sbufPhoto.buf, len) == 0)
731 2 {
732 3 //for debug
733 3 // memcpy(testBuf, sbufPhoto.buf, 200);
734 3 //sioc_send(testBuf, 200);
C51 COMPILER V7.09 TRANS_PROCESS 09/16/2008 09:24:30 PAGE 13
735 3 //end of debug
736 3 sbufPhoto.valid = 0;
737 3 }
738 2
739 2 return;
740 2 }
741 1
742 1 if (PHOTO_DATASENDING != photo_getdatastatus())
743 1 {
744 2 /*************************专门为远程程序更新来处理*************/
745 2 if (sbuf.valid[REMOTE_BUFFER_ID] == 1)
746 2 {
747 3 ptr = sbuf.buf[REMOTE_BUFFER_ID];
748 3 head_info = (struct _mess_head_info *)(sbuf.buf[REMOTE_BUFFER_ID]);
749 3 len = (Uchar)(head_info->mess_length >> 8);
750 3 if (udp_send(sbuf.buf[REMOTE_BUFFER_ID],len) == 0)
751 3 {
752 4 sbuf.valid[REMOTE_BUFFER_ID] = 0;
753 4 }
754 3
755 3 return;
756 3 }
757 2 /**********************************************************/
758 2
759 2 if (gps_num >= (gps_send_num * 20)) /*gps消息处理(不要求响应)*/
760 2 {
761 3 make_gps_message();
762 3 head_info = (struct _mess_head_info *)(sbuf.buf[4]);
763 3 ptr = sbuf.buf[4];
764 3 len = (Uchar)((head_info->mess_length >> 8));
765 3 if(udp_send(ptr,len) == 0)
766 3 {
767 4 gps_num = 0;
768 4 }
769 3
770 3 return;
771 3 }
772 2
773 2 if (sbuf.valid[0] == 1)/*未收到响应的消息重发*/
774 2 {
775 3 ptr = sbuf.buf[0];
776 3 retry_num++;
777 3 if(retry_num >= 20 * 5) /*重发时间间隔5秒*/
778 3 {
779 4 retry_num = 0;
780 4 trans_num ++;
781 4 if(trans_num < 6)/*重发3次*/
782 4 {
783 5 head_info = (struct _mess_head_info *)(sbuf.buf[0]);
784 5 len = (Uchar)(head_info->mess_length >> 8);
785 5 if( udp_send(ptr,len) == 0 )
786 5 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -