@@ -721,386 +721,9 @@ The `SERIAL_TX_BUFFER_SIZE` and `SERIAL_RX_BUFFER_SIZE` are already redefined to
721721
722722#### Example [ TCPServer] ( examples/TCPServer )
723723
724- Please take a look at other examples, as well.
724+ https://github.com/khoih-prog/ESP_AT_Lib/blob/df278b2ef5ee1c39fc99ce8bde6721cb2409009a/ examples/TCPServer/TCPServer.ino#L31-L407
725725
726726
727- ``` cpp
728- /* Comment this out to disable prints and save space */
729- #define ESP_AT_DEBUG_OUTPUT Serial
730-
731- #define _ESP_AT_LOGLEVEL_ 4
732-
733- // Uncomment to use ESP32-AT commands
734- // #define USE_ESP32_AT true
735-
736- #if ( defined(NRF52840_FEATHER) || defined(NRF52832_FEATHER) || defined(NRF52_SERIES) || defined(ARDUINO_NRF52_ADAFRUIT) || \
737- defined(NRF52840_FEATHER_SENSE) || defined(NRF52840_ITSYBITSY) || defined(NRF52840_CIRCUITPLAY) || defined(NRF52840_CLUE) || \
738- defined(NRF52840_METRO) || defined(NRF52840_PCA10056) || defined(PARTICLE_XENON) || defined(NINA_B302_ublox) || defined(NINA_B112_ublox) )
739- #if defined(ESP_AT_USE_NRF528XX)
740- #undef ESP_AT_USE_NRF528XX
741- #endif
742- #define ESP_AT_USE_NRF528XX true
743- #endif
744-
745- #if ( defined(ARDUINO_SAMD_ZERO) || defined(ARDUINO_SAMD_MKR1000) || defined(ARDUINO_SAMD_MKRWIFI1010) \
746- || defined(ARDUINO_SAMD_NANO_33_IOT) || defined(ARDUINO_SAMD_MKRFox1200) || defined(ARDUINO_SAMD_MKRWAN1300) \
747- || defined(ARDUINO_SAMD_MKRWAN1310) || defined(ARDUINO_SAMD_MKRGSM1400) || defined(ARDUINO_SAMD_MKRNB1500) \
748- || defined(ARDUINO_SAMD_MKRVIDOR4000) || defined(__ SAMD21G18A__ ) || defined(ARDUINO_SAMD_CIRCUITPLAYGROUND_EXPRESS) \
749- || defined(__ SAMD51__ ) || defined(__ SAMD51J20A__ ) || defined(__ SAMD51J19A__ ) || defined(__ SAMD51G19A__ ) )
750- #if defined(ESP_AT_USE_SAMD)
751- #undef ESP_AT_USE_SAMD
752- #endif
753- #define ESP_AT_USE_SAMD true
754- #endif
755-
756- #if ( defined(ARDUINO_AVR_ADK) || defined(ARDUINO_AVR_MEGA) || defined(ARDUINO_AVR_MEGA2560) )
757- #if defined(ESP_AT_USE_AVR)
758- #undef ESP_AT_USE_AVR
759- #endif
760- #define ESP_AT_USE_AVR true
761- #endif
762-
763- #if ( defined(ARDUINO_SAM_DUE) || defined(__SAM3X8E__) )
764- #if defined(ESP_AT_USE_SAM_DUE)
765- #undef ESP_AT_USE_SAM_DUE
766- #endif
767- #define ESP_AT_USE_SAM_DUE true
768- #endif
769-
770- #if ( defined(CORE_TEENSY) && !( defined(__MKL26Z64__) || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U4__) ) )
771- #if defined(ESP_AT_USE_TEENSY)
772- #undef ESP_AT_USE_TEENSY
773- #endif
774- #define ESP_AT_USE_TEENSY true
775- #endif
776-
777- #if ( defined(STM32F0) || defined(STM32F1) || defined(STM32F2) || defined(STM32F3) ||defined(STM32F4) || defined(STM32F7) )
778- #if defined(ESP_AT_USE_STM32)
779- #undef ESP_AT_USE_STM32
780- #endif
781- #define ESP_AT_USE_STM32 true
782- #endif
783-
784- #if (ESP_AT_USE_NRF528XX)
785-
786- #if defined(NRF52840_FEATHER)
787- #define BOARD_TYPE "NRF52840_FEATHER_EXPRESS"
788- #elif defined(NRF52832_FEATHER)
789- #define BOARD_TYPE "NRF52832_FEATHER"
790- #elif defined(NRF52840_FEATHER_SENSE)
791- #define BOARD_TYPE "NRF52840_FEATHER_SENSE"
792- #elif defined(NRF52840_ITSYBITSY)
793- #define BOARD_TYPE "NRF52840_ITSYBITSY_EXPRESS"
794- #elif defined(NRF52840_CIRCUITPLAY)
795- #define BOARD_TYPE "NRF52840_CIRCUIT_PLAYGROUND"
796- #elif defined(NRF52840_CLUE)
797- #define BOARD_TYPE "NRF52840_CLUE"
798- #elif defined(NRF52840_METRO)
799- #define BOARD_TYPE "NRF52840_METRO_EXPRESS"
800- #elif defined(NRF52840_PCA10056)
801- #define BOARD_TYPE "NORDIC_NRF52840DK"
802- #elif defined(NINA_B302_ublox)
803- #define BOARD_TYPE "NINA_B302_ublox"
804- #elif defined(NINA_B112_ublox)
805- #define BOARD_TYPE "NINA_B112_ublox"
806- #elif defined(PARTICLE_XENON)
807- #define BOARD_TYPE "PARTICLE_XENON"
808- #elif defined(MDBT50Q_RX)
809- #define BOARD_TYPE "RAYTAC_MDBT50Q_RX"
810- #elif defined(ARDUINO_NRF52_ADAFRUIT)
811- #define BOARD_TYPE "ARDUINO_NRF52_ADAFRUIT"
812- #else
813- #define BOARD_TYPE "nRF52 Unknown"
814- #endif
815-
816- #define EspSerial Serial1
817-
818- #elif defined(ESP_AT_USE_SAMD)
819- #if defined(ARDUINO_SAMD_ZERO)
820- #define BOARD_TYPE "SAMD Zero"
821- #elif defined(ARDUINO_SAMD_MKR1000)
822- #define BOARD_TYPE "SAMD MKR1000"
823- #elif defined(ARDUINO_SAMD_MKRWIFI1010)
824- #define BOARD_TYPE "SAMD MKRWIFI1010"
825- #elif defined(ARDUINO_SAMD_NANO_33_IOT)
826- #define BOARD_TYPE "SAMD NANO_33_IOT"
827- #elif defined(ARDUINO_SAMD_MKRFox1200)
828- #define BOARD_TYPE "SAMD MKRFox1200"
829- #elif ( defined(ARDUINO_SAMD_MKRWAN1300) || defined(ARDUINO_SAMD_MKRWAN1310) )
830- #define BOARD_TYPE "SAMD MKRWAN13X0"
831- #elif defined(ARDUINO_SAMD_MKRGSM1400)
832- #define BOARD_TYPE "SAMD MKRGSM1400"
833- #elif defined(ARDUINO_SAMD_MKRNB1500)
834- #define BOARD_TYPE "SAMD MKRNB1500"
835- #elif defined(ARDUINO_SAMD_MKRVIDOR4000)
836- #define BOARD_TYPE "SAMD MKRVIDOR4000"
837- #elif defined(ARDUINO_SAMD_CIRCUITPLAYGROUND_EXPRESS)
838- #define BOARD_TYPE "SAMD ARDUINO_SAMD_CIRCUITPLAYGROUND_EXPRESS"
839- #elif defined(__ SAMD21G18A__ )
840- #define BOARD_TYPE "SAMD21G18A"
841- #elif defined(__ SAMD51G19A__ )
842- #define BOARD_TYPE "SAMD51G19"
843- #elif defined(__ SAMD51J19A__ )
844- #define BOARD_TYPE "SAMD51J19A"
845- #elif defined(__ SAMD51J20A__ )
846- #define BOARD_TYPE "SAMD51J20A"
847- #elif defined(__ SAMD51__ )
848- #define BOARD_TYPE "SAMD51"
849- #else
850- #define BOARD_TYPE "SAMD Unknown"
851- #endif
852-
853- #define EspSerial Serial1
854-
855- #elif defined(ESP_AT_USE_SAM_DUE)
856- #if ( defined(ARDUINO_SAM_DUE) || (__SAM3X8E__) )
857- #define BOARD_TYPE "SAM DUE"
858- #else
859- #define BOARD_TYPE "SAM Unknown"
860- #endif
861-
862- #define EspSerial Serial1
863-
864- #elif ( defined(CORE_TEENSY) )
865- // For Teensy 4.0
866- #if defined(__IMXRT1062__)
867- // For Teensy 4.1/4.0
868- #if defined(ARDUINO_TEENSY41)
869- #define BOARD_TYPE "TEENSY 4.1"
870- // Use true for NativeEthernet Library, false if using other Ethernet libraries
871- #define USE_NATIVE_ETHERNET true
872- #elif defined(ARDUINO_TEENSY40)
873- #define BOARD_TYPE "TEENSY 4.0"
874- #else
875- #define BOARD_TYPE "TEENSY 4.x"
876- #endif
877- #elif defined(__MK66FX1M0__)
878- #define BOARD_TYPE "Teensy 3.6"
879- #elif defined(__MK64FX512__)
880- #define BOARD_TYPE "Teensy 3.5"
881- #elif defined(__MK20DX256__)
882- #define BOARD_TYPE "Teensy 3.2/3.1"
883- #elif defined(__MK20DX128__)
884- #define BOARD_TYPE "Teensy 3.0"
885- #elif ( defined(__MKL26Z64__) || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U4__) )
886- #error "Teensy LC, 2.0++ and 2.0 not supported"
887- #else
888- #define BOARD_TYPE "Teensy Unknown"
889- #endif
890-
891- #define EspSerial Serial1
892-
893- #elif ESP_AT_USE_STM32
894-
895- #if defined(STM32F0)
896- #define BOARD_TYPE "STM32F0"
897- #error Board STM32F0 not supported
898- #elif defined(STM32F1)
899- #define BOARD_TYPE "STM32F1"
900- #elif defined(STM32F2)
901- #define BOARD_TYPE "STM32F2"
902- #elif defined(STM32F3)
903- #define BOARD_TYPE "STM32F3"
904- #elif defined(STM32F4)
905- #define BOARD_TYPE "STM32F4"
906- #elif defined(STM32F7)
907- #define BOARD_TYPE "STM32F7"
908- #else
909- #warning STM32 unknown board selected
910- #define BOARD_TYPE "STM32 Unknown"
911- #endif
912-
913- // For STM32, you have to declare and enable coreresponding Serial Port somewhere else before using it
914- #define EspSerial Serial1
915-
916- #elif defined(BOARD_SIPEED_MAIX_DUINO)
917-
918- #warning SIPEED_MAIX_DUINO board selected
919- #define BOARD_TYPE "BOARD_SIPEED_MAIX_DUINO"
920-
921- #define EspSerial Serial1
922-
923- #elif ( defined(ARDUINO_NANO_RP2040_CONNECT) || defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_RASPBERRY_PI_PICO) || \
924- defined (ARDUINO_GENERIC_RP2040) || defined(ARDUINO_ADAFRUIT_FEATHER_RP2040) )
925-
926- #warning RASPBERRY_PI_PICO board selected
927-
928- #if defined(ARDUINO_ARCH_MBED)
929-
930- #if defined(BOARD_NAME)
931- #undef BOARD_NAME
932- #endif
933-
934- #if defined(ARDUINO_RASPBERRY_PI_PICO)
935- #define BOARD_TYPE "MBED RASPBERRY_PI_PICO"
936- #elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040)
937- #define BOARD_TYPE "MBED DAFRUIT_FEATHER_RP2040"
938- #elif defined(ARDUINO_GENERIC_RP2040)
939- #define BOARD_TYPE "MBED GENERIC_RP2040"
940- #elif defined(ARDUINO_NANO_RP2040_CONNECT)
941- #define BOARD_NAME "MBED NANO_RP2040_CONNECT"
942- #else
943- #define BOARD_TYPE "MBED Unknown RP2040"
944- #endif
945- #else
946- #define BOARD_TYPE "RASPBERRY_PI_PICO"
947- #endif
948-
949- #define EspSerial Serial1
950-
951- #elif (ESP_AT_USE_AVR)
952-
953- #if defined(ARDUINO_AVR_MEGA2560)
954- #define BOARD_TYPE "AVR Mega2560"
955- #elif defined(ARDUINO_AVR_MEGA)
956- #define BOARD_TYPE "AVR Mega"
957- #else
958- #define BOARD_TYPE "AVR ADK"
959- #endif
960-
961- // For Mega, use Serial1 or Serial3
962- #define EspSerial Serial3
963-
964- #else
965- #error Unknown or unsupported Board. Please check your Tools->Board setting.
966-
967- #endif //ESP_AT_USE_NRF528XX
968-
969- #ifndef BOARD_NAME
970- #define BOARD_NAME BOARD_TYPE
971- #endif
972-
973- #include "ESP_AT_Lib.h"
974-
975- #define SSID "SSID"
976- #define PASSWORD "password"
977-
978- ESP8266 wifi(&EspSerial);
979-
980- // Your board <-> ESP_AT baud rate:
981- #define ESP_AT_BAUD 115200
982-
983- void setup(void)
984- {
985- Serial.begin(115200);
986- while (!Serial);
987-
988- delay(1000);
989-
990- #if defined(BOARD_NAME)
991- Serial.println("\nStart TCPServer on " + String(BOARD_NAME));
992- #else
993- Serial.println("\nStart TCPServer");
994- #endif
995-
996- // initialize serial for ESP module
997- EspSerial.begin(ESP_AT_BAUD);
998-
999- Serial.print("FW Version:");
1000- Serial.println(wifi.getVersion().c_str());
1001-
1002- if (wifi.setOprToStationSoftAP())
1003- {
1004- Serial.println("Set AP/STA Mode OK");
1005- }
1006- else
1007- {
1008- Serial.println("Set AP/STA Mode failed");
1009- }
1010-
1011- if (wifi.joinAP(SSID, PASSWORD))
1012- {
1013- Serial.println("Connect to WiFi OK");
1014- Serial.print("IP: ");
1015- Serial.println(wifi.getLocalIP().c_str());
1016- }
1017- else
1018- {
1019- Serial.println("Connect to WiFi failed");
1020- }
1021-
1022- if (wifi.enableMUX())
1023- {
1024- Serial.println("enableMUX OK");
1025- }
1026- else
1027- {
1028- Serial.println("enableMUX failed");
1029- }
1030-
1031- if (wifi.startTCPServer(8090))
1032- {
1033- Serial.println("Start TCP server OK");
1034- }
1035- else
1036- {
1037- Serial.println("start TCP server failed");
1038- }
1039-
1040- if (wifi.setTCPServerTimeout(10))
1041- {
1042- Serial.println("Set TCP server timeout 10 seconds");
1043- }
1044- else
1045- {
1046- Serial.println("Set TCP server timeout failed");
1047- }
1048-
1049- Serial.println("Done");
1050- }
1051-
1052- void loop(void)
1053- {
1054- uint8_t buffer[ 128] = {0};
1055- uint8_t mux_id;
1056-
1057- uint32_t len = wifi.recv(&mux_id, buffer, sizeof(buffer), 100);
1058-
1059- if (len > 0)
1060- {
1061- Serial.print("Status:[ ");
1062- Serial.print(wifi.getIPStatus().c_str());
1063- Serial.println("] ");
1064-
1065- Serial.print("Received from :");
1066- Serial.println(mux_id);
1067- Serial.print("[");
1068-
1069- for (uint32_t i = 0; i < len; i++)
1070- {
1071- Serial.print((char)buffer[i]);
1072- }
1073-
1074- Serial.println("]");
1075-
1076- if (wifi.send(mux_id, buffer, len))
1077- {
1078- Serial.println("Send back OK");
1079- }
1080- else
1081- {
1082- Serial.println("Send back failed");
1083- }
1084-
1085- if (wifi.releaseTCP(mux_id))
1086- {
1087- Serial.print("Release TCP ");
1088- Serial.print(mux_id);
1089- Serial.println(" OK");
1090- }
1091- else
1092- {
1093- Serial.print("Release TCP ");
1094- Serial.print(mux_id);
1095- Serial.println(" failed");
1096- }
1097-
1098- Serial.print("Status:[");
1099- Serial.print(wifi.getIPStatus().c_str());
1100- Serial.println("]");
1101- }
1102- }
1103- ```
1104727---
1105728---
1106729
0 commit comments