📄 tcpip_chuli_task.lst
字号:
C51 COMPILER V7.50 TCPIP_CHULI_TASK 06/10/2007 23:11:23 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TCPIP_CHULI_TASK
OBJECT MODULE PLACED IN .\out\TcpIp_CHULI_Task.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TcpIp_CHULI_Task.c LARGE OPTIMIZE(SIZE) REGFILE(.\out\mbtest.ORC) BROWSE IN
-CDIR(C:\Keil\C51\LIB\;D:\TEST_C020\MC_55_C\) DEBUG OBJECTEXTEND OBJECT(.\out\TcpIp_CHULI_Task.obj)
line level source
1
2 #include "all.h"
3
4 void Reply_TCPIP_SET_OK(uchar Fun) ;
5 void Reply_TCPIP_Set_False(uchar Fun) ;
6 void Reply_TCPIP_QueRen();
7 uchar TCPIP_IS_CS_OK() ;
8 void DaBao_TCPIP_And_Send(uchar fun,char *Bufff,uint Lenn) ;
9
10 bit Is_Tcp_Or_Key_B; //TCP能运行或 KEY 能运行之任务,1能运行
11 //两者只能一个能运行
12
13 uchar Second_WoSou; //握手秒标志
14 uchar Second_wucnt;
15 uchar Net_oK_FLAG_0_Cnt=0;
16 uint Re_XinTcp_JingLei_cnt=0; //重新发新警情计数器
17
18 code uchar RestTcp[12]={0xA1,0X25,0X06,0X01,'8','8','8','8','8',0XFF};
19
20 void TcpIp_CHULI_Taskqq(void) _task_ TcpIp_CHULI { // 警情处理任务
21 1 xdata uchar ttt,ii;
22 1 uchar Faaa[2];
23 1 os_wait2(K_SIG, 0);
24 1 while(1) {
25 2 os_wait2(K_TMO,2);
26 2 Dog_TcpIp_CHULI_cnt=0; //看门狗计数器
27 2
28 2
29 2 // 通知TCPIP 有新警情================================================
30 2 // 通知TCPIP 有新警情================================================
31 2 // 通知TCPIP 有新警情================================================
32 2 if( Re_XinTcp_JingLei_cnt!=0) { // 保证16 秒重新发一次, 重新发新警情计数器
33 3
34 3 Re_XinTcp_JingLei_cnt--;
35 3 if( Re_XinTcp_JingLei_cnt>RE_Fa_Jing_TCPIP4000)
36 3 Re_XinTcp_JingLei_cnt=RE_Fa_Jing_TCPIP4000;
37 3 }
38 2 if( XinTcp_JingLei_Byte!=0&& Re_XinTcp_JingLei_cnt==0) { // 通知TCPIP 有新警情
39 3
40 3 // XinTcp_JingLei_Byte =0; // 通知屏显示
41 3
42 3 // while(KEY_TX_Right_B==0 ) os_wait2(K_TMO,2);
43 3 //KEY_TX_Right_B=0; //得到信号灯
44 3 //上传警情命令54
45 3 // 注:数据长度:7 (1 bytes)
46 3 // 数据:6Byte 年月日时分秒 + 1Byte的警情字节
47 3 GPRS_Xin_485_b_FLAG&=(~XIN_GPRS_IN_B);
48 3 DaBao_TCPIP_And_Send(54,(uchar *)&struct_JingQing_Current_True.Jing_time[0], 7);
49 3
50 3 // os_wait2(K_TMO,200);
51 3 //KEY_TX_Right_B=1; //放信号灯
52 3
53 3 Re_XinTcp_JingLei_cnt=RE_Fa_Jing_TCPIP4000; // 保证16 秒重新发一次, 重新发新警情计数器
54 3
C51 COMPILER V7.50 TCPIP_CHULI_TASK 06/10/2007 23:11:23 PAGE 2
55 3 ii=0;
56 3 while(1) { //wait 1.5s
57 4 os_wait2(K_TMO,5);
58 4 if(++ii>150) {
59 5 break;
60 5 }
61 4 if( (GPRS_Xin_485_b_FLAG&XIN_GPRS_IN_B)==XIN_GPRS_IN_B) {
62 5 GPRS_Xin_485_b_FLAG&=(~XIN_GPRS_IN_
-B);
63 5 if(TCPIP_IS_CS_OK()==1&&GPRS_RX_Buff[0]==1&&GPRS_RX_Buff[2]==54) { //
64 6 //收到应答ok
65 6 Re_XinTcp_JingLei_cnt=0; //重新发新警情计数器
66 6 XinTcp_JingLei_Byte =0; // 通知屏显示
67 6 break;
68 6 }
69 5 }
70 4 }
71 3 }
72 2 //=====以上是报警时主动发警情 ======================
73 2 //如不成功则过16秒再重新发一次
74 2 //=====以上是报警时主动发警情 ======================
75 2 //=====以上是报警时主动发警情 ======================
76 2
77 2
78 2
79 2
80 2 //= ===//以下是对TCPIP的设查的处理===============================
81 2 if( (GPRS_Xin_485_b_FLAG&XIN_GPRS_IN_B)==XIN_GPRS_IN_B) {
82 3 //以下是对TCPIP的设查的处理
83 3 while(Is_Tcp_Or_Key_B==0) {
84 4 os_wait2(K_TMO,2);
85 4 Dog_TcpIp_CHULI_cnt=0; //看门狗计数器
86 4 }
87 3 Is_Tcp_Or_Key_B=0;
88 3
89 3 Attand_TCPIP();
90 3
91 3 Is_Tcp_Or_Key_B=1;
92 3 GPRS_Xin_485_b_FLAG&=(~XIN_GPRS_IN_B);
93 3 }
94 2 //===========================================================
95 2
96 2
97 2 //===============以下是握手时间到则握手================
98 2 if( Second_WoSou == 0xff ) { //握手秒标志
99 3 Second_WoSou = 0;
100 3 if(++Second_wucnt>26) {
101 4 Second_wucnt=0;
102 4 //握手
103 4 Faaa[0]=0xaa;
104 4 Faaa[1]=0xaa;
105 4
106 4 GPRS_Xin_485_b_FLAG&=(~XIN_GPRS_IN_B);
107 4 DaBao_TCPIP_And_Send(56,Faaa, 2); //发握手命令
108 4
109 4 ttt=0;
110 4
111 4 while(1) { // 1.5秒
112 5 os_wait2(K_TMO,5);
113 5 if( (GPRS_Xin_485_b_FLAG&XIN_GPRS_IN_B)==
-XIN_GPRS_IN_B) {
114 6 if(TCPIP_IS_CS_OK()==1) {
C51 COMPILER V7.50 TCPIP_CHULI_TASK 06/10/2007 23:11:23 PAGE 3
115 7 if(GPRS_RX_Buff[0]==1) { //&&GPRS_RX_Buff[2]==56)
116 8 P
-ara_all_True.Net_oK_FLAG=1;
117 8 Net_oK_FLAG_0_Cnt=0;
118 8 break;
119 8 }
120 7 }
121 6 }
122 5 if(++ttt>150) { //时限到
123 6 if(++Net_oK_FLAG_0_Cnt>=2) {
124 7 Net_oK_FLAG_0_Cnt=0;
125 7 Para_all_True.Net_o
-K_FLAG=0;
126 7 // 以下是连续两次握手不成功,进行重新连接
127 7 MoveByte(GPRS_TX_Buff, RestTcp, 12);
128 7 //FA_TCPIP_Buff();
129 7 GPRS_TX_Len=10; //GPRS_TX_Buff[3]+6;
130 7 GPRS_TX_cnt=0;
131 7
132 7 GPRS_TX_Len--;
133 7
134 7 SBUF0=GPRS_TX_Buff[0];
135 7
136 7
137 7 //===============================================
138 7 }
139 6 break;
140 6 }
141 5 }
142 4 }
143 3 }
144 2 //===============以上是握手时间到则握手================
145 2
146 2 }
147 1 }
148
149
150
151 /**********************************************************************
152 **函数原型: void Atttand_TonCen()
153 **入口参数:
154 **出口参数: 无
155 **返 回 值: 无
156 **说 明: 对TCPIP的设查的处理
157 ************************************************************************/
158
159 // 对TCPIP的设查的处理
160 data uchar *MPPo1,*MPPo2;
161 void Attand_TCPIP( ) {
162 1
163 1 // uchar i;
164 1 uchar Mbufrem;
165 1 uchar ii,Len,num,startn;
166 1
167 1
168 1
169 1 XinKey_b=0;
170 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -