Draft implementation of multiple report pixel command.
12 #define MIN(a,b) (((a)<(b))?(a):(b))
16 #define MAX(a,b) (((a)>(b))?(a):(b))
20 //This was computed from our number of pixels as follow 256x64/8/64 = 32 + 1 = 33
21 //+1 was added for our header
22 const int KFutabaMaxCommandOutputReport = 33;
23 //TODO: Get ride of that constant once we figure out a way to get it from hidapi
24 const int KFutabaMaxHidReportSize = 65;
26 const int KHidReportIdIndex=0;
27 const int KFutabaHidReportSizeIndex=1;
28 //Define Futaba vendor ID to filter our list of device
29 const unsigned short KFutabaVendorId = 0x1008;
30 const unsigned short KFutabaProductIdGP1212A01A = 0x100C;
31 const unsigned short KFutabaProductIdGP1212A02A = 0x1013; //Or is it 0x1015
34 //typedef struct hid_device_info HidDeviceInfo;
37 Define a Futaba HID report.
39 class FutabaVfdReport: public HidReport<KFutabaMaxHidReportSize>
49 Define a generic Futaba VFD command.
51 class FutabaVfdCommand
57 //void Create(int aMaxSize);
60 //inline unsigned char& operator[](int aIndex){return iBuffer[aIndex];}
65 //unsigned char* iBuffer;
66 FutabaVfdReport iReports[KFutabaMaxCommandOutputReport];
73 class FutabaVfd : public HidDevice
76 virtual int MinBrightness()=0;
77 virtual int MaxBrightness()=0;
78 virtual void SetBrightness(int aBrightness)=0;
79 virtual void Clear()=0;
85 class FutabaGraphicVfd : public FutabaVfd
88 virtual int WidthInPixels()=0;
89 virtual int HeightInPixels()=0;
90 virtual void SetPixel(int aX, int aY, bool aOn)=0;
91 virtual void SetAllPixels(bool aOn)=0;
95 Common functionality between GP1212A01A and GP1212A02A
97 class GP1212XXXX : public FutabaGraphicVfd
101 virtual int MinBrightness(){return 0;};
102 virtual int MaxBrightness(){return 5;};
106 GP1212A01A is a graphic display module using a FUTABA 256x64dots VFD.
107 The module do not include character ROM, the customer will compile the character
108 by themselves (from main system).
110 class GP1212A01A : public GP1212XXXX
114 //From FutabaGraphicVfd
115 virtual int WidthInPixels(){return 256;};
116 virtual int HeightInPixels(){return 64;};
117 virtual void SetPixel(int aX, int aY, bool aOn);
118 virtual void SetAllPixels(bool aOn);
120 virtual void SetBrightness(int aBrightness);
121 virtual void Clear();
123 //Specific to GP1212A01A
124 void SetPixelBlock(int aX, int aY, int aHeight, int aSize, unsigned char aValue);
125 void SetPixelBlock(int aX, int aY, int aHeight, int aSize, unsigned char* aPixels);
128 void RequestFirmwareRevision();
129 void RequestPowerSupplyStatus();
132 //FutabaVfdReport iReport;
134 unsigned char iPixelBuffer[256][128];