diff options
Diffstat (limited to 'tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.cpp')
-rw-r--r-- | tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.cpp | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.cpp b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.cpp deleted file mode 100644 index 01ed980cfb..0000000000 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/* Parser for standard HID scale (usage page 0x8d) data input report (ID 3) */ -#include "scale_rptparser.h" - -const char* UNITS[13] = { - "units", // unknown unit - "mg", // milligram - "g", // gram - "kg", // kilogram - "cd", // carat - "taels", // lian - "gr", // grain - "dwt", // pennyweight - "tonnes", // metric tons - "tons", // avoir ton - "ozt", // troy ounce - "oz", // ounce - "lbs" // pound -}; - -ScaleReportParser::ScaleReportParser(ScaleEvents *evt) : - scaleEvents(evt) -{} - -void ScaleReportParser::Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf) -{ - bool match = true; - - // Checking if there are changes in report since the method was last called - for (uint8_t i=0; i<RPT_SCALE_LEN; i++) { - if( buf[i] != oldScale[i] ) { - match = false; - break; - } - } - // Calling Game Pad event handler - if (!match && scaleEvents) { - scaleEvents->OnScaleChanged((const ScaleEventData*)buf); - - for (uint8_t i=0; i<RPT_SCALE_LEN; i++) oldScale[i] = buf[i]; - } -} - -ScaleEvents::ScaleEvents( Max_LCD* pLCD ) : - - pLcd( pLCD ) - -{} - -void ScaleEvents::LcdPrint( const char* str ) -{ - - while( *str ) { - - pLcd->write( *str++ ); - - } -} - -void ScaleEvents::OnScaleChanged(const ScaleEventData *evt) -{ - - pLcd->clear(); - pLcd->home(); - pLcd->setCursor(0,0); - - if( evt->reportID != 3 ) { - - const char inv_report[]="Invalid report!"; - - Serial.println(inv_report); - LcdPrint(inv_report); - - return; - - }//if( evt->reportID != 3... - - switch( evt->status ) { - - case REPORT_FAULT: - Serial.println(F("Report fault")); - break; - - case ZEROED: - Serial.println(F("Scale zero set")); - break; - - case WEIGHING: { - - const char progress[] = "Weighing..."; - Serial.println(progress); - LcdPrint(progress); - break; - } - - case WEIGHT_VALID: { - - char buf[10]; - double weight = evt->weight * pow( 10, evt->exp ); - - - - Serial.print(F("Weight: ")); - Serial.print( weight ); - Serial.print(F(" ")); - Serial.println( UNITS[ evt->unit ]); - - LcdPrint("Weight: "); - dtostrf( weight, 4, 2, buf ); - LcdPrint( buf ); - LcdPrint( UNITS[ evt->unit ]); - - break; - - }//case WEIGHT_VALID... - - case WEIGHT_NEGATIVE: { - - const char negweight[] = "Negative weight"; - Serial.println(negweight); - LcdPrint(negweight); - break; - } - - case OVERWEIGHT: { - - const char overweight[] = "Max.weight reached"; - Serial.println(overweight); - LcdPrint( overweight ); - break; - } - - case CALIBRATE_ME: - - Serial.println(F("Scale calibration required")); - break; - - case ZERO_ME: - - Serial.println(F("Scale zeroing required")); - break; - - default: - - Serial.print(F("Undefined status code: ")); - Serial.println( evt->status ); - break; - - }//switch( evt->status... - -} |