inc/MainWindow.h
author sl
Thu, 22 May 2014 07:16:55 +0200
changeset 12 7268128148b8
parent 11 MainWindow.h@11a0e8a2346e
child 15 e5b84f315be7
permissions -rw-r--r--
Files reorganisation.
     1 
     2 
     3 #ifndef MAIN_WINDOW_H
     4 #define MAIN_WINDOW_H
     5 
     6 #include <fx.h>
     7 #include "hidapi.h"
     8 #include "mac_support.h"
     9 #include <string.h>
    10 #include <stdlib.h>
    11 #include <limits.h>
    12 #include "FutabaVfd.h"
    13 
    14 #ifdef _WIN32
    15 // Thanks Microsoft, but I know how to use strncpy().
    16 #pragma warning(disable:4996)
    17 #endif
    18 
    19 class MainWindow : public FXMainWindow {
    20     FXDECLARE(MainWindow)
    21 
    22 public:
    23     enum {
    24         ID_FIRST = FXMainWindow::ID_LAST,
    25         ID_CONNECT,
    26         ID_DISCONNECT,
    27         ID_RESCAN,
    28         ID_SEND_OUTPUT_REPORT,
    29         ID_SEND_FEATURE_REPORT,
    30         ID_GET_FEATURE_REPORT,
    31         ID_CLEAR,
    32         ID_TIMER,
    33         ID_MAC_TIMER,
    34         ID_FUTABA_CLEAR_DISPLAY,
    35         ID_FUTABA_DIMMING,
    36         ID_FUTABA_DISPLAY_DATA_INPUT,
    37         ID_FUTABA_READ_ID,
    38         ID_FUTABA_READ_FIRMWARE_REVISION,
    39         ID_FUTABA_POWER_SUPPLY_MONITOR,
    40         ID_FUTABA_SET_PIXEL,
    41         ID_FUTABA_RESET_PIXEL,
    42         ID_FUTABA_SET_ALL_PIXELS,
    43         ID_SELECT_FONT,
    44         ID_LAST
    45     };
    46 
    47     size_t getDataFromTextField(FXTextField *tf, char *buf, size_t len);
    48     int getLengthFromTextField(FXTextField *tf);
    49 
    50 protected:
    51     MainWindow() {};
    52 public:
    53     MainWindow(FXApp *a);
    54     ~MainWindow();
    55     virtual void create();
    56 
    57     long onConnect(FXObject *sender, FXSelector sel, void *ptr);
    58     long onDisconnect(FXObject *sender, FXSelector sel, void *ptr);
    59     long onRescan(FXObject *sender, FXSelector sel, void *ptr);
    60     long onSendOutputReport(FXObject *sender, FXSelector sel, void *ptr);
    61     long onSendFeatureReport(FXObject *sender, FXSelector sel, void *ptr);
    62     long onGetFeatureReport(FXObject *sender, FXSelector sel, void *ptr);
    63     long onClear(FXObject *sender, FXSelector sel, void *ptr);
    64     //
    65     long onFutabaClearDisplay(FXObject *sender, FXSelector sel, void *ptr);
    66     long onFutabaDimming(FXObject *sender, FXSelector sel, void *ptr);
    67     long onFutabaDisplayDataInput(FXObject *sender, FXSelector sel, void *ptr);
    68     long onFutabaReadId(FXObject *sender, FXSelector sel, void *ptr);
    69     long onFutabaReadFirmwareRevision(FXObject *sender, FXSelector sel, void *ptr);
    70     long onFutabaPowerSupplyMonitor(FXObject *sender, FXSelector sel, void *ptr);
    71     long onFutabaSetAllPixels(FXObject *sender, FXSelector sel, void *ptr);
    72     long onFutabaSetPixel(FXObject *sender, FXSelector sel, void *ptr);
    73     long onFutabaResetPixel(FXObject *sender, FXSelector sel, void *ptr);
    74     //
    75     long onSelectFont(FXObject *sender, FXSelector sel, void *ptr);
    76     //
    77     long onTimeout(FXObject *sender, FXSelector sel, void *ptr);
    78     long onMacTimeout(FXObject *sender, FXSelector sel, void *ptr);
    79     //
    80     void SetPixel(int aX, int aY, unsigned char aValue);
    81     void SetPixelBlock(int aX, int aY, int aHeight, int aSize, unsigned char aValue);
    82 
    83 private:
    84     FXList *device_list;
    85     FXButton *connect_button;
    86     FXButton *disconnect_button;
    87     FXButton *rescan_button;
    88     FXButton *output_button;
    89     FXLabel *connected_label;
    90     FXTextField *output_text;
    91     FXTextField *output_len;
    92     FXButton *feature_button;
    93     FXButton *get_feature_button;
    94     FXTextField *feature_text;
    95     FXTextField *feature_len;
    96     FXTextField *get_feature_text;
    97     FXText *input_text;
    98     FXFont *title_font;
    99     //Futaba VFD control
   100     FXButton *iButtonClearDisplay;
   101     FXButton *iButtonDimming;
   102     FXButton *iButtonDisplayDataInput;
   103     FXButton *iButtonReadId;
   104     FXButton *iButtonReadFirmwareRevision;
   105     FXButton *iButtonPowerSupplyMonitor;
   106     FXTextField *iTextFieldX;
   107     FXTextField *iTextFieldY;
   108     FXButton *iButtonSetPixel;
   109     FXButton *iButtonResetPixel;
   110     FXButton *iButtonSetAllPixels;
   111     //Font
   112     FXButton *iButtonSelectFont;
   113 
   114     unsigned char* iOutputReportBuffer;
   115     unsigned char iDimming; //Current VFD dimming
   116     FXFontDesc iCurrentFontDesc;
   117     FXFont* iCurrentFont;
   118     FXTGAImage* iFontImage;
   119 
   120     struct hid_device_info *devices;
   121     hid_device *connected_device;
   122 
   123 	//Futaba
   124 	GP1212A01A iVfd01;
   125 
   126 };
   127 
   128 #endif //