diff --git a/examples/Unit/LoRaWAN868/LoRaWAN868.ino b/examples/Unit/LoRaWAN868/LoRaWAN868.ino index 17fd698..52b3174 100644 --- a/examples/Unit/LoRaWAN868/LoRaWAN868.ino +++ b/examples/Unit/LoRaWAN868/LoRaWAN868.ino @@ -20,107 +20,107 @@ M5Canvas canvas(&display); String waitRevice() { - String recvStr; - do - { - recvStr = Serial2.readStringUntil('\n'); - } while (recvStr.length() == 0); - canvas.println(recvStr); - return recvStr; + String recvStr; + do + { + recvStr = Serial2.readStringUntil('\n'); + } while (recvStr.length() == 0); + canvas.println(recvStr); + return recvStr; } uint16_t ypos = 55; void drawLineStr(String str, uint16_t color) { - M5.Lcd.setTextColor(color); - M5.Lcd.drawString(str, 10, ypos, 4); - ypos += 32; + M5.Lcd.setTextColor(color); + M5.Lcd.drawString(str, 10, ypos, 4); + ypos += 32; } void sendATCMD(String cmdStr) { - Serial2.print(cmdStr); - delay(100); + Serial2.print(cmdStr); + delay(100); } int sendATCMDAndRevice(String cmdStr) { - Serial2.print(cmdStr); - delay(10); - waitRevice(); - String recvStr = waitRevice(); - if (recvStr.indexOf("OK") != -1) - { - return 0; - } - else - { - return -1; - } + Serial2.print(cmdStr); + delay(10); + waitRevice(); + String recvStr = waitRevice(); + if (recvStr.indexOf("OK") != -1) + { + return 0; + } + else + { + return -1; + } } void setup() { - M5.begin(); - Serial2.begin(115200, SERIAL_8N1, 16, 17); - Serial2.flush(); - delay(100); - display.begin(); - display.setTextSize(2); - canvas.setColorDepth(1); // mono color - canvas.createSprite(display.width(), display.height()); - canvas.setTextSize((float)canvas.width() / 160); - canvas.setTextScroll(true); + M5.begin(); + Serial2.begin(115200, SERIAL_8N1, 16, 17); + Serial2.flush(); + delay(100); + display.begin(); + display.setTextSize(2); + canvas.setColorDepth(1); // mono color + canvas.createSprite(display.width(), display.height()); + canvas.setTextSize((float)canvas.width() / 160); + canvas.setTextScroll(true); - sendATCMD("AT?\r"); - delay(100); - Serial2.flush(); - sendATCMDAndRevice("AT+ILOGLVL=0\r"); - sendATCMDAndRevice("AT+CSAVE\r"); - sendATCMDAndRevice("AT+IREBOOT=0\r"); - display.println("LoraWan Rebooting"); - delay(2000); - display.println("LoraWan config"); - sendATCMDAndRevice("AT+CJOINMODE=0\r"); - sendATCMDAndRevice("AT+CDEVEUI=00BB9DA5B97ADDF6\r"); - sendATCMDAndRevice("AT+CAPPEUI=70B3D57ED004247E\r");//70B3D57ED003B699 - sendATCMDAndRevice("AT+CAPPKEY=27DFE264CA33AC1957C005EB48BA4723\r"); - sendATCMDAndRevice("AT+CULDLMODE=2\r"); - sendATCMDAndRevice("AT+CCLASS=2\r"); - sendATCMDAndRevice("AT+CWORKMODE=2\r"); - sendATCMDAndRevice("AT+CNBTRIALS=0,5\r"); - sendATCMDAndRevice("AT+CNBTRIALS=1,5\r"); + sendATCMD("AT?\r"); + delay(100); + Serial2.flush(); + sendATCMDAndRevice("AT+ILOGLVL=0\r"); + sendATCMDAndRevice("AT+CSAVE\r"); + sendATCMDAndRevice("AT+IREBOOT=0\r"); + display.println("LoraWan Rebooting"); + delay(2000); + display.println("LoraWan config"); + sendATCMDAndRevice("AT+CJOINMODE=0\r"); + sendATCMDAndRevice("AT+CDEVEUI=00BB9DA5B97ADDF6\r"); + sendATCMDAndRevice("AT+CAPPEUI=70B3D57ED004247E\r");//70B3D57ED003B699 + sendATCMDAndRevice("AT+CAPPKEY=27DFE264CA33AC1957C005EB48BA4723\r"); + sendATCMDAndRevice("AT+CULDLMODE=2\r"); + sendATCMDAndRevice("AT+CCLASS=2\r"); + sendATCMDAndRevice("AT+CWORKMODE=2\r"); + sendATCMDAndRevice("AT+CNBTRIALS=0,5\r"); + sendATCMDAndRevice("AT+CNBTRIALS=1,5\r"); - // TX Freq - // 868.1 - SF7BW125 to SF12BW125 - // 868.3 - SF7BW125 to SF12BW125 and SF7BW250 - // 868.5 - SF7BW125 to SF12BW125 - // 867.1 - SF7BW125 to SF12BW125 - // 867.3 - SF7BW125 to SF12BW125 - // 867.5 - SF7BW125 to SF12BW125 - // 867.7 - SF7BW125 to SF12BW125 - // 867.9 - SF7BW125 to SF12BW125 - // 868.8 - FSK + // TX Freq + // 868.1 - SF7BW125 to SF12BW125 + // 868.3 - SF7BW125 to SF12BW125 and SF7BW250 + // 868.5 - SF7BW125 to SF12BW125 + // 867.1 - SF7BW125 to SF12BW125 + // 867.3 - SF7BW125 to SF12BW125 + // 867.5 - SF7BW125 to SF12BW125 + // 867.7 - SF7BW125 to SF12BW125 + // 867.9 - SF7BW125 to SF12BW125 + // 868.8 - FSK - sendATCMDAndRevice("AT+CFREQBANDMASK=0001\r"); + sendATCMDAndRevice("AT+CFREQBANDMASK=0001\r"); - //869.525 - SF9BW125 (RX2) | 869525000 - //sendATCMDAndRevice("AT+CRXP=0,0,869525000\r"); + //869.525 - SF9BW125 (RX2) | 869525000 + //sendATCMDAndRevice("AT+CRXP=0,0,869525000\r"); - sendATCMDAndRevice("AT+CSAVE\r"); - - sendATCMDAndRevice("AT+CJOIN=1,0,10,8\r"); + sendATCMDAndRevice("AT+CSAVE\r"); + + sendATCMDAndRevice("AT+CJOIN=1,0,10,8\r"); } enum systemstate { - kIdel = 0, - kJoined, - kSending, - kWaitSend, - kEnd, + kIdel = 0, + kJoined, + kSending, + kWaitSend, + kEnd, }; int system_fsm = kIdel; @@ -131,93 +131,93 @@ int loraWanupLinkReviceCNT = 0; void loop() { - String recvStr = waitRevice(); - if (recvStr.indexOf("+CJOIN:") != -1) + String recvStr = waitRevice(); + if (recvStr.indexOf("+CJOIN:") != -1) + { + if (recvStr.indexOf("OK") != -1) { - if (recvStr.indexOf("OK") != -1) - { - canvas.println("[ INFO ] JOIN IN SUCCESSFUL"); - system_fsm = kJoined; - } - else - { - canvas.println("[ INFO ] JOIN IN FAIL"); - system_fsm = kIdel; - } + canvas.println("[ INFO ] JOIN IN SUCCESSFUL"); + system_fsm = kJoined; } - else if (recvStr.indexOf("OK+RECV") != -1) + else { - if (system_fsm == kJoined) - { - system_fsm = kSending; - } - else if (system_fsm == kWaitSend) - { - system_fsm = kEnd; - char strbuff[128]; - loraWanupLinkReviceCNT ++; - - //if(( loraWanSendCNT < 5 )&&( loraWanSendNUM == 8 )) - //{ - // loraWanupLinkReviceCNT ++; - // sprintf(strbuff,"SEND CNT: %d (%d/%d)",loraWanSendCNT,loraWanupLinkReviceCNT,loraWanupLinkCNT); - // M5.Lcd.fillRect(0,183,320,32,TFT_BLACK); - // M5.Lcd.setTextColor(TFT_GREEN); - // M5.Lcd.drawString(strbuff, 10, 183, 4); - // //drawLineStr(strbuff, TFT_GREEN); - // - //} - //else - //{ - // sprintf(strbuff,"FAILD NUM:%d CNT:%d (%d/%d)",loraWanSendNUM,loraWanSendCNT,loraWanupLinkReviceCNT,loraWanupLinkCNT); - // M5.Lcd.fillRect(0,183,320,32,TFT_BLACK); - // M5.Lcd.setTextColor(TFT_RED); - // M5.Lcd.drawString(strbuff, 10, 183, 4); - // drawLineStr(strbuff, TFT_RED); - //} - delay(500); - system_fsm = kSending; - } + canvas.println("[ INFO ] JOIN IN FAIL"); + system_fsm = kIdel; } - else if(recvStr.indexOf("OK+SEND") != -1) + } + else if (recvStr.indexOf("OK+RECV") != -1) + { + if (system_fsm == kJoined) { - String snednum = recvStr.substring(8); - canvas.printf(" [ INFO ] SEND NUM %s \r\n",snednum.c_str()); - loraWanSendNUM = snednum.toInt(); - } - else if(recvStr.indexOf("OK+SENT") != -1) - { - String snedcnt = recvStr.substring(8); - canvas.printf(" [ INFO ] SEND CNT %s \r\n",snedcnt.c_str()); - loraWanSendCNT = snedcnt.toInt(); - } - else if(recvStr.indexOf("ERR+SENT") != -1) - { - char strbuff[128]; - String ErrorCodeStr = recvStr.substring(9); - sprintf(strbuff,"ERROR Code:%d (%d/%d)",ErrorCodeStr.toInt(),loraWanupLinkReviceCNT,loraWanupLinkCNT); - canvas.println(strbuff); - delay(500); - system_fsm = kSending; } - else if(recvStr.indexOf("+CLINKCHECK:") != -1) + else if (system_fsm == kWaitSend) { - String checkStr = recvStr.substring(String("+CLINKCHECK:").length()); - - char strbuff[128]; - sprintf(strbuff,"%s (%d/%d)",checkStr.c_str(),loraWanupLinkReviceCNT,loraWanupLinkCNT); - canvas.println(strbuff); + system_fsm = kEnd; + char strbuff[128]; + loraWanupLinkReviceCNT ++; + //if(( loraWanSendCNT < 5 )&&( loraWanSendNUM == 8 )) + //{ + // loraWanupLinkReviceCNT ++; + // sprintf(strbuff,"SEND CNT: %d (%d/%d)",loraWanSendCNT,loraWanupLinkReviceCNT,loraWanupLinkCNT); + // M5.Lcd.fillRect(0,183,320,32,TFT_BLACK); + // M5.Lcd.setTextColor(TFT_GREEN); + // M5.Lcd.drawString(strbuff, 10, 183, 4); + // //drawLineStr(strbuff, TFT_GREEN); + // + //} + //else + //{ + // sprintf(strbuff,"FAILD NUM:%d CNT:%d (%d/%d)",loraWanSendNUM,loraWanSendCNT,loraWanupLinkReviceCNT,loraWanupLinkCNT); + // M5.Lcd.fillRect(0,183,320,32,TFT_BLACK); + // M5.Lcd.setTextColor(TFT_RED); + // M5.Lcd.drawString(strbuff, 10, 183, 4); + // drawLineStr(strbuff, TFT_RED); + //} + delay(500); + system_fsm = kSending; } + } + else if(recvStr.indexOf("OK+SEND") != -1) + { + String snednum = recvStr.substring(8); + canvas.printf(" [ INFO ] SEND NUM %s \r\n",snednum.c_str()); + loraWanSendNUM = snednum.toInt(); + } + else if(recvStr.indexOf("OK+SENT") != -1) + { + String snedcnt = recvStr.substring(8); + canvas.printf(" [ INFO ] SEND CNT %s \r\n",snedcnt.c_str()); + loraWanSendCNT = snedcnt.toInt(); + } + else if(recvStr.indexOf("ERR+SENT") != -1) + { + char strbuff[128]; + String ErrorCodeStr = recvStr.substring(9); + sprintf(strbuff,"ERROR Code:%d (%d/%d)",ErrorCodeStr.toInt(),loraWanupLinkReviceCNT,loraWanupLinkCNT); + canvas.println(strbuff); + delay(500); - if (system_fsm == kSending) - { - canvas.println("LoraWan Sending"); - sendATCMD("AT+CLINKCHECK=1\r"); - loraWanupLinkCNT ++; - system_fsm = kWaitSend; - } - canvas.pushSprite(0, 0); - delay(10); -} \ No newline at end of file + system_fsm = kSending; + } + else if(recvStr.indexOf("+CLINKCHECK:") != -1) + { + String checkStr = recvStr.substring(String("+CLINKCHECK:").length()); + + char strbuff[128]; + sprintf(strbuff,"%s (%d/%d)",checkStr.c_str(),loraWanupLinkReviceCNT,loraWanupLinkCNT); + canvas.println(strbuff); + + } + + if (system_fsm == kSending) + { + canvas.println("LoraWan Sending"); + sendATCMD("AT+CLINKCHECK=1\r"); + loraWanupLinkCNT ++; + system_fsm = kWaitSend; + } + canvas.pushSprite(0, 0); + delay(10); +} \ No newline at end of file diff --git a/examples/Unit/TRACE/TRACE.ino b/examples/Unit/TRACE/TRACE.ino index 3688d8f..244f9ad 100644 --- a/examples/Unit/TRACE/TRACE.ino +++ b/examples/Unit/TRACE/TRACE.ino @@ -1,5 +1,16 @@ /* - Description: Read the status of the four line-tracking sensors of TRACE Unit and output them through UART. +******************************************************************************* +* Copyright (c) 2021 by M5Stack +* Equipped with M5Core sample source code +* 配套 M5Core 示例源代码 +* Visit the website for more information:https://docs.m5stack.com/en/unit/trace +* 获取更多资料请访问:https://docs.m5stack.com/zh_CN/unit/trace +* +* describe: TRACE. +* date:2021/9/1 +******************************************************************************* + Please connect to PORT-A, Read the status of the four line-tracking sensors of TRACE Unit and output them through UART. + 请连接端口A,读取TRACE Unit四个线跟踪传感器的状态,并通过UART输出。 */ #include @@ -9,44 +20,44 @@ uint8_t value; int SensorArray[4] = {0}; -void setup() { - m5.begin(); - M5.Power.begin(); +void SensorStatus(void){ + Wire.beginTransmission(0x5a); //The data transfer to 0x5A begins. 开始向0x5a传输数据 + Wire.write(0x00); + Wire.endTransmission(); //End the data transmission.结束数据传输 + Wire.requestFrom(0x5a,1); //Request a byte from 0x5a. 向0x5a请求一个字节 + while(Wire.available()){ //If data is received. 如果数据被接收到 + value = Wire.read(); + } + M5.Lcd.print(" value = "); + M5.Lcd.println(value, HEX); +#ifdef VALUE_SPLIT + SensorArray[3] = (value&0x08)>>3; + SensorArray[2] = (value&0x04)>>2; + SensorArray[1] = (value&0x02)>>1; + SensorArray[0] = (value&0x01)>>0; + M5.Lcd.println(" After splitting... "); + M5.Lcd.print(" SensorArray[0] = "); M5.Lcd.println(SensorArray[0]); + M5.Lcd.print(" SensorArray[1] = "); M5.Lcd.println(SensorArray[1]); + M5.Lcd.print(" SensorArray[2] = "); M5.Lcd.println(SensorArray[2]); + M5.Lcd.print(" SensorArray[3] = "); M5.Lcd.println(SensorArray[3]); +#endif +} - Serial.begin(115200); - Wire.begin(); - M5.Lcd.clear(BLACK); - M5.Lcd.setTextColor(YELLOW); - M5.Lcd.setTextSize(2); - M5.Lcd.setCursor(80, 0); - M5.Lcd.println("TRACE example"); - M5.Lcd.setTextColor(WHITE); +void setup() { + M5.begin(); + M5.Power.begin(); + + Wire.begin(); + M5.Lcd.setTextColor(YELLOW); + M5.Lcd.setTextSize(2); + M5.Lcd.setCursor(80, 0); + M5.Lcd.println("TRACE example"); + M5.Lcd.setTextColor(WHITE); } void loop(){ - SensorStatus(); - delay(100); -} - -void SensorStatus(void){ - Wire.beginTransmission(0x5a); - Wire.write(0x00); - Wire.endTransmission(); - Wire.requestFrom(0x5a,1); - while(Wire.available()){ - value = Wire.read(); - } - Serial.print(" value = ");Serial.println(value, HEX); -#ifdef VALUE_SPLIT - SensorArray[3] = (value&0x08)>>3; - SensorArray[2] = (value&0x04)>>2; - SensorArray[1] = (value&0x02)>>1; - SensorArray[0] = (value&0x01)>>0; - Serial.println("After splitting... "); - Serial.print("SensorArray[0] = ");Serial.print(SensorArray[0]); - Serial.print(" SensorArray[1] = ");Serial.print(SensorArray[1]); - Serial.print(" SensorArray[2] = ");Serial.print(SensorArray[2]); - Serial.print(" SensorArray[3] = ");Serial.print(SensorArray[3]); - Serial.println(); -#endif -} + M5.Lcd.fillRect(0,20,320,180,BLACK); + M5.Lcd.setCursor(100,70); + SensorStatus(); + delay(100); +} \ No newline at end of file diff --git a/examples/Unit/UHF_RFID_JRD4035/RFID_command.cpp b/examples/Unit/UHF_RFID_JRD4035/RFID_command.cpp index a8e9ea6..5783893 100644 --- a/examples/Unit/UHF_RFID_JRD4035/RFID_command.cpp +++ b/examples/Unit/UHF_RFID_JRD4035/RFID_command.cpp @@ -1,4 +1,4 @@ -#include +#include #include "RFID_command.h" #include diff --git a/examples/Unit/UHF_RFID_JRD4035/RFID_command_basics.cpp b/examples/Unit/UHF_RFID_JRD4035/RFID_command_basics.cpp index b287acd..d6b9ddc 100644 --- a/examples/Unit/UHF_RFID_JRD4035/RFID_command_basics.cpp +++ b/examples/Unit/UHF_RFID_JRD4035/RFID_command_basics.cpp @@ -1,4 +1,4 @@ -#include +#include #include "RFID_command.h" #include diff --git a/examples/Unit/UHF_RFID_JRD4035/TFTTerminal.cpp b/examples/Unit/UHF_RFID_JRD4035/TFTTerminal.cpp deleted file mode 100644 index c5604e9..0000000 --- a/examples/Unit/UHF_RFID_JRD4035/TFTTerminal.cpp +++ /dev/null @@ -1,162 +0,0 @@ -#include "TFTTerminal.h" - -TFTTerminal::TFTTerminal(TFT_eSprite *dis_buff_ptr) -{ - _dis_buff_ptr = dis_buff_ptr; - memset(discharbuff, 0, 55 * 60); -} - -TFTTerminal::~TFTTerminal() -{ - -} - - -void TFTTerminal::setcolor( uint16_t color, uint16_t bk_color ) -{ - _color = color; - _bkcolor = bk_color; -} - -void TFTTerminal::setGeometry(uint16_t x, uint16_t y, uint16_t w, uint16_t h ) -{ - _win_x_pos = x; - _win_y_pos = y; - _win_w = w; - _win_h = h; - - _line_x_limit = _win_w / _font_x_size; - _line_y_limit = _win_h / _font_y_size; -} - -void TFTTerminal::setFontsize(uint8_t size) -{ - size = ( size == 0 ) ? 1 : size; - _font_x_size = 5 * size ; - _font_y_size = 6 * size ; - _fontSize = size; - - _line_x_limit = _win_w / _font_x_size; - _line_y_limit = _win_h / _font_y_size; -} - -size_t TFTTerminal::write(uint8_t chardata) -{ - - bool flush_page_flag = false; - uint8_t dis_y_pos = 0; - - if ((chardata == '\r') || (chardata == '\n')) - { - xpos = 0; - ypos++; - ypos = ypos % 60; - memset(discharbuff[ypos % 60], 0, 55); - return 1; - } - else if(xpos >= _line_x_limit) - { - xpos = 0; - ypos++; - ypos = ypos % 60; - memset(discharbuff[ypos % 60], 0, 55); - } - - discharbuff[ypos][xpos] = chardata; - xpos++; - - if ((dispos <= ypos) && ((ypos - dispos) > _line_y_limit)) - { - dispos = ypos - _line_y_limit; - flush_page_flag = true; - } - else if ((dispos <= ypos) && ((ypos - dispos) <= _line_y_limit)) - { - dis_y_pos = ypos - dispos; - flush_page_flag = false; - } - else if ((dispos > ypos) && ((60 - (dispos - ypos)) > _line_y_limit)) - { - dispos = 60 - ( _line_y_limit - ypos ); - flush_page_flag = true; - } - else if ((dispos > ypos) && ((60 - (dispos - ypos)) > _line_y_limit)) - { - dis_y_pos = 60 - ( dispos - ypos ); - flush_page_flag = false; - } - - dispos = dispos % 60; - - _dis_buff_ptr->setTextColor(_color); - _dis_buff_ptr->setTextSize(_fontSize); - - if( flush_page_flag ) - { - _dis_buff_ptr->fillSprite(_bkcolor); - - for (size_t i = 0; i < _line_y_limit; i++) - { - _dis_buff_ptr->drawString((char *)discharbuff[(dispos + i) % 60], 0, i * _font_y_size); - } - } - else - { - _dis_buff_ptr->drawChar(chardata, ( xpos - 1 ) * _font_x_size, dis_y_pos * _font_y_size ); - } - _dis_buff_ptr->pushSprite(_win_x_pos, _win_y_pos); - - return 1; - -} - -size_t TFTTerminal::write(const uint8_t *buffer, size_t size) -{ - - while ((size != 0) && (*buffer != '\0')) - { - if ((*buffer == '\r') || (*buffer == '\n')) - { - xpos = 0; - ypos++; - ypos = ypos % 60; - memset(discharbuff[ypos % 60], 0, 55); - buffer++; - size--; - continue; - } - else if(xpos >= _line_x_limit) - { - xpos = 0; - ypos++; - ypos = ypos % 60; - memset(discharbuff[ypos % 60], 0, 55); - } - discharbuff[ypos][xpos] = *buffer; - xpos++; - buffer++; - size--; - } - - if ((dispos <= ypos) && ((ypos - dispos) > _line_y_limit)) - { - dispos = ypos - _line_y_limit; - } - else if ((dispos > ypos) && ((60 - (dispos - ypos)) > _line_y_limit)) - { - dispos = 60- ( _line_y_limit - ypos ); - } - - dispos = dispos % 60; - - _dis_buff_ptr->setTextColor(_color); - _dis_buff_ptr->setTextSize(_fontSize); - _dis_buff_ptr->fillSprite(_bkcolor); - //_dis_buff_ptr->fillRect(_win_x_pos, _win_y_pos, _win_w, _win_h, _bkcolor); - for (size_t i = 0; i < _line_y_limit; i++) - { - _dis_buff_ptr->drawString((char *)discharbuff[(dispos + i) % 60], 0, i * _font_y_size); - } - _dis_buff_ptr->pushSprite(_win_x_pos, _win_y_pos); - return 1; -} diff --git a/examples/Unit/UHF_RFID_JRD4035/TFTTerminal.h b/examples/Unit/UHF_RFID_JRD4035/TFTTerminal.h deleted file mode 100644 index bc16b6e..0000000 --- a/examples/Unit/UHF_RFID_JRD4035/TFTTerminal.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _TFTTERMINAL_H_ -#define _TFTTERMINAL_H_ - -#include -#include - -class TFTTerminal : public Print -{ -private: - TFT_eSprite *disptr; - char discharbuff[60][55]; - uint32_t xpos = 0,ypos = 0, dispos = 0; - TFT_eSprite* _dis_buff_ptr = NULL; - uint16_t _bkcolor = TFT_BLACK; - uint16_t _color = TFT_GREEN; - - uint16_t _win_x_pos = 0,_win_y_pos = 0,_win_w = 320,_win_h = 240; - uint16_t _font_x_size = 6,_font_y_size = 8; - uint8_t _fontSize = 0; - uint16_t _line_x_limit = 53,_line_y_limit = 30; - -public: - TFTTerminal(TFT_eSprite *dis_buff_ptr); - ~TFTTerminal(); - - void setcolor( uint16_t color, uint16_t bk_color ); - void setGeometry(uint16_t x, uint16_t y, uint16_t w, uint16_t h ); - void setFontsize(uint8_t size); - - size_t write(uint8_t) ; - size_t write(const uint8_t *buffer, size_t size); -}; - - -#endif diff --git a/examples/Unit/UHF_RFID_JRD4035/UHF_RFID_JRD4035.ino b/examples/Unit/UHF_RFID_JRD4035/UHF_RFID_JRD4035.ino index 95788ce..6e00474 100644 --- a/examples/Unit/UHF_RFID_JRD4035/UHF_RFID_JRD4035.ino +++ b/examples/Unit/UHF_RFID_JRD4035/UHF_RFID_JRD4035.ino @@ -7,21 +7,18 @@ * 获取更多资料请访问:https://docs.m5stack.com/zh_CN/unit/uhf_rfid * * describe: uhf_rfid. -* date:2021/8/30 +* date:2021/9/1 ******************************************************************************* - Please connect to PORT-B,Press buttonA or buttonB to Send message if received message, screen will display - 请连接端口B,按钮A或按钮B发送消息,如果收到消息,屏幕将显示 */ #include #include "RFID_command.h" +#include -#include "TFTTerminal.h" -TFT_eSprite TerminalBuff = TFT_eSprite(&M5.Lcd); -TFTTerminal terminal(&TerminalBuff); +M5GFX display; +M5Canvas canvas(&display); UHF_RFID RFID; - String comd = " "; CardpropertiesInfo card; ManyInfo cards; @@ -35,16 +32,18 @@ TestInfo Test; void setup() { M5.begin(); + display.begin(); + display.setTextSize(2); + canvas.setColorDepth(1); // mono color + canvas.createSprite(display.width(), display.height()); + canvas.setTextSize((float)canvas.width() / 160); + canvas.setTextScroll(true); RFID._debug = 0; Serial2.begin(115200, SERIAL_8N1, 16, 17);//16.17 if (RFID._debug == 1)Serial.begin(115200, SERIAL_8N1, 21, 22); M5.Lcd.fillRect(0, 0, 340, 280, BLACK); - TerminalBuff.createSprite(280,200); - terminal.setGeometry(20,30,300,200); - terminal.setFontsize(1); - // UHF_RFID set UHF_RFID设置 RFID.Set_transmission_Power(2600); RFID.Set_the_Select_mode(); @@ -53,7 +52,7 @@ void setup() RFID.clean_data(); // Prompted to connect to UHF_RFID 提示连接UHF_RFID - terminal.println("Please connect UHF_RFID to Port C"); + display.println("Please connect UHF_RFID to Port C"); // Determined whether to connect to UHF_RFID 判断是否连接UHF_RFID String soft_version; @@ -69,7 +68,7 @@ void setup() } // The prompt will be RFID card close 提示将RFID卡靠近 - terminal.println("Please approach the RFID card you need to use"); + display.println("Please approach the RFID card you need to use"); } @@ -83,62 +82,58 @@ void loop() // A read/write operation specifies a particular card 读写操作需指定某一张卡 // comd = RFID.Set_the_select_parameter_directive("30751FEB705C5904E3D50D70"); -// terminal.println(comd); +// canvas.println(comd); // RFID.clean_data(); /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Query the card information once 查询一次卡的信息例子 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ card = RFID.A_single_poll_of_instructions(); - if (card._ERROR.length() != 0) - { - Serial.print(card._ERROR); - } - else - { - if(card._EPC.length() == 24) - { - terminal.println("RSSI :" + card._RSSI); - terminal.println("PC :" + card._PC); - terminal.println("EPC :" + card._EPC); - terminal.println("CRC :" + card._CRC); - terminal.println(" "); - } - } - RFID.clean_data(); //Empty the data after using it 使用完数据后要将数据清空 - + if (card._ERROR.length() != 0){ + Serial.println(card._ERROR); + }else{ + if(card._EPC.length() == 24){ + canvas.println("RSSI :" + card._RSSI); + canvas.println("PC :" + card._PC); + canvas.println("EPC :" + card._EPC); + canvas.println("CRC :" + card._CRC); + canvas.println(" "); + } + } + RFID.clean_data(); //Empty the data after using it 使用完数据后要将数据清空 + /*Other feature usage examples 其他功能使用例子*/ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Read multiple RFID cards at once 一次读取多张RFID卡 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ -// cards = RFID.Multiple_polling_instructions(6); -// for (size_t i = 0; i < cards.len; i++) -// { -// if(cards.card[i]._EPC.length() == 24) -// { -// terminal.println("RSSI :" + cards.card[i]._RSSI); -// terminal.println("PC :" + cards.card[i]._PC); -// terminal.println("EPC :" + cards.card[i]._EPC); -// terminal.println("CRC :" + cards.card[i]._CRC); -// } -// } -// terminal.println(" "); -// RFID.clean_data(); - +/* cards = RFID.Multiple_polling_instructions(6); + for (size_t i = 0; i < cards.len; i++) + { + if(cards.card[i]._EPC.length() == 24) + { + canvas.println("RSSI :" + cards.card[i]._RSSI); + canvas.println("PC :" + cards.card[i]._PC); + canvas.println("EPC :" + cards.card[i]._EPC); + canvas.println("CRC :" + cards.card[i]._CRC); + } + } + canvas.println(" "); + RFID.clean_data(); + */ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Used to get the SELECT parameter 用于获取Select参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ // Select = RFID.Get_the_select_parameter(); // if(Select.Mask.length() != 0) // { -// terminal.println("Mask :" + Select.Mask); -// terminal.println("SelParam :" + Select.SelParam); -// terminal.println("Ptr :" + Select.Ptr); -// terminal.println("MaskLen :" + Select.MaskLen); -// terminal.println("Truncate :" + Select.Truncate); -// terminal.println(" "); +// canvas.println("Mask :" + Select.Mask); +// canvas.println("SelParam :" + Select.SelParam); +// canvas.println("Ptr :" + Select.Ptr); +// canvas.println("MaskLen :" + Select.MaskLen); +// canvas.println("Truncate :" + Select.Truncate); +// canvas.println(" "); // } // RFID.clean_data(); @@ -148,15 +143,15 @@ void loop() // Cardinformation = RFID.NXP_Change_EAS(0x00000000); // if(Cardinformation._UL.length() != 0) // { -// terminal.println("UL :" + Cardinformation._UL); -// terminal.println("PC :" + Cardinformation._PC); -// terminal.println("EPC :" + Cardinformation._EPC); -// terminal.println("Parameter :" + Cardinformation._Parameter); -// terminal.println("ErrorCode :" + Cardinformation._ErrorCode); -// terminal.println("Error :" + Cardinformation._Error); -// terminal.println("Data :" + Cardinformation._Data); -// terminal.println("Successful :" + Cardinformation._Successful); -// terminal.println(" "); +// canvas.println("UL :" + Cardinformation._UL); +// canvas.println("PC :" + Cardinformation._PC); +// canvas.println("EPC :" + Cardinformation._EPC); +// canvas.println("Parameter :" + Cardinformation._Parameter); +// canvas.println("ErrorCode :" + Cardinformation._ErrorCode); +// canvas.println("Error :" + Cardinformation._Error); +// canvas.println("Data :" + Cardinformation._Data); +// canvas.println("Successful :" + Cardinformation._Successful); +// canvas.println(" "); // } // RFID.clean_data(); @@ -167,15 +162,15 @@ void loop() // Query = RFID.Get_the_Query_parameter(); // if(Query.QueryParameter.length() != 0) // { -// terminal.println("QueryParameter :" + Query.QueryParameter); -// terminal.println("DR :" + Query.DR); -// terminal.println("M :" + Query.M); -// terminal.println("TRext :" + Query.TRext); -// terminal.println("Sel :" + Query.Sel); -// terminal.println("Session :" + Query.Session); -// terminal.println("Targetta :" + Query.Target); -// terminal.println("Q :" + Query.Q); -// terminal.println(" "); +// canvas.println("QueryParameter :" + Query.QueryParameter); +// canvas.println("DR :" + Query.DR); +// canvas.println("M :" + Query.M); +// canvas.println("TRext :" + Query.TRext); +// canvas.println("Sel :" + Query.Sel); +// canvas.println("Session :" + Query.Session); +// canvas.println("Targetta :" + Query.Target); +// canvas.println("Q :" + Query.Q); +// canvas.println(" "); // } // RFID.clean_data(); @@ -186,10 +181,10 @@ void loop() // Read = RFID.Read_receive_demodulator_parameters(); // if(Read.Mixer_G.length()!= 0) // { -// terminal.println("Mixer_G :" + Read.Mixer_G); -// terminal.println("IF_G :" + Read.IF_G); -// terminal.println("Thrd :" + Read.Thrd); -// terminal.println(" "); +// canvas.println("Mixer_G :" + Read.Mixer_G); +// canvas.println("IF_G :" + Read.IF_G); +// canvas.println("Thrd :" + Read.Thrd); +// canvas.println(" "); // } // RFID.clean_data(); }