?? ex3acug20.c
字號:
/***********************************************************************/
/* FILE: Ex3AcUG20.c
/***********************************************************************/
#include <time.h>
#include <math.h>
#include "Ex3.h"
#include "console.h"
#include "Ex3Comm.h"
#include "Ex3AcUG20.h"
static struct TxDtS TxDt[]={
{0,2,OFF}, //poll
};
extern struct LibS Lib;
struct AcS Ac;
void FromToAC(WORD UartNo)
{
WORD i,OrgMark;
struct AcS *Acp;
Acp=&Ac;
AcTimeProc();
if(Acp->OrgPktStat==ON)
{
OrgMark=ToAcProc(UartNo);
if(OrgMark==ON)
{
Acp->OrgPktStat=OFF;
Acp->SendPktStat=ON;
}
}
//Lib.SetNodeOk=ON;
}
void AcTimeProc(void)
{
int i;
time_t CurTime,DltT,DltT1;
mytime(&CurTime);
for(i=0;i<sizeof(TxDt)/sizeof(struct TxDtS);i++)
{
DltT=DiffTime(&CurTime,&TxDt[i].LastTime);
if(DltT>=TxDt[i].DltTime)
{
TxDt[i].LastTime=CurTime;
TxDt[i].Occur=ON;
}
}
}
WORD ToAcProc(WORD UartNo)
{
WORD mark;
if(Lib.Isdown==ON)
mark=ToAcProcSet(UartNo);
else mark= ToAcProcPoll(UartNo);
return(mark);
}
WORD ToAcProcSet(WORD UartNo)
{
}
WORD ToAcProcPoll(WORD UartNo)
{
WORD CurUnitNo,mark=OFF;
WORD offset;
struct AcS *Acp;
Acp=&Ac;
if(mark==OFF&&TxDt[TXDT_POLL_AC].Occur==ON)
{
OrgToAcUgPkt(UartNo,POLL_AC);
TxDt[TXDT_POLL_AC].Occur=OFF;
mark=ON;
}
return(mark);
}
void OrgToAcUgPkt(WORD UartNo,WORD cmd)
{
WORD CheckSum;
WORD nbytes,index,i,sum,temp;
BYTE chkh,chkl;
struct AcS *Acp;
Acp=&Ac;
Acp->DnComd=cmd;
index=0;
Acp->ToBuff[index++] = AC_UG20_STX;
Acp->ToBuff[index++] = cmd;
switch(cmd)
{
case POLL_AC:
Acp->ToBuff[index++] = ACUG20_ADDR;
break;
default : break;
}
Acp->ToBuff[index++] = AC_UG20_ETX;
sum = 0;
for(i = 0;i<index;i++){
sum = sum + Acp->ToBuff[i];
}
temp = sum>>4;
Acp->ToBuff[index++] = 0x30+temp;
temp = sum&0x15;
Acp->ToBuff[index++] = 0x30+temp;
Acp->OrgBytes = index;
}
void AcBuffInit(WORD UartNo)
{
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -