2013-09-07 01:03:19 +02:00
|
|
|
/* Digital Scale Output. Written for Stamps.com Model 510 */
|
|
|
|
/* 5lb Digital Scale; any HID scale with Usage page 0x8d should work */
|
|
|
|
|
|
|
|
#include <hid.h>
|
|
|
|
#include <hiduniversal.h>
|
2013-10-02 00:49:46 +02:00
|
|
|
#include <usbhub.h>
|
2013-09-07 01:03:19 +02:00
|
|
|
|
|
|
|
#include "scale_rptparser.h"
|
2013-12-05 03:56:06 +01:00
|
|
|
// Satisfy IDE, which only needs to see the include statment in the ino.
|
|
|
|
#ifdef dobogusinclude
|
|
|
|
#include <spi4teensy3.h>
|
|
|
|
#endif
|
2013-09-07 01:03:19 +02:00
|
|
|
|
|
|
|
USB Usb;
|
|
|
|
USBHub Hub(&Usb);
|
|
|
|
HIDUniversal Hid(&Usb);
|
|
|
|
Max_LCD LCD(&Usb);
|
|
|
|
ScaleEvents ScaleEvents(&LCD);
|
|
|
|
ScaleReportParser Scale(&ScaleEvents);
|
|
|
|
|
|
|
|
void setup()
|
|
|
|
{
|
|
|
|
Serial.begin( 115200 );
|
2013-10-21 19:58:03 +02:00
|
|
|
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
|
2013-09-07 01:03:19 +02:00
|
|
|
Serial.println("Start");
|
|
|
|
|
|
|
|
if (Usb.Init() == -1)
|
|
|
|
Serial.println("OSC did not start.");
|
2013-12-05 03:56:06 +01:00
|
|
|
|
|
|
|
// set up the LCD's number of rows and columns:
|
2013-09-07 01:03:19 +02:00
|
|
|
LCD.begin(16, 2);
|
|
|
|
LCD.clear();
|
|
|
|
LCD.home();
|
|
|
|
LCD.setCursor(0,0);
|
2013-12-05 03:56:06 +01:00
|
|
|
LCD.write('R');
|
|
|
|
|
2013-09-07 01:03:19 +02:00
|
|
|
delay( 200 );
|
|
|
|
|
|
|
|
if (!Hid.SetReportParser(0, &Scale))
|
2013-12-05 03:56:06 +01:00
|
|
|
ErrorMessage<uint8_t>(PSTR("SetReportParser"), 1 );
|
2013-09-07 01:03:19 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void loop()
|
|
|
|
{
|
|
|
|
Usb.Task();
|
|
|
|
}
|
|
|
|
|