更新串口接收方式。
This commit is contained in:
@@ -30,27 +30,18 @@ extern ArmorFinder armorFinder;
|
|||||||
extern Energy energy;
|
extern Energy energy;
|
||||||
|
|
||||||
void uartReceive(Serial *pSerial) {
|
void uartReceive(Serial *pSerial) {
|
||||||
char buffer[20];
|
char buffer[30];
|
||||||
int cnt = 0;
|
|
||||||
LOGM(STR_CTR(WORD_LIGHT_WHITE, "data receive start!"));
|
LOGM(STR_CTR(WORD_LIGHT_WHITE, "data receive start!"));
|
||||||
while (true) {
|
while (true) {
|
||||||
char byte = 0;
|
char byte = 0;
|
||||||
memset(buffer, 0, sizeof(buffer));
|
memset(buffer, 0, sizeof(buffer));
|
||||||
while (pSerial->ReadData((uint8_t *) &byte, 1) && byte != '\n') {
|
pSerial->ReadData((uint8_t *) &byte, sizeof(mcuData)+1);
|
||||||
buffer[cnt++] = byte;
|
if (buffer[sizeof(mcuData)] == '\n') {
|
||||||
if (cnt >= sizeof(buffer)) {
|
|
||||||
// LOGE("data receive over flow!");
|
|
||||||
cnt = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (cnt == 0 && byte == '\n') {
|
|
||||||
LOGM("%d", cnt);
|
|
||||||
}
|
|
||||||
if (cnt == sizeof(mcuData)) {
|
|
||||||
memcpy(&mcuData, buffer, sizeof(mcuData));
|
memcpy(&mcuData, buffer, sizeof(mcuData));
|
||||||
LOGM("Get, state:%c, mark:%d!", mcuData.state, (int) mcuData.mark);
|
LOGM("Get, state:%c, mark:%d!", mcuData.state, (int) mcuData.mark);
|
||||||
|
}else{
|
||||||
|
LOGW("corrupt data!");
|
||||||
}
|
}
|
||||||
cnt = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ Serial::Serial(int nSpeed, char nEvent, int nBits, int nStop) :
|
|||||||
nSpeed(nSpeed), nEvent(nEvent), nBits(nBits), nStop(nStop) {
|
nSpeed(nSpeed), nEvent(nEvent), nBits(nBits), nStop(nStop) {
|
||||||
if (wait_uart) {
|
if (wait_uart) {
|
||||||
LOGM("Wait for serial be ready!");
|
LOGM("Wait for serial be ready!");
|
||||||
while (InitPort(nSpeed, nEvent, nBits, nStop) == false);
|
while (!InitPort(nSpeed, nEvent, nBits, nStop));
|
||||||
LOGM("Port set successfully!");
|
LOGM("Port set successfully!");
|
||||||
} else {
|
} else {
|
||||||
if (InitPort(nSpeed, nEvent, nBits, nStop)) {
|
if (InitPort(nSpeed, nEvent, nBits, nStop)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user