aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Host/Incomplete/PrinterHost/PrinterHost.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-07-19 07:30:37 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-07-19 07:30:37 +0000
commitb243c2b80bf51c2b1473fbd4bac204bd6d984b7b (patch)
treed7cc932b9c90460a83182853825111dff537f850 /Demos/Host/Incomplete/PrinterHost/PrinterHost.c
parentd6543dee0d2723ee9f09137116264f123433b1a3 (diff)
downloadlufa-b243c2b80bf51c2b1473fbd4bac204bd6d984b7b.tar.gz
lufa-b243c2b80bf51c2b1473fbd4bac204bd6d984b7b.tar.bz2
lufa-b243c2b80bf51c2b1473fbd4bac204bd6d984b7b.zip
Magstripe Project: Ensure that empty tracks still print out a newline seperator so that the host always knows what track data is being sent.
Updates to PrinterHost demo to include some PCL test data plus fixes to the GetDeviceID routine.
Diffstat (limited to 'Demos/Host/Incomplete/PrinterHost/PrinterHost.c')
-rw-r--r--Demos/Host/Incomplete/PrinterHost/PrinterHost.c54
1 files changed, 41 insertions, 13 deletions
diff --git a/Demos/Host/Incomplete/PrinterHost/PrinterHost.c b/Demos/Host/Incomplete/PrinterHost/PrinterHost.c
index 7b98542d0..5cdd063fb 100644
--- a/Demos/Host/Incomplete/PrinterHost/PrinterHost.c
+++ b/Demos/Host/Incomplete/PrinterHost/PrinterHost.c
@@ -130,7 +130,7 @@ void USB_Printer_Host(void)
printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);
/* Indicate error via status LEDs */
- LEDs_SetAllLEDs(LEDS_LED1);
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
/* Wait until USB device disconnected */
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
@@ -144,7 +144,7 @@ void USB_Printer_Host(void)
printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);
/* Indicate error via status LEDs */
- LEDs_SetAllLEDs(LEDS_LED1);
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
/* Wait until USB device disconnected */
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
@@ -154,23 +154,18 @@ void USB_Printer_Host(void)
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
- puts_P(PSTR("Printer Enumerated.\r\n"));
-
- USB_HostState = HOST_STATE_Ready;
- break;
- case HOST_STATE_Ready:
- /* Indicate device busy via the status LEDs */
- LEDs_SetAllLEDs(LEDS_LED3 | LEDS_LED4);
-
printf_P(PSTR("Printer Protocol: %d\r\n"), PrinterProtocol);
puts_P(PSTR("Retrieving Device ID...\r\n"));
Device_ID_String_t DeviceIDString;
- if (Printer_GetDeviceID(&DeviceIDString) != HOST_SENDCONTROL_Successful)
+ if ((ErrorCode = Printer_GetDeviceID(&DeviceIDString)) != HOST_SENDCONTROL_Successful)
{
+ puts_P(PSTR("Control Error (Get DeviceID).\r\n"));
+ printf_P(PSTR(" -- Error Code: %d\r\n"), ErrorCode);
+
/* Indicate error via status LEDs */
- LEDs_SetAllLEDs(LEDS_LED1);
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
/* Wait until USB device disconnected */
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
@@ -178,9 +173,42 @@ void USB_Printer_Host(void)
}
printf_P(PSTR("Printer Device ID: %s\r\n"), DeviceIDString.String);
+
+ puts_P(PSTR("Printer Enumerated.\r\n"));
+
+ USB_HostState = HOST_STATE_Ready;
+ break;
+ case HOST_STATE_Ready:
+ /* Indicate device busy via the status LEDs */
+ LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
+
+ //--------------------------------------------------------------
+ #define TEST_TEXT_PAGE "\033%-12345X\033E LUFA PCL Test Page \033E\033%-12345X"
+
+ Pipe_SelectPipe(PRINTER_DATA_OUT_PIPE);
+ Pipe_Unfreeze();
+
+ puts_P(PSTR("Waiting for Printer to Become Ready...\r\n"));
+
+ while (!(Pipe_IsReadWriteAllowed()));
+
+ uint8_t strSize = sizeof(TEST_TEXT_PAGE)-1;
+
+ printf_P(PSTR("Printer Write Allowed, sending complete page (%d bytes)...\r\n"), strSize);
+
+ Pipe_Write_Stream_LE(TEST_TEXT_PAGE, strSize);
+ Pipe_ClearOUT();
+
+ puts_P(PSTR("Page sent to printer.\r\n"));
+
+ while (!(Pipe_IsReadWriteAllowed()));
+ Pipe_Freeze();
+
+ puts_P(PSTR("Pipe Frozen.\r\n"));
+ //--------------------------------------------------------------
/* Indicate device no longer busy */
- LEDs_SetAllLEDs(LEDS_LED4);
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
break;