📄 main123.lst
字号:
136 T1_stop();
137 T0_stop();
138 CameraStop();
139 break;
140 default :break;
141 }
142
143
144 break; //处理程序后的分枝完成
145
146
147 }
148 else
149 { //不是本球机的接收码ID不正确或者是一误码都必须会结束
150 cKeyCodeReceiveState=0;
151 break; //处理并且清除接收标志
152 }
153
154 default: break;
155 } //结束协议一次接收
156
157 } //结束 if有数
158
159 } //结束协议的while
160 break; //结束协议的case事件
161
162
163 case 2: //PELCO-P协议
164
165 while(1)
166 {
167
168
169 WDT_cls();
170
171 if(2!=cProtocal) // 利用协议出错处理
172 {
173 goto ERRor;
174 }
C51 COMPILER V8.05a MAIN123 11/06/2008 11:08:29 PAGE 4
175 if(cKeyCodeReceiveState)
176 {
177 cKeyCodeReceiveState=0; //取走第一个码
178 switch(cKeyCodeReceive)
179 {
180 case 0xa0: //防误码先接收一个FF后接下来进行 判断是否下个码
181 while(!cKeyCodeReceiveState) //对于键盘发出的选择球机也是七位FF开始的码
182 {
183 _nop_();
184 }
185 // cKeyCodeReceiveState=0;
186 if(cKeyCodeReceive==0xa0) //判断是否是误码,FF说明是误码
187 { //不进行处理转入从头开始的循环
188 //不清标志
189 break;
190 }
191 else if( cKeyCodeReceive==id) //说明是正确的键盘码转入处理程序
192 {
193 x=2;
194 pKeyCode=sKeyCode;
195 *pKeyCode=0xa0; //起始同步码
196 ++pKeyCode;
197 *pKeyCode=id; //ID码
198 cKeyCodeReceiveState=0;//已取走第二个码
199 do
200 {
201 // x=x^*pKeyCode ; //从第二个开始累加校验
202 while(!cKeyCodeReceiveState) //读码等待
203 {
204 _nop_();
205 }
206 ++pKeyCode;
207 *pKeyCode=cKeyCodeReceive;
208 cKeyCodeReceiveState=0; //取走键盘码
209 ++x;
210 }while( x!=8); //读码结束标志
211
212
213
214 x= ((unsigned int)sKeyCode[2]<<8)+sKeyCode[3]; //构造一译码关键字
215 WDT_cls();
216
217
218
219 switch(x)
220 {
221 case 0x0400: //光圈开
222 if(cAutoScan==1)
223 {
224 T0_stop();
225 cAutoScan=0; //自动扫描标志
226 }
227 CameraStop();
228 IrisOpen();
229 break;
230 case 0x0800: //光圈关
231 if(cAutoScan==1)
232 {
233 T0_stop();
234 cAutoScan=0; //自动扫描标志
235 }
236 CameraStop();
C51 COMPILER V8.05a MAIN123 11/06/2008 11:08:29 PAGE 5
237 IrisClose();
238 break;
239
240 case 0x0200: //焦距拉近
241 if(cAutoScan==1)
242 {
243 T0_stop();
244 cAutoScan=0; //自动扫描标志
245 }
246 CameraStop();
247 Focus_near();
248 break;
249
250 case 0x0100: //焦距拉远
251 if(cAutoScan==1)
252 {
253 T0_stop();
254 cAutoScan=0; //自动扫描标志
255 }
256 CameraStop();
257 Focus_far();
258 break;
259
260 case 0x0040: //视角宽
261 if(cAutoScan==1)
262 {
263 T0_stop();
264 cAutoScan=0; //自动扫描标志
265 }
266 CameraStop();
267 Zoom_wide();
268 break;
269
270 case 0x0020: //视角窄
271 if(cAutoScan==1)
272 {
273 T0_stop();
274 cAutoScan=0; //自动扫描标志
275 }
276 CameraStop();
277 Zoom_tele();
278 break;
279
280 case 0x0008: //向上 上下由T1控制
281 if(cAutoScan==1)
282 {
283 T0_stop();
284 cAutoScan=0; //自动扫描标志
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -