@@ -721,386 +721,9 @@ The `SERIAL_TX_BUFFER_SIZE` and `SERIAL_RX_BUFFER_SIZE` are already redefined to
721
721
722
722
#### Example [ TCPServer] ( examples/TCPServer )
723
723
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
725
725
726
726
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
- ```
1104
727
---
1105
728
---
1106
729
0 commit comments