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

📄 manualboard.lst

📁 通过车载终端采集GPS数据
💻 LST
📖 第 1 页 / 共 2 页
字号:
 273   3              }
 274   2              else if (SIGAL_DIRECTION == busInfo.lineAttr)
 275   2              {
 276   3                  //单向
 277   3                  back_to_firststation(busInfo.direction);
 278   3              }
 279   2              play_stationsound(busInfo.displayCurStation, busInfo.attrStation);
 280   2              set_stationdata_changed();
 281   2              return OK;
 282   2          }
 283   1          //其他情况都不处理,播放上下坡信息
 284   1              play_notitionsound(6);//6);
 285   1              
 286   1          return KO;
 287   1      }
 288          
 289          code FUNCTION_STATIONKEY funcStation[7] = 
 290                                {key_arrive_station,\
 291                                 key_leave_station, \
 292                                 key_repeat_station,\
 293                                 key_last_station, \
 294                                 key_next_station, \
 295                                 key_change_direction,\
 296                                  key_twotime_board};
C51 COMPILER V7.09   MANUALBOARD                                                           09/17/2008 16:05:33 PAGE 6   

 297          
 298          //到站键处理
 299          
 300          
 301          /***********与报站相关的按键处理***********/
 302          /*type:按键类型,见pubstruct.h
 303          /*返回OK表示当前站以及当前站模式有变化,返回KO表示没有变化
 304          /********************************/
 305          Byte key_process_station(KEY_TYPE type)
 306          {
 307   1          return funcStation[type]();
 308   1      }
 309          
 310          
 311          /*手动报站与中心的交互*/
 312          /*action:0 进站、1 出站、2 发车*/
 313          //07-08-15修改,手动报站不修改自动报站的参数
 314          void hand_sound_report(unsigned char action, unsigned char station)
 315          {
 316   1          unsigned char tmp;
 317   1          //同步界面与通信中的curStation
 318   1          if (action == NEXT_STATION)
 319   1              busInfo.tranCurStation = get_laststationNum(busInfo.displayCurStation);
 320   1      
 321   1          tmp = station & 0x3F;
 322   1      
 323   1          if( action == CURRENT_STATION)//0 )
 324   1          {/*进站*/
 325   2          //    position_sound_record(tmp);//?是否需要///07-08-15
 326   2              make_runmode_message(action, station);
 327   2          }
 328   1          else if( action == NEXT_STATION)//1)
 329   1          {/*出站*/
 330   2              tmp = position_last_station(tmp);
 331   2      
 332   2          //    position_sound_record(tmp|0x40);//07-08-15
 333   2              make_runmode_message(action, tmp );
 334   2          }
 335   1          else if( action == FIRST_STATION)//2)
 336   1          {/*发车*/
 337   2              if( station < 64 )
 338   2                  tmp = 0;
 339   2              else 
 340   2                  tmp = 1;
 341   2      
 342   2              set_cur_direction(tmp);
 343   2         //     position_sound_record(1);//07-08-15
 344   2      
 345   2          }
 346   1      
 347   1      }
 348          
 349          
 350          /*判断当前站是否为第二站
 351          返回值:OK 是第二站,KO 不是第二站*/
 352          /*curNum:站点序号,值从1开始,dir:方向*/
 353          Byte is_thesecondStation(Byte curNum, Byte dir)
 354          {
 355   1          Byte nTmp, i;
 356   1      //判断本站是否是第二站
 357   1          nTmp = OK;
 358   1          if (BUS_UPWARD == dir)
C51 COMPILER V7.09   MANUALBOARD                                                           09/17/2008 16:05:33 PAGE 7   

 359   1          {
 360   2              for (i = (busInfo.firstStation[0]); i < (curNum-1); i++)
 361   2              {
 362   3                  if (1 == positionMode[i])
 363   3                  {
 364   4                      nTmp = KO;//当前站不是第二站
 365   4                      break;
 366   4                  }
 367   3              }
 368   2          }
 369   1          else
 370   1          {
 371   2              for (i = (busInfo.firstStation[1]); i < (curNum-1); i++)
 372   2              {
 373   3                  if (1 == positionMode[i])
 374   3                  {
 375   4                      nTmp = KO;//当前站不是第二站
 376   4                      break;
 377   4                  }
 378   3              }
 379   2          }
 380   1          return nTmp;
 381   1      }
 382          
 383          /*主要给自动报站模块来使用*/
 384          void set_cur_direction(unsigned char value)
 385          {
 386   1          //同步界面与通信中的curStation
 387   1          busInfo.tranCurStation = busInfo.displayCurStation;
 388   1          
 389   1          busInfo.totalPassenger = 0;
 390   1          busInfo.stationState = 0;
 391   1          set_position_state(busInfo.direction, 0);
 392   1      }
*** WARNING C280 IN LINE 384 OF MAIN\MANUALBOARD.C: 'value': unreferenced local variable
 393          
 394          void back_to_firststation(Byte direction)
 395          {
 396   1          if (BUS_BACKWARD == direction)
 397   1          {
 398   2              busInfo.direction = BUS_BACKWARD;
 399   2              busInfo.displayCurStation = busInfo.firstStation[1];
 400   2              busInfo.stationName = stationTone[busInfo.displayCurStation-1].name;
 401   2          }
 402   1          else
 403   1          {
 404   2              busInfo.direction = BUS_UPWARD;
 405   2              busInfo.displayCurStation = busInfo.firstStation[0];
 406   2              busInfo.stationName = stationTone[busInfo.displayCurStation-1].name;
 407   2          }
 408   1          busInfo.attrStation = FIRST_STATION;
 409   1          set_cur_direction(busInfo.direction);
 410   1      }
 411          
 412          
 413          #define DIRECTION_CHANGED 1
 414          #define DIRECTION_NOCHANGE 0
 415          #define NORMAL_CHANGE_TIMEOUT 60//1min
 416          #define QUICK_CHANGE_TIMEOUT 30//30sec
 417          #define CIRCUIT_CHANGE_TIMEOUT 60
 418          bit directionFlag=0;
 419          Byte dirChangeTimout;
C51 COMPILER V7.09   MANUALBOARD                                                           09/17/2008 16:05:33 PAGE 8   

 420          
 421          void start_change_timeout()
 422          {
 423   1          directionFlag = 1;
 424   1          if (SINGAL_LINE == busInfo.lineAttr)
 425   1              dirChangeTimout = QUICK_CHANGE_TIMEOUT;
 426   1          else if (CIRCUIT_LINE == busInfo.lineAttr)
 427   1              dirChangeTimout = CIRCUIT_CHANGE_TIMEOUT;
 428   1          else 
 429   1              dirChangeTimout = NORMAL_CHANGE_TIMEOUT;
 430   1      }
 431          
 432          
 433          //由主函数调用。每1s调用一次
 434          void direction_change_timeout()
 435          {
 436   1          if (directionFlag == 1)
 437   1          {
 438   2              if (CURRENT_STATION == busInfo.attrStation)
 439   2              {
 440   3                  dirChangeTimout--;
 441   3                  if (0 == dirChangeTimout)
 442   3                  {
 443   4                      //换方向
 444   4                      directionFlag = 0;
 445   4                      
 446   4                      if ((NORMAL_LINE == busInfo.lineAttr) || (SINGAL_LINE == busInfo.lineAttr))
 447   4                      {
 448   5                          //常规线路以及单终点线路需要换方向
 449   5                          inform_station(133, 0);
 450   5                      }
 451   4                      else
 452   4                      {
 453   5                          ////如果为环线以及单方向车则不换方向,直接回首站
 454   5                          back_to_firststation(busInfo.direction);
 455   5                      }
 456   4                      set_stationdata_changed();
 457   4                  }
 458   3              }
 459   2              else
 460   2                  directionFlag = 0;
 461   2          }
 462   1      }
 463          
 464          /************处理到站信息************/
 465          /*curStation:1-64:上行车站号
 466                        65-128:下行车站号
 467                        129:上坡  130:下坡  131:拐弯,133:最后一站换方向
 468          /*attrStation:0:本站
 469                        1:下一站
 470          /********************************/
 471          void inform_station(Uint8 curStation/*站点序号*/, Byte attrStation)
 472          {
 473   1          if (133 == curStation)
 474   1          {
 475   2              if (BUS_BACKWARD == busInfo.direction)
 476   2              {
 477   3                  back_to_firststation(BUS_UPWARD);
 478   3              }
 479   2              else
 480   2              {
 481   3                  back_to_firststation(BUS_BACKWARD);
C51 COMPILER V7.09   MANUALBOARD                                                           09/17/2008 16:05:33 PAGE 9   

 482   3              }
 483   2              set_stationdata_changed();
 484   2              return;
 485   2          }
 486   1          if (130 == curStation)
 487   1          {
 488   2              //播放下坡,第6段服务短语
 489   2              if (OK == is_playconner())
 490   2                  play_notitionsound(10);//6);
 491   2              
 492   2              return;
 493   2          }
 494   1          if (131 == curStation)
 495   1          {
 496   2              //播放拐弯,第4段服务短语
 497   2              if (OK == is_playconner())
 498   2                  play_notitionsound(9);//5);
 499   2              else
 500   2                  add_play_queue(9);
 501   2              return;
 502   2          }
 503   1          if (curStation >= 65)
 504   1          {
 505   2              if ((curStation > busInfo.lastStation[1]) || (curStation < busInfo.firstStation[1]))
 506   2              {
 507   3                  //是不是应该发送一下线路状态改变报文?
 508   3                  return;
 509   3              }
 510   2          }
 511   1          else
 512   1          {
 513   2              if ((curStation > busInfo.lastStation[0]) || (curStation < busInfo.firstStation[0]))
 514   2              {
 515   3                  //是不是应该发送一下线路状态改变报文?
 516   3                  return;
 517   3              }
 518   2          }
 519   1          if ((curStation == busInfo.firstStation[1]) || (curStation == busInfo.firstStation[0]))
 520   1              busInfo.attrStation = FIRST_STATION;
 521   1          else
 522   1              busInfo.attrStation = attrStation;
 523   1          busInfo.displayCurStation = curStation;
 524   1          busInfo.stationName = stationTone[busInfo.displayCurStation-1].name;
 525   1          if (CURRENT_STATION == busInfo.attrStation)
 526   1          {
 527   2              if ((busInfo.displayCurStation == busInfo.lastStation[0]) || (busInfo.displayCurStation == busInfo
             -.lastStation[1]))
 528   2              {
 529   3                  //需要换方向
 530   3      //            if (CIRCUIT_LINE != busInfo.lineAttr)
 531   3                  start_change_timeout();//8月10日改,换不换方向由timeout函数来确定
 532   3              }
 533   2          }
 534   1          //语音报站 
 535   1          play_stationsound(busInfo.displayCurStation, busInfo.attrStation);
 536   1          set_stationdata_changed();
 537   1          if (attrStation != NEXT_STATION)
 538   1              openLight();
 539   1      }
 540          


C51 COMPILER V7.09   MANUALBOARD                                                           09/17/2008 16:05:33 PAGE 10  

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1476    ----
   CONSTANT SIZE    =     21    ----
   XDATA SIZE       =      1       8
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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