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

📄 ppos.c.bak

📁 用于小商品消费的SMS消费机程序
💻 BAK
📖 第 1 页 / 共 4 页
字号:
				stMainMenu.cCursorPosition=0;
			}			
//			clr_scr();	
//			move_cursor(0,0);
//	    		set_inversed_disp();
//			puts("    系统登录    ");
//			set_normal_disp();
//			move_cursor(0,2);
//			puts("请按确认键后刷授");
//			move_cursor(0,4);
//			puts("权卡!");
//			cPressKey = getch();
//			if(cPressKey==KEY_ENTER)
//			{
//				if(InitMC530(TYPE_A_ISO14443) != MI_OK)
//				{
//					clr_scr();
//					move_cursor(0,0);
//			    		set_inversed_disp();
//					puts("错误:");
//					set_normal_disp();
//					move_cursor(0,4);
//					puts("卡接口错误");
//					MC530Off;
//					move_cursor(0,6);
//					puts("按任意键返回");
//					getch();
//					break;
//				}
//				clr_scr();
//				move_cursor(0,2);
//				puts("请在 3秒内刷卡");
//				CheckPOSStatus(1);
//				SPT_set(64);
//				for(i = 3;i;)
//				{
//					if (!SPT_read())
//					{
//						move_cursor(4,2);
//						printf("%2d",i-1);
//						SPT_set(64);
//						i --;
//					}
//					if(CardTypeARequest(PICC_REQIDL,gcATQ) == MI_OK)
//						break;
//						
//				}
//				if(i!=0)
//				{
//					CardTypeAAnticollLevel1((unsigned char*)&glSerialNo);					
//					CardTypeASelectLevel1((unsigned char*)&glSerialNo, gcATS);
//					if (gcGetKeyFinished != 4)
//					{
//						GetCardKey(glSerialNo);			
//					}
//					GetCardInformation(glSerialNo, SECTOR_PUBLISH|SECTOR_PUBLIC);
//					if(gstWorkCardInfomation.cCardType == CARD_POS_WORKER)
//					{		
//						AuthenCard(&glSerialNo, 3, MIF_READ);
//						CardMFCRead16Bytes(12, gcMifBuffer);
//						memset(cCmdBuff, 0xff, 15);
//						cCmdBuff[0] = 6;
////						memcpy(cCmdBuff+1, gcMifBuffer, 10);
//						memcpy(cCmdBuff+1, "123456", 6);	//for debug					
//						memcpy(cCmdBuff+9, "\x01\x00\x00\x00", 4);
//	
//						if(POSExecuteCommand(CMD_LOGON, 11, cCmdBuff, &iCmdBuffLength, cCmdBuff)==CMD_OK)
//						{
//							clr_scr();
//							move_cursor(0,0);
//				    			set_inversed_disp();
//								puts("    系统登录    ");
//							set_normal_disp();
//							move_cursor(0,2);
//							puts("系统登录成功!");
//							move_cursor(0,6);
//							puts("按任意键返回");
//							MC530Off;
//							getch();
//						}
//						else
//						{
//							clr_scr();
//							move_cursor(0,0);
//				    			set_inversed_disp();
//							puts("错误:");
//							set_normal_disp();
//							move_cursor(0,2);
//							puts("系统登录失败,重");
//							move_cursor(0,4);
//							puts("新刷卡或按取消键");
//							move_cursor(0,6);
//							puts("返回!");
//							cPressKey = getch();
//							if(cPressKey==KEY_CLR)
//							{
//								stMainMenu.cCursorPosition=0;
//								MC530Off;
//								break;
//							}						
//						}				
//					}
//					else
//					{
//						clr_scr();
//						move_cursor(0,0);
//			    			set_inversed_disp();
//						puts("错误:");
//						set_normal_disp();
//						move_cursor(0,2);
//						puts("错误的操作员卡,");
//						move_cursor(0,4);
//						puts("重新刷卡或按取消");
//						move_cursor(0,6);
//						puts("键返回!");
//						cPressKey = getch();
//						if(cPressKey==KEY_CLR)
//						{
//							stMainMenu.cCursorPosition=0;
//							MC530Off;
//							break;
//						}						
//					}				
//				}
//				else
//				{
//					clr_scr();
//					move_cursor(0,0);
//			    		set_inversed_disp();
//					puts("错误:");
//					set_normal_disp();
//					move_cursor(0,2);
//					puts("未读到合法卡");
//					MC530Off;
//					move_cursor(0,6);
//					puts("按任意键返回");
//					getch();
//				}								
//			}
//			else if(cPressKey==KEY_CLR)
//			{
//				stMainMenu.cCursorPosition=0;
//			}			
			CheckPOSStatus(0);
			break;
		case 1:
			if(gcAuthenMode!=2)
			{
				clr_scr();
				move_cursor(0,0);
			    	set_inversed_disp();
				puts("错误:");
				set_normal_disp();
				move_cursor(0,2);
				puts("未登录系统!");
				move_cursor(0,6);
				puts("按任意键返回");
				getch();
				break;
			}
			CloseSAMCard();
			stMainMenu.cCursorPosition=0xff;
			clr_scr();	
			move_cursor(0,0);
	    		set_inversed_disp();
			puts("    刷卡消费    ");
			set_normal_disp();
			move_cursor(0,2);
			puts("请输入消费金额:");
			move_cursor(0,4);
			puts("       元");
			glChargeMoney = get_numeric(0, 4, 4, 2);
			if(glChargeMoney>0)
			{
				ResetResponse(cCmdBuff, &j);
				clr_scr();	
				move_cursor(0,0);
		    		set_inversed_disp();
				puts("    刷卡消费    ");
				set_normal_disp();
				move_cursor(0,2);
				printf("消费:%7.2f元", (float)glChargeMoney/100);
				move_cursor(0,4);
				puts("请先放好用户卡,");
				move_cursor(0,6);
				puts("再按确认键确认!");
				cPressKey = getch();
				if(cPressKey==KEY_ENTER)
				{							
					if(InitMC530(TYPE_A_ISO14443) != MI_OK)
					{
						clr_scr();
						move_cursor(0,0);
					    	set_inversed_disp();
						puts("错误:");
						set_normal_disp();
						move_cursor(0,4);
						puts("卡接口错误");
						MC530Off;
						move_cursor(0,6);
						puts("按任意键返回");
						getch();
						break;
					}
					do
					{
						clr_scr();
						move_cursor(0,2);
						puts("请在 3秒内刷卡");
						CheckPOSStatus(1);
						SPT_set(64);
						for(i = 3;i;)
						{
							if (!SPT_read())
							{
								move_cursor(4,2);
								printf("%2d",i-1);
								SPT_set(64);
								i --;
							}
							if(CardTypeARequest(PICC_REQIDL,gcATQ) == MI_OK)
								if(CardTypeAAnticollLevel1((unsigned char*)&lSerialNo) == MI_OK)
									if(CardTypeASelectLevel1((unsigned char*)&lSerialNo, gcATS) == MI_OK)
										break;
						}
						if(i!=0)
						{
							clr_scr();
							move_cursor(0,2);
							puts("正在交易,请稍等");
							GetCardKey(lSerialNo);			
							GetCardInformation(lSerialNo, SECTOR_ALL);
							memcpy(cCmdBuff, &lSerialNo, 4);
							OverTurnString(cCmdBuff+5, &glChargeMoney, 4);
							cCmdBuff[4] = CMD_PURCHASE_MONEY;
							if(POSExecuteCommand(CMD_PURCHASE, 9, cCmdBuff, &iCmdBuffLength, cCmdBuff)==CMD_OK)
							{
								clr_scr();
						    	move_cursor(0,0);
						    	set_inversed_disp();
								puts("    交易成功    ");
								set_normal_disp();
								move_cursor(0,2);
								printf("原额:%7.2f元", (float)gstWorkCardInfomation.lMoney/100);								
								move_cursor(0,4);
								printf("消费:%7.2f元", (float)glChargeMoney/100);
								move_cursor(0,6);
								printf("余额:%7.2f元", (float)(gstWorkCardInfomation.lMoney-glChargeMoney)/100);
			    				for(i=0;i<10;i++)
			    				{
			    						BEEPER_sound(0xf00a);
									delay_n_ms(35);
									BEEPER_sound(0);
									delay_n_ms(15);
								}
								i = 0;		
								do
								{
									SPT_set(2);
									msg_buffer.s_word = sys_msg(SM_STAY_AWAKE);
									if (msg_buffer.bits.key_down)
										break;
									i++;
									//delay_n_ms(30);
								}while(i<160);						
//								stPrintReport.cCursorPosition = 0;
//								memset(reportbar032, 0, 17);
//								memset(reportbar034, 0, 17);
//								memset(reportbar036, 0, 17);
//								memset(reportbar03A, 0, 17);
//								memset(reportbar03B, 0, 17);
//								memset(reportbar03D, 0, 17);
//								sprintf(reportbar032,"%02x%02x%02x%02x", gstWorkCardInfomation.cCityCode[0], gstWorkCardInfomation.cCityCode[1], gstWorkCardInfomation.cTradeCode[0], gstWorkCardInfomation.cTradeCode[1]);
//								sprintf(reportbar032+8,"%08lx", gstWorkCardInfomation.lCardNo);
//								sprintf(reportbar034,"%7.2f元", (float)gstWorkCardInfomation.lMoney/100);
//								sprintf(reportbar036,"%7.2f元", (float)glChargeMoney/100);
//								sprintf(reportbar038,"%7.2f元", (float)(gstWorkCardInfomation.lMoney-glChargeMoney)/100);
//								memcpy(cBuffer, gstWorkChargeRecord.cChargeDateTime, 7);
//								sprintf(reportbar03A, "%02x%02x年%02x月%02x日", cBuffer[0], cBuffer[1], cBuffer[2], cBuffer[3]);
//								sprintf(reportbar03B, "%02x:%02x:%02x", cBuffer[4], cBuffer[5], cBuffer[6]);
//								OverTurnString(&l1, gcPSAMNo, 4);
//								sprintf(reportbar03D, "%08ld", l1);
								//DisplayReport(stPrintReport.pTitle, stPrintReport.ppItem, stPrintReport.cItemNum, &stPrintReport.cCursorPosition);
								//PrintTable();
								//GetCardInformation(glSerialNo, SECTOR_MONEY|SECTOR_HISTORY|SECTOR_PUBLIC);
								MC530Off;
								cPressKey=KEY_CLR;
								break;
							}
							else
							{									
								cPressKey = ErrorMsg(cCmdBuff[0]);
								if(cPressKey==KEY_CLR)
								{
									MC530Off;
									stMainMenu.cCursorPosition=1;
									break;
								}
								cPressKey = KEY_ENTER;
								break;
							}
						}										
						else
						{
							clr_scr();
							move_cursor(0,0);
						    	set_inversed_disp();
							puts("错误:");
							set_normal_disp();
							move_cursor(0,2);
							puts("未读到合法卡");
							MC530Off;												
							move_cursor(0,4);
							puts("请重新刷卡,或按");
							move_cursor(0,6);
							puts("取消键后现金支付");
							cPressKey = getch();
							if(cPressKey==KEY_CLR)
							{
								stMainMenu.cCursorPosition=1;
								break;
							}
							cPressKey = KEY_ENTER;
						}									
					}while(cPressKey==KEY_ENTER);
				}				
			}
			else
			{
				stMainMenu.cCursorPosition=1;
			}
			CheckPOSStatus(0);
//			if(gcAuthenMode == 2)
//			{
//				do
//				{				
//					i = wrapSMSRecord(cBuffer, &srt);
////					clr_scr();
////					set_console_english();
////					DispInt(0, 0, i);
////					Dispbcd(0, 1, cBuffer, 52);
////					clr_scr();
////					Dispbcd(0, 1, cBuffer+52, 44);
////					set_console_chinese();			
//				
//					if(i==MAX_SEND_RECORD)
//					{
//						if(GSM_State == 0)
//						{	
//							clr_scr();	
//							move_cursor(0,0);
//							puts("打开GSM模块!");
//							move_cursor(0,2);
//							puts("请稍等...");
//							GSM_on();
//							delay_n_ms(5000);
//							clr_scr();	
//							move_cursor(0,0);
//							puts("配置GSM模块!");
//							move_cursor(0,2);
//							puts("请稍等...");
//							if(GSM_configure()==0)
//							{
//								clr_scr();	
//								move_cursor(0,0);
//								puts("配置GSM模块错误");
//								move_cursor(0,2);
//								puts("按任意键继续");
//								GSM_off();
//								getch();	
//								break;	
//							}	
//						}				
//						clr_scr();
//						move_cursor(0,0);
//						puts("发送交易数据");
//						move_cursor(0,2);
//						puts("请等待...");						
//						if(SendSMS(cBuffer, 8+i*44)==1)
//						{
//							if(updateSysRunTime(&srt)==0)
//							{
//								clr_scr();
//								move_cursor(0,0);
//								puts("成功:");
//								move_cursor(0,2);
//								puts("发送数据成功!");
//								move_cursor(0,6);
//								puts("按任意键继续");
//							}
//							else
//							{
//								clr_scr();
//								move_cursor(0,0);
//								puts("错误:");
//								move_cursor(0,2);
//								puts("更改数据库失败!");
//								move_cursor(0,6);
//								puts("按任意键返回");
//								getch();
//								break;															
//							}
//						}
//						else
//						{
//							clr_scr();
//							move_cursor(0,0);
//							puts("错误:");
//							move_cursor(0,2);
//							puts("发送数据失败!");
//							move_cursor(0,6);
//							puts("按任意键返回");
//							getch();
//							break;															
//						}
//					}		
//				}while(i==MAX_SEND_RECORD);
//			}
			break;
		case 2:
			if(gcAuthenMode!=2)
			{
				clr_scr();
				move_cursor(0,0);
		    		set_inversed_disp();
				puts("错误:");
				set_normal_disp();
				move_cursor(0,2);
				puts("未登录系统!");
				move_cursor(0,6);
				puts("按任意键返回");
				getch();
				break;
			}	
			if(InitMC530(TYPE_A_ISO14443) != MI_OK)
			{
				clr_scr();
				move_cursor(0,0);
				set_inversed_disp();
				puts("错误:");
				set_normal_disp();
				move_cursor(0,4);
				puts("卡接口错误");
				MC530Off;
				move_cursor(0,6);
				puts("按任意键返回");
				getch();
				break;
			}
			cPressKey = KEY_ENTER;
			do
			{
				if(CardTypeARequest(PICC_REQIDL,gcATQ) == MI_OK)
				{
					if(CardTypeAAnticollLevel1((unsigned char*)&lSerialNo)==MI_OK)
					{
						if(CardTypeASelectLevel1((unsigned char*)&lSerialNo, gcATS)==MI_OK)
						{
							ResetResponse(cCmdBuff, &j);
							if(GetCardKey(lSerialNo))
							{
								DisplayCardInfomation(lSerialNo);
								i = 0;								
								do
								{
									if((KEY_get_status()&0x01)!=0)
									{										
										cPressKey = KEY_CLR;
										break;
									}									
//									SPT_set(2);									
//									msg_buffer.s_word = sys_msg(SM_STAY_AWAKE);									
//									if (msg_buffer.bits.key_available)
//									{									
//										cPressKey = KEY_CLR;
//										break;
//									}
									i++;
									delay_n_ms(100);
									if(CardTypeARequest(PICC_REQIDL,gcATQ) == MI_OK)
										if(CardTypeASelectLevel1((unsigned char*)&lSerialNo, gcATS)==MI_OK)
											i=0;
								}while(i<5);									
							}							

⌨️ 快捷键说明

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