📄 myuart.cpp
字号:
nCount = DATAST_PLACE;
//dat=restoreparam_from_Mem();
memcpy(&uartSbuf[DATAST_PLACE],&con_param_Info,sizeof(Con_param_Info));
nCount+=sizeof(Con_param_Info);
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
void Do_SetSystemTime(void)
{
BYTE buf[7];// = {0x00,0x45,0x23,0x16,0x06,0x03,0x04};
BYTE nCount;
BYTE dat = SUCCESS;
if(uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE != 6)
{
dat = FORMAT_ERR;
}
else
{
nCount=DATAST_PLACE;
buf[YEAR_ADDR]=uartSbuf[nCount++];
buf[MOM_ADDR] =uartSbuf[nCount++];
buf[DATE_ADDR]=uartSbuf[nCount++];
buf[HOUR_ADDR]=uartSbuf[nCount++];
buf[MIN_ADDR] =uartSbuf[nCount++];
buf[SEC_ADDR] =uartSbuf[nCount++];
Do_WriteClock(buf);
}
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
uartSbuf[nCount++] = dat;
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
if(dat==SUCCESS)
{
do_buzzer(BUZZER_WAIT);
}
}
void Do_GetSystemTime(void)
{
BYTE buf[7];// = {0x00,0x45,0x23,0x16,0x06,0x03,0x04};
BYTE nCount = ASP_PLACE;
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
Do_ReadClock(buf);
nCount = DATAST_PLACE;
uartSbuf[nCount++]=buf[YEAR_ADDR];
uartSbuf[nCount++]=buf[MOM_ADDR];
uartSbuf[nCount++]=buf[DATE_ADDR];
uartSbuf[nCount++]=buf[HOUR_ADDR];
uartSbuf[nCount++]=buf[MIN_ADDR];
uartSbuf[nCount++]=buf[SEC_ADDR];
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
void Do_ReadConData(void)
{
Con_Record pdata con_record;
BYTE ii,dat,nCount = ASP_PLACE;
//SendStr(uartSbuf,10);//for test.
if((uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE) != 1)return; //err.
if((dat=uartSbuf[DATAST_PLACE])==0)return;
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
while(dat--)
{
if((ii=Read_ConData_From_Memory(&con_record))==SUCCESS)
{
memcpy(&uartSbuf[nCount],&con_record,sizeof(Con_Record));
nCount += sizeof(Con_Record);
if((con_record.mark==CONSUME_FLAG)&&(con_statusinfo.con_records>0))
{
con_statusinfo.con_records--;
con_statusinfo.con_allmoney-=con_record.con_Money;
}
}
else if(ii==NO_CON_RECORD)
{
uartSbuf[FRAMECODE_PLACE] |= THELAST_FRAME;
receive_timer = 0; //must!
break;
}
else
{
Equip_CurStatus=ii;
Do_CheckEquip();
do_buzzer(BUZZER_ALARM);//Dis_Err(ii);
return;
}
}
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
void Do_SetConRecode(void)
{
}
void Do_SetCardClass_Para(void)
{
Card_Class_Para pdata card_class;
BYTE nCount = ASP_PLACE;
BYTE dat = SUCCESS;
if(uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE<sizeof(Card_Class_Para))
{
dat = FORMAT_ERR;
}
else
{
memcpy(&card_class,&uartSbuf[DATAST_PLACE],sizeof(Card_Class_Para));
dat=SaveCardClass_To_Mem(&card_class);
}
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
uartSbuf[nCount++] = dat;
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
if(dat==SUCCESS)
{
do_buzzer(BUZZER_WAIT);
}
}
void Do_GetCardClass_Para(void)
{
Card_Class_Para pdata card_class;
BYTE nCount = ASP_PLACE,dat;
if((uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE) != 1)return; //err.
if((dat=uartSbuf[DATAST_PLACE])<1 || dat>8)return;
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
card_class.card_class=dat; //must.
if((dat=ReadCardClass_from_Mem(&card_class))!=SUCCESS)
{
Equip_CurStatus=dat;
Do_CheckEquip();
do_buzzer(BUZZER_ALARM);//Dis_Err(ii);
return;
}
memcpy(&uartSbuf[DATAST_PLACE],&card_class,sizeof(Card_Class_Para));
nCount += sizeof(Card_Class_Para);
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
void Do_SetBh_Money(void)
{
BYTE nCount,dat=uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE;
if((dat<sizeof(Bh_Money))||(dat>DATLENGTH_MAX))
{
dat=FORMAT_ERR;
}
else
{
if(uartSbuf[FRAMECODE_PLACE]&FRAMES_MAX == 0)
{//这就决定了编号只能一次下载下去!否则只保留最后一次的。
if((dat=DelAllBh_Money())!=SUCCESS)goto SKIP;
}
dat = uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE;
dat = SaveBh_Money_To_Mem(&uartSbuf[DATAST_PLACE],dat);
}
SKIP:
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
uartSbuf[nCount++] = dat;
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
#define FRAME_BHSTRUCT_S (DATLENGTH_MAX/sizeof(Bh_Money))
void Do_GetBh_Money(void)
{
Bh_Money pdata bh_money;
BYTE ii,dat,nCount,frame=uartSbuf[FRAMECODE_PLACE]&FRAMES_MAX;
//SendStr(uartSbuf,10);//for test.
if((uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE) != 1)return; //err.
if(((dat=uartSbuf[DATAST_PLACE])<1)||(dat>FRAME_BHSTRUCT_S))return;
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
for(ii=frame*FRAME_BHSTRUCT_S,frame=ii+dat;ii<frame;ii++)
{
if((dat=ReadBh_Money_From_Memory(&bh_money,ii))==SUCCESS)
{
if(bh_money.Bh_code==0xffff)
{
bh_money.Bh_code=ii,bh_money.money=0;
}
memcpy(&uartSbuf[nCount],&bh_money,sizeof(Bh_Money));
nCount += sizeof(Bh_Money);
}
else if(dat==KEY_VALERR_CODE)
{
uartSbuf[FRAMECODE_PLACE] |= THELAST_FRAME;
receive_timer = 0; //must!
break;
}
else
{
Equip_CurStatus=dat;
Do_CheckEquip();
do_buzzer(BUZZER_ALARM);//Dis_Err(ii);
return;
}
}
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
void Do_SetNumber(void)
{
BYTE nCount = ASP_PLACE;
BYTE dat = SUCCESS;
if(uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE<sizeof(Equip_Addr))
{
dat = FORMAT_ERR;
}
else if((con_statusinfo.con_records>0))
{
dat= OP_UNALLOWED;//可能还有消费数据
}
else
{
memcpy(&equip_addr,&uartSbuf[DATAST_PLACE],sizeof(Equip_Addr));
dat=Saveparam_To_Mem();
}
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
uartSbuf[nCount++] = dat;
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
if(dat==SUCCESS)
{
do_buzzer(BUZZER_WAIT);
}
}
void Do_SendDcpeoples(void)
{
BYTE nCount,dat = SUCCESS;
if(uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE<sizeof(Dc_Peoples))
{
dat = FORMAT_ERR;
}
else
{
memcpy(&dc_peoples,&uartSbuf[DATAST_PLACE],sizeof(Dc_Peoples));
}
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
uartSbuf[nCount++] = dat;
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
if(dat==SUCCESS)
{
do_buzzer(BUZZER_WAIT);
}
}
void Do_GetConStatusInfo(void)
{
BYTE nCount = ASP_PLACE;
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
//dat=restoreparam_from_Mem();
memcpy(&uartSbuf[nCount],&con_statusinfo,sizeof(Con_StatusInfo));
nCount += sizeof(Con_StatusInfo);
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
extern const BYTE code YsnOysFlag_Str[];
extern const BYTE code MyReVision_Str[];
extern const BYTE code Con_Types_Str[];
void Do_GetEquipVersionInfo(void)
{
BYTE nCount = ASP_PLACE;
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
memcpy(&uartSbuf[nCount],Con_Types_Str,strlen(Con_Types_Str));
nCount+=strlen(Con_Types_Str);
memcpy(&uartSbuf[nCount],",",1);
nCount+=1;
memcpy(&uartSbuf[nCount],MyReVision_Str,strlen(MyReVision_Str));
nCount+=strlen(MyReVision_Str);
memcpy(&uartSbuf[nCount],&YsnOysFlag_Str[3],strlen(YsnOysFlag_Str)-2);
nCount+=strlen(YsnOysFlag_Str)-2;
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
void Do_SetOpUserInfo(void)
{
BYTE nCount,dat = SUCCESS;
if(uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE<sizeof(Op_User_Info))
{
dat = FORMAT_ERR;
}
else
{
memcpy(&op_user_info,&uartSbuf[DATAST_PLACE],sizeof(Op_User_Info));
dat=Saveparam_To_Mem();
}
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
uartSbuf[nCount++] = dat;
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
if(dat==SUCCESS)
{
do_buzzer(BUZZER_WAIT);
}
}
void Do_GetCurOpUserInfo(void)
{
BYTE nCount = ASP_PLACE;
uartSbuf[ASP_PLACE] = UP_ASP;
uartSbuf[TYPE_PLACE] = equip_addr.ntype;
uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
//uartSbuf[DATLENGTH_PLACE]=
//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原来下传的不变。
uartSbuf[ORDOR_PLACE] = AckSetGet_ORDOR;
nCount = DATAST_PLACE;
//dat=restoreparam_from_Mem();
memcpy(&uartSbuf[nCount],&op_user_info,sizeof(Op_User_Info));
nCount += sizeof(Op_User_Info);
uartSbuf[DATLENGTH_PLACE] = nCount;
Set_BCCsum(uartSbuf,nCount);
if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -