#include "config.h"
#include "process.h"
#include "util.h"
#include "simulate.h"
#define STA_HEAD 1
#define STA_DEAL 2
#define STA_WAIT1 3
#define STA_WAIT2 4
#define STA_WAIT3 5
#define STA_WAIT4 6
#define STA_TEST 7
#define CHAR_HEAD 0xaa
#define CHAR_END1 0xcc
#define CHAR_END2 0x33
#define CHAR_END3 0xc3
#define CHAR_END4 0x3c
sbit LED_RUN = P1^3;
stSIMULATE_CONTROL xdata sxSimulate;
void simulate_init()
{
sxSimulate.rx_state = NO_STATE;
sxSimulate.tx_state = NO_STATE;
sxSimulate.rx_len = 0;
SIMULATE_EN = 1;
}
void simulate_send(unsigned char *buf, unsigned char len)
{
unsigned char i;
if(sxSimulate.tx_state == TX_IDLE_STATE)
{
SIMULATE_EN = 0;
for(i=0; i<len; i++)
{
sxSimulate.tx_data = *(buf+i);
sxSimulate.tx_state = TX_START_STATE;
while(1)
{
if(TX_END_STATE == sxSimulate.tx_state) break;
}
}
sxSimulate.tx_state = TX_IDLE_STATE;
SIMULATE_EN = 1;
}
}
void simulate_receive(unsigned char c)
{
sxSimulate.rx_buf[sxSimulate.rx_len++] = c;
if(sxSimulate.rx_len >= MAX_SIMULATE_BUF_LEN) sxSimulate.rx_len = 0;
}