Simplify using of UnbufferedSerial(Serial), USBCDC, TCP, SMTP, NTP Fork : https://github.com/YSI-LPS/lib_Transmission

Dependents:   lib_Transmission_Serial_example 2022_TICE_Electrolyse lib_Transmission_TCP_example

Revision:
0:2fc6fc3b5e15
Child:
1:27f6baabb15e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib_Transmission.h	Wed Jun 24 14:30:34 2020 +0000
@@ -0,0 +1,94 @@
+/** Transmission class
+*
+* @purpose       library for Transmission
+*
+* Use to Transmission
+*
+* Example:
+* @code
+* #include "mbed.h"
+*  
+* int main()
+* {
+*     while(1)
+*     {
+*     }
+* }
+* @endcode
+* @file          lib_Transmission.h 
+* @date          Jun 2020
+* @author        Yannic Simon
+*/
+#ifndef COM_H
+#define COM_H
+
+#include "mbed.h"
+#include "EthernetInterface.h"
+#include <sstream>
+
+#define TCP_SET_DHCP            true
+#define TCP_IP                  "192.168.1.25"
+#define TCP_NETMASK             "255.255.255.0"
+#define TCP_GATEWAY             "192.168.1.1"
+#define TCP_PORT                80
+#define TCP_CLIENT_TIMEOUT      100                             // client configue bloquante avec timeout sinon limite de transmission a 1072 octets
+#define SMTP_SERVER             "129.175.212.70"                //"smtp.u-psud.fr" oblige a utiliser DNS avec eth.getHostByName("smtp.u-psud.fr")
+
+enum enumCOM            { TCP, SERIAL };
+enum enumCOLOR          { WHITE, CYAN, MAGENTA_ACCEPT, BLUE_CLIENT, YELLOW_CONNECTING, GREEN_GLOBAL_UP, RED_DISCONNECTED, BLACK_INITIALIZE };
+struct typeTransmission { bool TCP; string buffer[2]; bool HTTP; bool BREAK; };
+
+/** Transmission class
+ */
+class Transmission
+{
+    public:
+        /** make new Transmission instance
+        * connected to 
+        *
+        * @param 
+        * @param 
+        */
+        Transmission(UnbufferedSerial *serial, EthernetInterface *eth, EventQueue *queue, void(*com_init)(void), void(*com_processing)(string, const enumCOM&));
+        
+        /** 
+        *
+        * @param 
+        * @param 
+        * @returns none
+        */ 
+        /* communication */
+        enumCOLOR       recv(void);
+        nsapi_error_t   send(const string& BUFFER, const enumCOM& TYPE);
+
+        bool            sendSMTP(const char* MAIL, const char* FROM, const char* SUBJECT, const char* DATA);
+        bool            checkSMTP(const char* MAIL);
+
+        intptr_t        eth_status(const string&, const intptr_t&);
+        nsapi_error_t   eth_error(const string& SOURCE, const nsapi_error_t& CODE);
+
+        typeTransmission message = { true, {"", ""}, false, false };
+    private:
+        void(*fn_com_init)(void);
+        void(*fn_com_processing)(string, const enumCOM&);
+
+        UnbufferedSerial *_serial;
+        EthernetInterface *_eth;
+        EventQueue *_queue;
+        TCPSocket *clientTCP = NULL;
+        TCPSocket serverTCP;
+
+        enumCOLOR statusCOLOR = RED_DISCONNECTED;
+
+        /* EthernetInterface */
+        bool            eth_connect(void);
+        void            eth_event(nsapi_event_t, intptr_t);
+        
+
+        /* serverTCP */
+        bool            serverTCP_connect(void);
+        void            serverTCP_accept(void);
+        void            serverTCP_event(void);
+};
+
+#endif
\ No newline at end of file