JGtoJR

Dependencies:   MODSERIAL Watchdog

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PC.h Source File

PC.h

00001 #ifndef _PC_H_
00002 #define _PC_H_
00003 
00004 #include "mbed.h"
00005 #include "MODSERIAL.h"
00006 #include "GV.h"
00007 
00008 #define PCTxBufferSize 250
00009 #define PCRxBufferSize 250
00010 #define PCMaxMailElements 10
00011 #define PCBaudRateDef 115200
00012 #define PCWaitByte_us (10000000/PCBaudRateDef)
00013 #define PCWaitMess_us PCWaitByte_us*10
00014 
00015 #define Rate 1
00016     
00017 extern "C" void mbed_reset();
00018 
00019 class PC : public MODSERIAL
00020 {
00021 
00022 public:
00023 
00024 
00025     PC(GV * _pac, PinName _led, PinName tx, PinName rx);
00026     PC(GV * _pac, PinName _led, PinName tx, PinName rx, void (*iEventHandler)(int, char *));
00027     ~PC();    
00028     
00029     void LoadMail(char comm,  char *mess); //para cargar mensajes de trabajo al proceso paralelo ComPC_thread_proc
00030     
00031     void start(void);
00032     
00033     bool LOG;
00034     bool SendStatus;
00035     int mode;
00036     
00037     enum MyEventsLCD {eLOG};
00038     
00039 private:
00040 
00041     GV *pgv;
00042     
00043     void (*iEvent)(int, char *);
00044     
00045     DigitalOut *led;
00046     char messageBufferIncoming[PCRxBufferSize];
00047     char messageBufferOutgoing[PCTxBufferSize];
00048     
00049     Thread thread;
00050     
00051     typedef struct {
00052         char command;   /* command to execute */
00053         char message[PCTxBufferSize];   /* arguments */
00054     } mail_t;
00055     
00056     Mail<mail_t, PCMaxMailElements> mails;
00057     int MailNum;
00058     
00059     void TLogSTR(char *Tstr);
00060     int Com_Write(char *mess); //sólo para usarse en ComPC_thread_proc
00061     void messageFrom(MODSERIAL_IRQ_INFO *q);
00062     void Paralell_thread();
00063     
00064     Ticker TStatusToPC;
00065     void StatusToPC(void);
00066 };        
00067 
00068 #endif /* _PC_H_ */
00069 
00070 
00071