Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ATP3011F4UART.cpp
00001 #include "ATP3011F4UART.h" 00002 00003 ATP3011F4UART::ATP3011F4UART(Serial *serial) : 00004 ch(serial) { 00005 ch->attach(this, &ATP3011F4UART::receiveChar); 00006 } 00007 00008 bool ATP3011F4UART::init() { 00009 // TODO: check response 00010 response_ready = false; 00011 ch->putc('?'); 00012 ch->putc('\r'); 00013 return true; 00014 } 00015 00016 bool ATP3011F4UART::send(const char* str) { 00017 ch->printf("%s", str); 00018 return true; 00019 } 00020 00021 bool ATP3011F4UART::sendr(const char* str) { 00022 if (!send(str)) return false; 00023 response_ready = false; 00024 ret[0] = '\0'; 00025 p_ret = ret; 00026 if (!send("\r")) return false; 00027 return true; 00028 } 00029 00030 void ATP3011F4UART::waitCompletion() { 00031 while(!response_ready) wait_ms(10); 00032 response_ready = false; 00033 } 00034 00035 void ATP3011F4UART::flush() { 00036 while (ch->readable()) ch->getc(); 00037 } 00038 00039 void ATP3011F4UART::receiveChar() { 00040 *p_ret = ch->getc(); 00041 if (*p_ret == '>') { 00042 *(++p_ret) = '\0'; 00043 p_ret = ret; 00044 response_ready = true; 00045 } else if (*p_ret == '*') { 00046 p_ret = ret; 00047 ret[0] = '*'; 00048 ret[1] = '\0'; 00049 } else { 00050 p_ret++; 00051 if (p_ret >= &ret[RET_CODE_LEN]) p_ret = ret; 00052 } 00053 }
Generated on Sun Sep 4 2022 00:14:28 by
