HP LaserJet 5000 HP PCL/PJL reference - Printer Job Language Technical Referen - Page 218

Old Printer Status Readback Responses, Response Data Buffer Overflow

Page 218 highlights

To keep the I/O interface from timing out, the application can either send data to the printer more frequently than the timeout setting or can cause the printer to use a different setting by sending a PJL JOB command. When I/O-switching printers receive the PJL JOB command, the printer uses an I/O timeout value equal to ten times the TIMEOUT environment variable setting or five minutes, whichever is greater. (If the application sends the PJL JOB command, the application should send a PJL EOJ command at the end of the job.) Old Printer Status Readback Responses Applications need to be designed to handle receiving printer status readback responses that were generated because of an action performed by a different application. For example, a word processing application may send a query to the printer, but because the user turned off the host computer, the application never got a chance to retrieve the response from the printer before the host computer was turned off. When another application, or even the same application at a later time, queries the printer, the first response is the response to the word processing application's query. The currently executing application should accept old printer status readback responses and discard them until the expected response is received. Applications should include unique information as part of the ECHO command, such as the current time and date and a random number, so that the application can resynchronize with printer status readback responses. There is also a chance the PJL ECHO response will never by sent by the printer, due to overflowing of the printer's response data buffer as discussed in the following section. Response Data Buffer Overflow The printer contains a limited amount of memory. It is possible for an application to fill all available printer memory with printer status readback responses that have not yet been sent to the host computer, simply by sending many queries and never accepting the responses from the printer. Also, if an application enables unsolicited status and never accepts responses, the printer's response data buffer can overflow. The printer limits the amount of memory allotted to hold responses, and when that memory is full (and the host has not recently accepted any responses), the printer discards all future responses until the host accepts the currently queued responses in the printer. 11-24 Programming Tips for Using PJL EN

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342

11-24
Programming Tips for Using PJL
EN
To keep the I/O interface from timing out, the application can either
send data to the printer more frequently than the timeout setting or
can cause the printer to use a different setting by sending a PJL JOB
command. When I/O-switching printers receive the PJL JOB
command, the printer uses an I/O timeout value equal to ten times the
TIMEOUT environment variable setting or five minutes, whichever is
greater. (If the application sends the PJL JOB command, the
application should send a PJL EOJ command at the end of the job.)
Old Printer Status Readback Responses
Applications need to be designed to handle receiving printer status
readback responses that were generated because of an action
performed by a different application. For example, a word processing
application may send a query to the printer, but because the user
turned off the host computer, the application never got a chance to
retrieve the response from the printer before the host computer was
turned off. When another application, or even the same application at
a later time, queries the printer, the first response is the response to
the word processing application's query.
The currently executing application should accept old printer status
readback responses and discard them until the expected response is
received. Applications should include unique information as part of
the ECHO command, such as the current time and date and a
random number, so that the application can resynchronize with printer
status readback responses.
There is also a chance the PJL ECHO response will never by sent by
the printer, due to overflowing of the printer's response data buffer as
discussed in the following section.
Response Data Buffer Overflow
The printer contains a limited amount of memory. It is possible for an
application to fill all available printer memory with printer status
readback responses that have not yet been sent to the host computer,
simply by sending many queries and never accepting the responses
from the printer. Also, if an application enables unsolicited status and
never accepts responses, the printer's response data buffer can
overflow. The printer limits the amount of memory allotted to hold
responses, and when that memory is full (and the host has not
recently accepted any responses), the printer discards all future
responses until the host accepts the currently queued responses in
the printer.