elteck_ac.c

来自「交直流灵达电源单片机通讯程序,通过协议获得电源当前状态.」· C语言 代码 · 共 45 行

C
45
字号
#define AC_GLOBALS
#include <variable.H>

#ifdef ELTECK_AC

void AcProcess(void)
{   
unsigned char data tmp;
unsigned char data mDataLen;
struct Serial_rcv xdata *Com;
static unsigned char xdata CmdBuff[] ={	0x7e, 0x41, 0x41, 0x46, 0x41, 
										0x30, 0x31, 0x30, 0x39, 0x41, 0x0d};
	if (Send_To_SndBuffer(ELTECK_AC, 11, CmdBuff) ) SendStart(ELTECK_AC);

	Com = Rcv + ELTECK_AC;	
	while  ( Com->Tail != Com->Head ) {
		tmp=Com->mData[Com->Head++];
		Com->Head=Com->Head % LEN_RCV;
		
		if (!Com->Start) {
			if (tmp == 0x7e)  {
					Com->Start = 1;   	//  save first byte and byte-position;
					Com->Buff[1] = 0x7e;
					Com->pos = 2;   
			}
			continue;
		}
		if (tmp == 0x0d) {
			mDataLen = Com->pos;
			if (mDataLen == 57) {
				Com->Buff[57] = 0x0d;
				Com->Buff[0] = 57;
				memcpy(AcBuff,Com->Buff,58);
			}
			Com->Start=0;
		}
		if ( Com->pos >57 ) Com->Start=0;
		Com->Buff[Com->pos++]=tmp;
		continue;
	}  
}

#endif

⌨️ 快捷键说明

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