do_search.c
上传用户:shyuanyi
上传日期:2008-05-24
资源大小:69k
文件大小:4k
源码类别:

RFID编程

开发平台:

C/C++

  1. #include  "My_head.h"
  2. #include  "key.h"
  3. /*************************************************/
  4. void  CounterAndfillBuf(BYTE buf[],BYTE lens,LWORD  dat,bit fill0_flag)//1-前面补零,0-不补零
  5. {
  6.     BYTE   ii;
  7.     LWORD  LL;  //mustn't LL=0L;
  8.     for(LL=1,ii=1;ii<lens;ii++)LL *= 10;
  9. for(ii=0;ii<lens;ii++)
  10. {
  11.   buf[ii] = ~D_DISPLAY[dat/LL];
  12.   if((buf[ii]==(BYTE)~D_DISPLAY[0]) && !fill0_flag)buf[ii]=~D_DISPLAY[18];
  13.   else fill0_flag=TRUE;
  14.   dat %= LL;
  15.   LL  /= 10;
  16. }
  17. }
  18. void  Dis_Equip_Code(void)
  19. {
  20.     BYTE   idata  buf[8];
  21. CounterAndfillBuf(&buf[0],2,equip_addr.ntype,TRUE);
  22. buf[2]= ~D_DISPLAY[16];
  23. CounterAndfillBuf(&buf[3],5,equip_addr.number_addr,TRUE);
  24. Display_str(buf);
  25. }
  26. /*
  27. void  Dis_Con_Records(void)
  28. {
  29.     BYTE   idata  buf[8];
  30. CounterAndfillBuf(&buf[0],8,con_statusinfo.con_records,FALSE);
  31. if(con_statusinfo.con_records==0)buf[7]=~D_DISPLAY[0];
  32. Display_str(buf);
  33. }
  34. void  Dis_Con_Allmoney(void)
  35. {
  36.     BYTE   idata  buf[8];
  37. CounterAndfillBuf(&buf[0],8,con_statusinfo.con_allmoney,FALSE);
  38. if(con_statusinfo.con_allmoney<1000)
  39. {
  40.    CounterAndfillBuf(&buf[5],3,con_statusinfo.con_allmoney,TRUE);
  41. }
  42.     buf[5] |= 0X80;
  43. Display_str(buf);
  44. }
  45. void  Dis_Con_DayRecords(void)
  46. {
  47.     BYTE   idata  buf[8];
  48. CounterAndfillBuf(&buf[0],8,con_statusinfo.con_dayrecords,FALSE);
  49. if(con_statusinfo.con_dayrecords==0)buf[7]=~D_DISPLAY[0];
  50. Display_str(buf);
  51. }
  52. void  Dis_Con_Daymoney(void)
  53. {
  54.     BYTE   idata  buf[8];
  55. CounterAndfillBuf(&buf[0],8,con_statusinfo.con_daymoney,FALSE);
  56. if(con_statusinfo.con_daymoney<1000)
  57. {
  58.    CounterAndfillBuf(&buf[5],3,con_statusinfo.con_daymoney,TRUE);
  59. }
  60.     buf[5] |= 0X80;
  61. Display_str(buf);
  62. }
  63. void  Dis_Con_BootRecords(void)
  64. {
  65.     BYTE   idata  buf[8];
  66. CounterAndfillBuf(&buf[0],8,con_statusinfo.con_bootrecords,FALSE);
  67. if(con_statusinfo.con_bootrecords<1)buf[7]=~D_DISPLAY[0];
  68. Display_str(buf);
  69. }
  70. void  Dis_Con_Bootmoney(void)
  71. {
  72.     BYTE   idata  buf[8];
  73. CounterAndfillBuf(&buf[0],8,con_statusinfo.con_bootmoney,FALSE);
  74. if(con_statusinfo.con_bootmoney<1000)
  75. {
  76.    CounterAndfillBuf(&buf[5],3,con_statusinfo.con_bootmoney,TRUE);
  77. }
  78.     buf[5] |= 0X80;
  79. Display_str(buf);
  80. }
  81. void  Dis_Equip_CurStatus(void)
  82. {
  83.  Dis_Err(Equip_CurStatus);
  84. }
  85. */
  86. /*
  87. void  Dis_Test_Data(void)
  88. {
  89.     BYTE   idata  buf[8];
  90. CounterAndfillBuf(&buf[0],8,12345678,TRUE);//sizeof(Con_Record));
  91. Display_str(buf);
  92. }
  93. */
  94. /*
  95. #define  MAX_TAB_S   9
  96. void  (code  *code SeachFunc_Tab[MAX_TAB_S])(void)=
  97. {
  98.  DisplayDate,         //0
  99.  Dis_Equip_Code,      //1
  100.  Dis_Con_Records,     //2
  101.  Dis_Con_Allmoney,    //3
  102.  Dis_Con_BootRecords, //4
  103.  Dis_Con_Bootmoney,   //5
  104.  Dis_Con_DayRecords,  //6
  105.  Dis_Con_Daymoney,    //7
  106.  Dis_Equip_CurStatus, //8
  107.  //Dis_Test_Data,       //
  108. };
  109. char  idata  dis_tab_s=0;
  110. BYTE  Do_SearchKey_Even_10(BYTE  Key)
  111. {
  112.   //SendStr(&Key,1);//for test!
  113.   //Do_Led(0x1<<(Key%8));//for test.
  114.   switch(Key)
  115.     {
  116.    case KEY_F1 :dis_tab_s=0;  //日期
  117.   break;
  118.  case KEY_F2 :dis_tab_s=1;  //设备
  119.   break;
  120.  case KEY_F3 :dis_tab_s=2;  //消费
  121.               break;
  122.  case KEY_F4 :dis_tab_s=3;
  123.               break;
  124.  case KEY_F5 :dis_tab_s=8;
  125.               break;
  126.      case KEY_UP: if(--dis_tab_s<0)dis_tab_s=MAX_TAB_S-1;
  127.               break;
  128.  case KEY_DOWN:if(++dis_tab_s>MAX_TAB_S-1)dis_tab_s=0;
  129.                break;
  130.  case KEY_CANCEL:Renew_To_AllInit();
  131.  return(0);
  132.      default:return(Key);
  133. }
  134.   //Stop_Timer(DIS_CLOCKEVENT_Tevent);//must!
  135.   (SeachFunc_Tab[dis_tab_s])();
  136.   Stop_Timer(WAIT_PRESSKEY_Tevent);
  137.   Set_TimerEvent(WAIT_PRESSKEY_Tevent,WAIT_PRESSKEY_TIME);
  138.   //Stop_Timer(DISPLAY_DELAYEVENT_Tevent);//msut!!
  139.   //Set_TimerEvent(DISPLAY_DELAYEVENT_Tevent,DISPLAY_DELAYEVENT_TIME);
  140.   //Do_DisLed_Flash(0x00,0x00,200);
  141.   //Set_TimerEvent(WAIT_CARD_Tevent,WAIT_CARDCONSUME_TIME);//(1)
  142.   //SetCurState(IDEL_STATUS);//ActiveState(INIT_STATUS);
  143.   //SendStr("d:",2);SendStr(&i,1);
  144.   SetCurState(QUERY_STATUS);
  145.   return(0);
  146. }
  147. */