Skip to content
Snippets Groups Projects
Commit 5d8cdd9b authored by Dean Camera's avatar Dean Camera
Browse files

Fix unfinished printer host demo - some printer languages use embedded NULLs...

Fix unfinished printer host demo - some printer languages use embedded NULLs and so strlen() won't work in all cases. Ensure NULL terminator for the test page is not transmitted to the device.
parent 8a68203d
No related branches found
No related tags found
No related merge requests found
......@@ -37,14 +37,14 @@
*
* \return A value from the Pipe_Stream_RW_ErrorCodes_t enum
*/
uint8_t Printer_SendData(char* PrinterCommands)
uint8_t Printer_SendData(char* PrinterCommands, uint16_t DataLength)
{
uint8_t ErrorCode;
Pipe_SelectPipe(PRINTER_DATA_OUT_PIPE);
Pipe_Unfreeze();
if ((ErrorCode = Pipe_Write_Stream_LE(PrinterCommands, strlen(PrinterCommands))) != PIPE_RWSTREAM_NoError)
if ((ErrorCode = Pipe_Write_Stream_LE(PrinterCommands, DataLength)) != PIPE_RWSTREAM_NoError)
return ErrorCode;
Pipe_ClearOUT();
......
......@@ -54,7 +54,7 @@
#define PRINTER_DATA_OUT_PIPE 2
/* Function Prototypes: */
uint8_t Printer_SendData(char* PrinterCommands);
uint8_t Printer_SendData(char* PrinterCommands, uint16_t DataLength);
uint8_t Printer_GetDeviceID(char* DeviceIDString, uint8_t BufferSize);
uint8_t Printer_GetPortStatus(uint8_t* PortStatus);
uint8_t Printer_SoftReset(void);
......
......@@ -207,9 +207,9 @@ void USB_Printer_Host(void)
char PCL_Test_Page[] = "\033%-12345X\033E LUFA PCL Test Page \033E\033%-12345X";
// char ESCP2_Test_Page[] = "\033@\033i\001\033X\001\060\000\r\nLUFA ESCP/2 Test Page\r\n";
printf_P(PSTR("Sending Test Page (%d bytes)...\r\n"), strlen(PCL_Test_Page));
printf_P(PSTR("Sending Test Page (%d bytes)...\r\n"), (sizeof(PCL_Test_Page) - 1));
if ((ErrorCode = Printer_SendData(PCL_Test_Page)) != PIPE_RWSTREAM_NoError)
if ((ErrorCode = Printer_SendData(PCL_Test_Page, (sizeof(PCL_Test_Page) - 1))) != PIPE_RWSTREAM_NoError)
{
puts_P(PSTR(ESC_FG_RED "Error Sending Test Page.\r\n"));
printf_P(PSTR(" -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
......
......@@ -352,7 +352,7 @@ void UnicodeToASCII(uint8_t* UnicodeString, char* Buffer)
/* Loop through the entire unicode string */
while (CharactersRemaining--)
{
/* Load in the next unicode character (only the lower byte, only Unicode coded ASCII supported) */
/* Load in the next unicode character (only the lower byte, as only Unicode coded ASCII is supported) */
*(Buffer++) = *UnicodeString;
/* Jump to the next unicode character */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment