?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{BLAME START}

library

?curdirlinks? -

Blame information for rev 32

Line No. Rev Author Line
1 32 kaklik /******************************************************************************
2 PCL 5 Printer Language Support
3  
4 Summary:
5 This file provides support for the PCL 5 printer language when using the
6 USB Embedded Host Printer Client Driver.
7  
8 Description:
9 This file provides support for the PCL 5 printer language when using the
10 USB Embedded Host Printer Client Driver.
11  
12 There are several versions of the PCL printer language. This file is
13 targetted to support PCL 5. Unfortunately, printer language support is not
14 always advertised correctly by the printer. Some printers advertise only
15 PCL 6 support when they also support PCL 5. Therefore, the default value
16 for the LANGUAGE_ID_STRING_PCL string used in the routine
17 USBHostPrinterLanguagePCL5IsSupported() is set such that the routine will
18 return TRUE if any PCL language support is advertised. It is highly
19 recommended to test the target application with the specific printer(s)
20 that will be utilized, and, if possible, populate the
21 usbPrinterSpecificLanguage[] array in usb_config.c via the configuration
22 tool to manually select the printer language and its functional support.
23  
24 Notes:
25 The PCL 5 coordinate origin is located at the top left corner of the paper.
26 The HP-GL/2 coordinate origin, however, is located at the bottom left corner
27 of the page. For consistency for the user, HP-GL/2 coordinate system is
28 adjusted to match the PCL coordinate system. This also matches the
29 coordinate system use by the Microchip Graphics library.
30  
31 The black and white bit image polarity is 0=white, 1=black, which is
32 reversed from the Microchip Graphics Library polarity. This driver will
33 automatically convert the image data to the required format, as long as the
34 image data is located in ROM (USB_PRINTER_TRANSFER_FROM_ROM) or it is
35 copied from a RAM buffer (USB_PRINTER_TRANSFER_COPY_DATA). If the data is
36 to be sent directly from its original RAM location, the data must already
37 be in the format required by the printer language.
38  
39 PCL 5 is not compatible with PCL 6; PCL 5 utilizes ASCII input, whereas
40 PCL 6 utilizes binary data. However, some printers that advertise support
41 for only PCL 5 do support PCL 6.
42  
43 PCL 3 printers utilize many of the PCL 5 commands. The following
44 limitations exist with PCL 3:
45 * PCL 3 does not support vector graphics
46 * PCL 3 does not support image printing in landscape mode. The
47 page print will fail.
48 * Items must be sent to the page in the order that they are to be
49 printed from top to bottom. The printer cannot return to a
50 higher position on the page.
51 * PCL 3 does not support the USB_PRINTER_EJECT_PAGE command. Use the
52 USB_PRINTER_JOB_STOP and USB_PRINTER_JOB_START commands instead.
53  
54 *******************************************************************************/
55 //DOM-IGNORE-BEGIN
56 /******************************************************************************
57  
58 * FileName: usb_host_printer_pcl_5.h
59 * Dependencies: None
60 * Processor: PIC24/dsPIC30/dsPIC33/PIC32MX
61 * Compiler: C30 v3.10b/C32 v1.02
62 * Company: Microchip Technology, Inc.
63  
64 Software License Agreement
65  
66 The software supplied herewith by Microchip Technology Incorporated
67 (the “Company”) for its PICmicro® Microcontroller is intended and
68 supplied to you, the Company’s customer, for use solely and
69 exclusively on Microchip PICmicro Microcontroller products. The
70 software is owned by the Company and/or its supplier, and is
71 protected under applicable copyright laws. All rights are reserved.
72 Any use in violation of the foregoing restrictions may subject the
73 user to criminal sanctions under applicable laws, as well as to
74 civil liability for the breach of the terms and conditions of this
75 license.
76  
77 THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
78 WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
79 TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
80 PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
81 IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
82 CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
83  
84 Change History:
85 Rev Description
86 ---- -----------------------------------
87 2.6a- No change
88 2.7a
89 *******************************************************************************/
90 //DOM-IGNORE-END
91  
92 // *****************************************************************************
93 // *****************************************************************************
94 // Section: Constants
95 // *****************************************************************************
96 // *****************************************************************************
97  
98 // This is the string that the printer language support determination
99 // routine will look for to determine if the printer supports this
100 // printer language. This string is case sensive. Some printers that
101 // report only PCL 6 support also support PCL 5. So it is recommended
102 // to use "PCL" as the search string, rather than "PCL 5", and verify
103 // that the correct output is produced by the target printer.
104 #define LANGUAGE_ID_STRING_PCL "PCL"
105 // These are the support flags that are set for the PCL 3 version of
106 // this language.
107 #define LANGUAGE_SUPPORT_FLAGS_PCL3 0
108 // These are the support flags that are set for the PCL 5 version of
109 // this language.
110 #define LANGUAGE_SUPPORT_FLAGS_PCL5 USB_PRINTER_FUNCTION_SUPPORT_VECTOR_GRAPHICS
111  
112  
113 // *****************************************************************************
114 // *****************************************************************************
115 // Section: Function Prototypes
116 // *****************************************************************************
117 // *****************************************************************************
118  
119 /****************************************************************************
120 Function:
121 BYTE USBHostPrinterLanguagePCL5( BYTE address,
122 USB_PRINTER_COMMAND command, USB_DATA_POINTER data, DWORD size, BYTE transferFlags )
123  
124 Summary:
125 This function executes printer commands for a PCL 5 printer.
126  
127 Description:
128 This function executes printer commands for a PCL 5 printer. When
129 the application issues a printer command, the printer client driver
130 determines what language to use to communicate with the printer, and
131 transfers the command to that language support routine. As much as
132 possible, commands are designed to produce the same output regardless
133 of what printer language is used.
134  
135 Not all printer commands support data from both RAM and ROM. Unless
136 otherwise noted, the data pointer is assumed to point to RAM, regardless of
137 the value of transferFlags. Refer to the specific command to see if ROM
138 data is supported.
139  
140 Preconditions:
141 None
142  
143 Parameters:
144 BYTE address - Device's address on the bus
145 USB_PRINTER_COMMAND command - Command to execute. See the enumeration
146 USB_PRINTER_COMMAND for the list of
147 valid commands and their requirements.
148 USB_DATA_POINTER data - Pointer to the required data. Note that
149 the caller must set transferFlags
150 appropriately to indicate if the pointer is
151 a RAM pointer or a ROM pointer.
152 DWORD size - Size of the data. For some commands, this
153 parameter is used to hold the data itself.
154 BYTE transferFlags - Flags that indicate details about the
155 transfer operation. Refer to these flags
156 * USB_PRINTER_TRANSFER_COPY_DATA
157 * USB_PRINTER_TRANSFER_STATIC_DATA
158 * USB_PRINTER_TRANSFER_NOTIFY
159 * USB_PRINTER_TRANSFER_FROM_ROM
160 * USB_PRINTER_TRANSFER_FROM_RAM
161  
162 Return Values:
163 USB_PRINTER_SUCCESS - The command was executed successfully.
164 USB_PRINTER_UNKNOWN_DEVICE - A printer with the indicated address is not
165 attached
166 USB_PRINTER_TOO_MANY_DEVICES - The printer status array does not have
167 space for another printer.
168 USB_PRINTER_OUT_OF_MEMORY - Not enough available heap space to
169 execute the command.
170 other - See possible return codes from the
171 function USBHostPrinterWrite().
172  
173 Remarks:
174 When developing new commands, keep in mind that the function
175 USBHostPrinterCommandReady() will be used before calling this function to
176 see if there is space available in the output transfer queue.
177 USBHostPrinterCommandReady() will routine TRUE if a single space is
178 available in the output queue. Therefore, each command can generate only
179 one output transfer.
180  
181 Multiple printer languages may be used in a single application. The USB
182 Embedded Host Printer Client Driver will call the routine required for the
183 attached device.
184 ***************************************************************************/
185  
186 BYTE USBHostPrinterLanguagePCL5( BYTE address,
187 USB_PRINTER_COMMAND command, USB_DATA_POINTER data, DWORD size, BYTE transferFlags );
188  
189  
190 /****************************************************************************
191 Function:
192 BOOL USBHostPrinterLanguagePCL5IsSupported( char *deviceID,
193 USB_PRINTER_FUNCTION_SUPPORT *support )
194  
195 Summary:
196 This function determines if the printer with the given device ID string
197 supports the PCL 5 printer language.
198  
199 Description:
200 This function determines if the printer with the given device ID string
201 supports the PCL 5 printer language.
202  
203 Unfortunately, printer language support is not always advertised correctly
204 by the printer. Some printers advertise only PCL 6 support when they also
205 support PCL 5. Therefore, this routine will return TRUE if any PCL
206 language support is advertised. It is therefore highly recommended to test
207 the target application with the specific printer(s) that will be utilized.
208  
209 Preconditions:
210 None
211  
212 Parameters:
213 char *deviceID - Pointer to the "COMMAND SET:" portion of the device ID
214 string of the attached printer.
215 USB_PRINTER_FUNCTION_SUPPORT *support - Pointer to returned information
216 about what types of functions this printer supports.
217  
218 Return Values:
219 TRUE - The printer supports PCL 5.
220 FALSE - The printer does not support PCL 5.
221  
222 Remarks:
223 The caller must first locate the "COMMAND SET:" section of the device ID
224 string. To ensure that only the "COMMAND SET:" section of the device ID
225 string is checked, the ";" at the end of the section should be temporarily
226 replaced with a NULL. Otherwise, this function may find the printer
227 language string in the comments or other section, and incorrectly indicate
228 that the printer supports the language.
229  
230 Device ID strings are case sensitive.
231 ***************************************************************************/
232  
233 BOOL USBHostPrinterLanguagePCL5IsSupported( char *deviceID,
234 USB_PRINTER_FUNCTION_SUPPORT *support );
235  
{BLAME END}
{FOOTER START}

Powered by WebSVN v2.8.3