JGtoJR
Dependencies: MODSERIAL Watchdog
PC/PC.h
- Committer:
- JavierGC
- Date:
- 2017-06-15
- Revision:
- 0:1c1c9f47b8ad
File content as of revision 0:1c1c9f47b8ad:
#ifndef _PC_H_ #define _PC_H_ #include "mbed.h" #include "MODSERIAL.h" #include "GV.h" #define PCTxBufferSize 250 #define PCRxBufferSize 250 #define PCMaxMailElements 10 #define PCBaudRateDef 115200 #define PCWaitByte_us (10000000/PCBaudRateDef) #define PCWaitMess_us PCWaitByte_us*10 #define Rate 1 extern "C" void mbed_reset(); class PC : public MODSERIAL { public: PC(GV * _pac, PinName _led, PinName tx, PinName rx); PC(GV * _pac, PinName _led, PinName tx, PinName rx, void (*iEventHandler)(int, char *)); ~PC(); void LoadMail(char comm, char *mess); //para cargar mensajes de trabajo al proceso paralelo ComPC_thread_proc void start(void); bool LOG; bool SendStatus; int mode; enum MyEventsLCD {eLOG}; private: GV *pgv; void (*iEvent)(int, char *); DigitalOut *led; char messageBufferIncoming[PCRxBufferSize]; char messageBufferOutgoing[PCTxBufferSize]; Thread thread; typedef struct { char command; /* command to execute */ char message[PCTxBufferSize]; /* arguments */ } mail_t; Mail<mail_t, PCMaxMailElements> mails; int MailNum; void TLogSTR(char *Tstr); int Com_Write(char *mess); //sólo para usarse en ComPC_thread_proc void messageFrom(MODSERIAL_IRQ_INFO *q); void Paralell_thread(); Ticker TStatusToPC; void StatusToPC(void); }; #endif /* _PC_H_ */