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

RFID编程

开发平台:

C/C++

  1. #include  "My_head.h"
  2. #include  "carddef.h"
  3. //#include  "rfic.h"
  4. //#include  "sendcard.h"
  5. #include  "DS_addr.h"
  6. #include "DataFlash.H"
  7. #include "RfModuleFunc.H"
  8. //#define _DEBUG
  9. #ifdef _DEBUG
  10. #include "Debug.h"
  11. #endif
  12. extern sttCardholderInfo xdata stCardholderInfo; //持卡人信息
  13. extern sttBusinessInfo xdata stBusinessInfo; //交易信息
  14. extern sttOtherTableInfo xdata stOtherTableInfo;
  15. extern unsigned char xdata gcDateTime[7]; //全局时钟
  16. extern char FillMoneyOrTime();
  17. //保存订餐记录
  18. unsigned char SaveFillRecord()
  19. {
  20. Con_Record xdata stFillRecord;
  21. //准备数据
  22. if(stBusinessInfo.stFillInfo.cMode==FILL_MONEY)
  23. {
  24. stFillRecord.balance=stBusinessInfo.lMoney;     //卡上余额(本次操作后)
  25. stFillRecord.con_Money=stBusinessInfo.stFillInfo.lMoney;   //本次操作(消费、充值等)金额;(不要负数)
  26. stFillRecord.mark = 2; //充值
  27. }else{
  28. stFillRecord.balance=stBusinessInfo.iTimes;     //卡上余额(本次操作后)
  29. stFillRecord.con_Money=stBusinessInfo.stFillInfo.iTimes;   //本次操作(消费、充值等)金额;(不要负数)
  30. stFillRecord.mark = 12; //充次
  31. }
  32.     memcpy(stFillRecord.card_code,stCardholderInfo.cSerialNo,3);//卡编号(卡流水号)
  33. memcpy(stFillRecord.con_time,gcDateTime,6);//本次操作(消费、充值、挂失等)时间;
  34. memcpy((unsigned char*)&stFillRecord.card_count,stBusinessInfo.cIndex,2); //本卡操作(消费、充值、被挂失)累计流水号("卡"平帐用);
  35. stFillRecord.equip_count=stOtherTableInfo.iRecordIndex++;//本机操作(消费、充值、被挂失)累计流水号("机"平帐用);
  36. memset(stFillRecord.reserver,0,2);//保留以后用;
  37. #ifdef _DEBUG
  38. DebugString("stFillRecord Data:rn");
  39. DebugData(24,24,(unsigned char *)&stFillRecord);
  40. #endif
  41. //保存订餐记录
  42. return Save_ConData_to_Memory(&stFillRecord);
  43. }
  44. BYTE  Do_CheckCard_Event_9(BYTE  Dat)
  45. {
  46.     BYTE  i;
  47.     if((!equip_addr.ntype) || ((!seedcard_info.unit_code[0])&&(!seedcard_info.unit_code[1])&&(!seedcard_info.unit_code[2])))
  48.     {
  49.        i=NO_INI_EQUIP;
  50. }
  51. else 
  52. if((i=FillMoneyOrTime())==0)
  53. { //成功
  54.     Dis_Consume_Led(TRUE);    
  55. #ifdef _DEBUG
  56. DebugString("正常充值rn");
  57. #endif
  58. i=SaveFillRecord();
  59.         thekey.key_val = stBusinessInfo.lMoney;
  60.         KeyVal_Tobuf();
  61.         Dis_KeyBuf();
  62.     //Dis_Balance_Led(TRUE);
  63. My_Do_Buzzer(250,1);
  64.     }
  65. #ifdef _DEBUG
  66. DebugString("Order Dinner Result:");
  67. DebugData(1,1,&i);
  68. #endif
  69. if(i > 1)
  70.     {
  71.     Dis_Err_Led(TRUE); //FOR 技嘉
  72. if(i==60) //要求重刷卡
  73.     do_buzzer(3);
  74. else
  75.     do_buzzer(BUZZER_ERROR);
  76.     Dis_Err(i);
  77.   }
  78.     //SendStr("c:",2);SendStr(&i,1);
  79. Stop_Timer(DISPLAY_DELAYEVENT_Tevent);//msut!!
  80.     Set_TimerEvent(DISPLAY_DELAYEVENT_Tevent,DISPLAY_DELAYEVENT_TIME);
  81. Do_DisLed_Flash(0x00,0x00,145);
  82.     Set_TimerEvent(WAIT_CARD_Tevent,WAIT_CARDCONSUME_TIME);//(1)
  83. SetCurState(IDEL_STATUS);//ActiveState(INIT_STATUS);
  84.     Dat=Dat;
  85.     return(i);
  86. }
  87. BYTE  Do_DisCardVal_Event_7(BYTE  Dat)
  88. {
  89.     return(Dat);
  90. }
  91. BYTE  Do_TestCardWrite_Event_6(BYTE Dat)
  92. {
  93.    return(Dat);
  94. }
  95. BYTE  Do_CardConsume_Event_8(BYTE  Dat)
  96. {
  97.     return(Dat);
  98. }