Programming Guide for ZPL II, ZBI 2, Set Get Do, Mirror, WML (en)

Transcript

1 Programming Guide ZPL II ZBI 2 Set-Get-Do Mirror WML

2 © 201 8 ZIH Corp. All rights reserved. ZEBRA and the stylized Zebra head are trademarks of ZIH Corp., registered in their many jurisdictions worldwide. All other trademarks are the property of respective owners. Information in this document i s subject to change without notic e. For further information regarding legal and proprietary stateme nts, please go to: COPYRIGHTS: www.zebra.com/copyright WARRANTY: www.zebra.com/warranty END USER LICENSE AGREEMENT: www.zebra.com/eula SOFTWARE: www.zebra.com/linkoslegal Terms of Use Proprietary Statement This manual contains proprietary information of Zebra Technologies Corporation and its subsidiaries (“Zebra Te chnologies”). It is intended sol ely for the information and use of parties operating and maintaining the equipment described herein. Such proprietary information may not be used, reproduced, or disclosed to any other parties for any other pur pose without the express, written permission of Zebra Technologies. Product Improvements ogies. All Continuous improvement of products is a policy of Zebra Technol ubject to change without notice specifications and designs are s . Liability Disclaimer Zebra Technologies takes steps to ensure that its published Eng ineering specifications and manuals are correct; however, errors do occur. Zebra Technologies reserves the right to correct any such errors and disclaims liability re sulting there from. Limitation of Liability the creation, In no event shall Zebra Technologies or anyone else involved in production, or delivery of the accompanying product (including hardware and software) be liable for any damages whatsoever (including, without limitation, consequentia l damages including loss of business profits, business interruption, o r loss of business information ) arising out of the use of, the results of use of, or inability to use such product, even if Zebra Technologies has been advised of th e possibility of such ation of incidental or consequential damages. Some jurisdictions do no t allow the exclusion or limit you. or exclusion may not apply to damages, so the above limitation 1 1/31/18 Programming Guide P1099958-001

3 Contents ^BK ANSI Codabar Bar Code . . . . . . . . . . . . . . . . . . . . . 96 . . . 3 Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 LOGMARS Bar Code . . . . . . . . . . . . . . . . . . . . . . . ^BL . . . 100 MSI Bar Code . . . . . . . . . . . . . . . . . . . . . . . . ^BM Commands . . . . . . . . 15 Functional List of ZPL ^BO Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . 102 . . 104 ^BP Plessey Bar Code . . . . . . . . . . . . . . . . . . . . . . . I Commands . . . . . . . 19 Alphabetical List of ZB . 106 QR Code Bar Code . . . . . . . . . . . . . . . . . . . . . . . ^BQ ^BR GS1 Databar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Alphabetical List of Set/Get/Do Commands 21 ^BS UPC/EAN Extensions . . . . . . . . . . . . . . . . . . . . . . 115 ^BT . . 118 TLC39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . About This Document . . . . . . . . . . . . . . . . . . 27 ^BU UPC-A Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . 120 Contact Zebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 . 122 ^BX Data Matrix Bar Code . . . . . . . . . . . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Bar Code Field Default . . . . . . . . . . . . . . . . . . . . . 126 ^BY Who Should Use This Document . . . . . . . . . . . . . . . . . . . 28 POSTAL Bar Code . . . . . . . . . . . . . . . . . . . . . . . ^BZ . 127 . . 29 How This Document Is Organized . . . . . . . . . . . . . . . . 9 ^CC ~CC Change Caret . . . . . . . . . . . . . . . . . . . . . . . 12 ^CD ~CD Change Delimiter . . . . . . . . . . . . . . . . . . . 130 ZPL Commands . . . . . . . . . . . . . . . . . . . . . . . 31 ^CF Change Alphanumeric Default Font . . . . . . . . . . 131 . 32 Basic ZPL Exercises and Examples . . . . . . . . . . . . . . . ^CI Change International Font/Encoding . . . . . . . . . . . 132 . . . 41 Allowed Characters in File Names . . . . . . . . . . . . . . . Change Memory Letter Designation . . . . . . . . . 136 ^CM ^A . . 42 Scalable/Bitmapped Font . . . . . . . . . . . . . . . . . . . Cut Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 ^CN ^[email protected] Use Font Name to Call Font . . . . . . . . . . . . . . . . . 4 4 . . . . 139 Cache On . . . . . . . . . . . . . . . . . . . . . . . . . . ^CO ^B0 Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . . . 46 Remove Label . . . . . . . . . . . . . . . . . . . . . . . . . ^CP . . . 141 ^B1 . . . 48 Code 11 Bar Code . . . . . . . . . . . . . . . . . . . . . . 142 ^CT ~CT Change Tilde . . . . . . . . . . . . . . . . . . . . . . . . . . 50 ^B2 Interleaved 2 of 5 Bar Code . . . . . . . . . . . . . . . . Code Validation . . . . . . . . . . . . . . . . . . . . . . . ^CV . . . 143 ^B3 . . . 52 Code 39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . Font Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ^CW . . . 56 Code 49 Bar Code . . . . . . . . . . . . . . . . . . . . . . . ^B4 147 Download Bitmap Font . . . . . . . . . . . . . . . . . . . . ~DB Planet Code bar code . . . . . . . . . . . . . . . . . . . . . ^B5 . . . 60 Download Encoding . . . . . . . . . . . . . . . . . . . . . ~DE . 149 . . . 61 PDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . . . ^B7 ^DF Download Format . . . . . . . . . . . . . . . . . . . . . . . . 151 ^B8 . . . . 64 EAN-8 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . ~DG Download Graphics . . . . . . . . . . . . . . . . . . . . . . 152 UPC-E Bar Code . . . . . . . . . . . . . . . . . . . . . . . . ^B9 . . . 66 55 Abort Download Graphic . . . . . . . . . . . . . . . . . . 1 ~DN ^BA Code 93 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Download Intellifont (Scalable Font) . . . . . . . . . . 156 ~DS CODABLOCK Bar Code . . . . . . . . . . . . . . . . . . . . . 72 ^BB ~DT Download Bounded TrueType Font . . . . . . . . . . 157 Code 128 Bar Code (Subsets A, B, and C) . . . . . . . 76 ^BC ~DU Download Unbounded TrueType Font . . . . . . . . 158 7 UPS MaxiCode Bar Code . . . . . . . . . . . . . . . . . . . . 8 ^BD ~DY . 159 Download Objects . . . . . . . . . . . . . . . . . . . . . . . EAN-13 Bar Code . . . . . . . . . . . . . . . . . . . . . . . ^BE . . . 89 ~EG 2 Erase Download Graphics . . . . . . . . . . . . . . . . . 16 .91 MicroPDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . ^BF Field Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 ^FB . . . 93 ^BI Industrial 2 of 5 Bar Codes . . . . . . . . . . . . . . . . . . . . . . 166 Field Clock . . . . . . . . . . . . . . . . . . . . . . . . . ^FC . . 95 Standard 2 of 5 Bar Code . . . . . . . . . . . . . . . . . . . ^BJ Programming Guide P1099958-001 1/31/18

4 4 Contents . . . . . . 167 ~JQ Terminate Zebra BASIC Interpreter . . . . . . . . . . 244 ^FD Field Data . . . . . . . . . . . . . . . . . . . . . . . . . ^FH 168 ~JR Power On Reset . . . . . . . . . . . . . . . . . . . . . . . . . 245 Field Hexadecimal Indicator . . . . . . . . . . . . . . . . . ^JS Sensor Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 ^FL . . . . . 170 Font Linking . . . . . . . . . . . . . . . . . . . . . . . . . ^FM Change Backfeed Sequence . . . . . . . . . . . . . . . . 247 ~JS 172 Multiple Field Origin Locations . . . . . . . . . . . . . . . Head Test Interval . . . . . . . . . . . . . . . . . . . . . . . . . 175 Field Number . . . . . . . . . . . . . . . . . . . . . . . . . ^FN ^JT . . . 248 ^FO Configuration Update . . . . . . . . . . . . . . . . . . . . . 249 . . . . . . 176 ^JU Field Origin . . . . . . . . . . . . . . . . . . . . . . . . ^JW . . 250 . . . . 177 ^FP Field Parameter . . . . . . . . . . . . . . . . . . . . . . Set Ribbon Tension . . . . . . . . . . . . . . . . . . . . . Field Reverse Print . . . . . . . . . . . . . . . . . . . . ^FR ~JX Cancel Current Partially Input Format . . . . . . . . . 251 . . . 178 . . . . 179 . . . . 252 Reprint After Error . . . . . . . . . . . . . . . . . . . . . ^JZ ^FS Field Separator . . . . . . . . . . . . . . . . . . . . . . . Kill Battery (Battery Discharge Mode) . . . . . . . . . 253 ^FT Field Typeset . . . . . . . . . . . . . . . . . . . . . . . ~KB . . . . . 180 . . . . . 182 ^FV ^KD Select Date and Time Format (for Real Time Clock) Field Variable . . . . . . . . . . . . . . . . . . . . . . . 254 ^FW Field Orientation . . . . . . . . . . . . . . . . . . . . . . . . . 183 ^KL Define Language . . . . . . . . . . . . . . . . . . . . . . . . . 255 ^FX . . . . . 185 Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . ^KN Define Printer Name . . . . . . . . . . . . . . . . . . . . . . 256 ^GB Graphic Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 . . 257 Define Password . . . . . . . . . . . . . . . . . . . . . . . ^KP ^GC . . . . 188 Graphic Circle . . . . . . . . . . . . . . . . . . . . . . . ^KV . . . . 258 Kiosk Values . . . . . . . . . . . . . . . . . . . . . . . . . ^GD . 189 Graphic Diagonal Line . . . . . . . . . . . . . . . . . . . . . . . . . 262 List Font Links . . . . . . . . . . . . . . . . . . . . . . . ^LF ^GE . . . . 190 Graphic Ellipse . . . . . . . . . . . . . . . . . . . . . . Label Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 ^LH . . . . . 191 Graphic Field . . . . . . . . . . . . . . . . . . . . . . . ^GF . . . . 264 Label Length . . . . . . . . . . . . . . . . . . . . . . . . . ^LL Graphic Symbol . . . . . . . . . . . . . . . . . . . . . . . ^GS . . . 193 . . 265 Label Reverse Print . . . . . . . . . . . . . . . . . . . . . ^LR ~HB Battery Status . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 ^LS . . . . . . 266 Label Shift . . . . . . . . . . . . . . . . . . . . . . . . . Head Diagnostic . . . . . . . . . . . . . . . . . . . . . . . ~HD . . . 195 . . . . . . 267 ^LT Label Top . . . . . . . . . . . . . . . . . . . . . . . . . . ^HF . . . . 196 Host Format . . . . . . . . . . . . . . . . . . . . . . . . . . Set Maintenance Alerts . . . . . . . . . . . . . . . . . . . . . 268 ^MA . . . . 197 Host Graphic . . . . . . . . . . . . . . . . . . . . . . . ^HG ^MC Map Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 ^HH 198 Configuration Label Return . . . . . . . . . . . . . . . . . . ^MD . . 271 Media Darkness . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 ~HI Host Identification . . . . . . . . . . . . . . . . . . . . . . . . 272 Media Feed . . . . . . . . . . . . . . . . . . . . . . . . . ^MF ~HM . . 200 Host RAM Status . . . . . . . . . . . . . . . . . . . . . . ^MI Set Maintenance Information Message . . . . . . . . . 273 ~HQ Host Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 274 ^ML Maximum Label Length . . . . . . . . . . . . . . . . . . . . . . 207 ~HS Host Status Return . . . . . . . . . . . . . . . . . . . . . ^MM Print Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Host Linked Fonts List . . . . . . . . . . . . . . . . . . . . . . 210 ^HT Media Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . 277 ^MN ~HU Return ZebraNet Alert Configuration . . . . . . . . . . . 211 . . 278 Mode Protection . . . . . . . . . . . . . . . . . . . . . . . ^MP ^HV Host Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Media Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 ^MT . . . 213 Host Directory List . . . . . . . . . . . . . . . . . . . . ^HW 81 Set Units of Measurement . . . . . . . . . . . . . . . . . 2 ^MU ^HY . . . 215 Upload Graphics . . . . . . . . . . . . . . . . . . . . . . . ^MW Modify Head Cold Warning . . . . . . . . . . . . . . . . . 282 ^HZ 6 Display Description Information . . . . . . . . . . . . . . 21 Select the Primary Network Device . . . . . . . . . . . 283 ^NC ^ID Object Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 ~NC . . 284 Network Connect . . . . . . . . . . . . . . . . . . . . . . Image Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 ^IL ^ND Change Network Settings . . . . . . . . . . . . . . . . . . . 2 85 Image Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 ^IM . . 287 Network ID Number . . . . . . . . . . . . . . . . . . . . . ^NI Image Save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 ^IS ~NR Set All Network Printers Transparent . . . . . . . . . 288 . . . . . . 223 Cancel All . . . . . . . . . . . . . . . . . . . . . . . . . ~JA ^NS Change Wired Networking Settings . . . . . . . . . . . 289 . . 224 Initialize Flash Memory . . . . . . . . . . . . . . . . . . . ^JB Set Currently Connected Printer Transparent . . . 290 ~NT .225 Reset Optional Memory . . . . . . . . . . . . . . . . . . . ~JB Advanced Text Properties . . . . . . . . . . . . . . . . . . . ^PA 291 ~JC 6 Set Media Sensor Calibration . . . . . . . . . . . . . . . 22 Slew Given Number of Dot Rows . . . . . . . . . . . . . 292 ^PF Enable Communications Diagnostics . . . . . . . . . . 227 ~JD ^PH ~PH Slew to Home Position . . . . . . . . . . . . . . . . 293 . . . 228 Disable Diagnostics . . . . . . . . . . . . . . . . . . . . ~JE ~PL Present Length Addition . . . . . . . . . . . . . . . . . . . . 294 . . . 229 Set Battery Condition . . . . . . . . . . . . . . . . . . . ~JF ^PM Printing Mirror Image of Label . . . . . . . . . . . . . . 2 95 Graphing Sensor Calibration . . . . . . . . . . . . . . . . . 2 30 ~JG . . . 296 ^PN Present Now . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Early Warning Settings . . . . . . . . . . . . . . . . . . . . ^JH ^PO . . . . 297 Print Orientation . . . . . . . . . . . . . . . . . . . . . . ^JI Start ZBI (Zebra BASIC Interpreter) . . . . . . . . . . . . 23 4 ^PP ~PP Programmable Pause . . . . . . . . . . . . . . . . . 298 Start ZBI (Zebra BASIC Interpreter) . . . . . . . . . . . . 236 ~JI ^PQ Print Quantity . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 . . . . . 237 Set Auxiliary Port . . . . . . . . . . . . . . . . . . . . . ^JJ Applicator Reprint . . . . . . . . . . . . . . . . . . . . . . . . 300 ~PR . . . . 239 ~JL Set Label Length . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 ^PR Print Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 ^JM Set Dots per Millimeter . . . . . . . . . . . . . . . . . . . . . . . . 303 Print Start . . . . . . . . . . . . . . . . . . . . . . . . ~PS . . . . 241 Head Test Fatal . . . . . . . . . . . . . . . . . . . . . . ~JN Print Width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 ^PW Head Test Non-Fatal . . . . . . . . . . . . . . . . . . . . ~JO . . 242 Reset Advanced Counters . . . . . . . . . . . . . . . . . . 305 ~RO ~JP 43 Pause and Cancel Format . . . . . . . . . . . . . . . . . 2 P1099958-001 1/31/18 Programming Guide

5 5 Contents Set Serial Communications . . . . . . . . . . . . . . . . . 3 ^SC 06 ZPL Wireless Commands . . . . . . . . . . . . . . 401 . . . . 307 ~SD Set Darkness . . . . . . . . . . . . . . . . . . . . . . . . Set Client Identifier (Option 61) . . . . . . . . . . . . . . . ^KC 402 ^SE Select Encoding Table . . . . . . . . . . . . . . . . . . . . . . 308 Search for Wired Print Server during ^NB ^SF Serialization Field (with a Standard ^FD String) . . 309 403 Network Boot . . . . . . . . . . . . . . . . . . . . . . . . . Set Sensor Intensity . . . . . . . . . . . . . . . . . . . . . ^SI . . . 312 Set SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . ^NN . . . . 404 Set Mode and Language (for Real-Time Clock) . . 313 ^SL ^NP Set Primary/Secondary Device . . . . . . . . . . . . . . . 405 . . . . 315 Serialization Data . . . . . . . . . . . . . . . . . . . . . ^SN . . . . 406 ^NT Set SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Set Offset (for Real-Time Clock) . . . . . . . . . . . . . . 31 ^SO Set Web Authentication Timeout Value . . . . . . . . 407 ^NW . . . . . . 318 Start Print . . . . . . . . . . . . . . . . . . . . . . . . . ^SP 08 Set Antenna Parameters . . . . . . . . . . . . . . . . . . . 4 ^WA . . . 319 Halt ZebraNet Alert . . . . . . . . . . . . . . . . . . . . . ^SQ Set WEP Mode . . . . . . . . . . . . . . . . . . . . . . . . . ^WE . . 409 320 ^SR Set Printhead Resistance . . . . . . . . . . . . . . . . . . Change Wireless Network Settings . . . . . . . . . . . . 411 ^WI . . 321 Set Media Sensors . . . . . . . . . . . . . . . . . . . . . . ^SS Set LEAP Parameters . . . . . . . . . . . . . . . . . . . . . . ^WL 412 Set Date and Time (for Real-Time Clock) . . . . . . 323 ^ST ~WL Print Network Configuration Label . . . . . . . . . . . . 413 . . . 324 Set ZebraNet Alert . . . . . . . . . . . . . . . . . . . . . . ^SX ^WP 414 Set Wireless Password . . . . . . . . . . . . . . . . . . . . ^SZ . . . 326 Set ZPL Mode . . . . . . . . . . . . . . . . . . . . . . . . . Set Transmit Rate . . . . . . . . . . . . . . . . . . . . . . . . 415 ^WR . . 327 Tear-off Adjust Position . . . . . . . . . . . . . . . . . . . ~TA ~WR Reset Wireless Radio Card and Print Server . . . 416 . . . . . . . . . . . Text Blocks . . . . . . . . . . . . . . . ^TB . . . . . 328 Set Wireless Radio Card Values . . . . . . . . . . . . . 417 ^WS ^TO Transfer Object . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 9 Configure Wireless Securities . . . . . . . . . . . . . . . 41 ^WX .331 Print Configuration Label . . . . . . . . . . . . . . . . . . ~WC ^WD Print Directory Label . . . . . . . . . . . . . . . . . . . . . . 332 ZBI Commands . . . . . . . . . . . . . . . . . . . . . . . 427 Write Query . . . . . . . . . . . . . . . . . . . . . . . . . ~WQ . . . . 333 Introduction to Zebra Basic Interpreter (ZBI) . . . . . . . . . 428 . . . . . 339 ^XA Start Format . . . . . . . . . . . . . . . . . . . . . . . . Command and Function Reference Format . . . . . . . . . 429 ^XB Suppress Backfeed . . . . . . . . . . . . . . . . . . . . . . . . 340 . . . . . . 430 Section Organization . . . . . . . . . . . . . . . . . . . . . . . . . 341 ^XF Recall Format . . . . . . . . . . . . . . . . . . . . . . . . Editing Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Recall Graphic . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 ^XG . . . . . . . . . . 433 NEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^XS Set Dynamic Media Calibration . . . . . . . . . . . . . . . 343 REM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 . . 435 ! (EXCLAMATION MARK) . . . . . . . . . . . . . . . . . . . . . ^XZ End Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 . . . . . . . . . . . 436 LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 Printer Sleep . . . . . . . . . . . . . . . . . . . . . . . . ^ZZ AUTONUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 RENUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 ZPL RFID Commands . . . . . . . . . . . . . . . . . . 347 ECHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 RFID Command Overview . . . . . . . . . . . . . . . . . . . . . . . 348 Running and Debugging Commands . . . . . . . . . . . . . . 439 Printer and Firmware Compatibility . . . . . . . . . . . . . . . . 349 . . . . . . . . . . 441 RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^HL or ~HL Return RFID Data Log to Host . . . . . . . . . . 353 . . . . . . . . . 442 CTRL-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 RESTART . . . . . . . . . . . . . . . . . . . . . . . . . . . Calibrate RFID Tag Position . . . . . . . . . . . . . . . . . 3 54 ^HR . . . . . . . . . . 444 STEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^RA Read AFI or DSFID Byte . . . . . . . . . . . . . . . . . . . . 361 DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 62 Define EPC Data Structure . . . . . . . . . . . . . . . . . . 3 ^RB . . . . . . . . . 446 TRACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^RE .364 Enable/Disable E.A.S. Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Read or Write RFID Format . . . . . . . . . . . . . . . . . . 36 ^RF . . . . . . 448 ADDBREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . ^RI Get RFID Tag ID . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 DELBREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 Lock/Unlock RFID Tag Memory . . . . . . . . . . . . . . . 370 ^RL ZPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 . 372 ^RM Enable RFID Motion . . . . . . . . . . . . . . . . . . . . . . Base Types and Expressions . . . . . . . . . . . . . . . . . . . . 450 Detect Multiple RFID Tags in Encoding Field . . . . 373 ^RN LET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 Control and Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 ^RQ Quick Write EPC Data and Passwords . . . . . . . . . 374 . . . . . . . . 461 IF Statements . . . . . . . . . . . . . . . . . . . . . . . . ^RR Specify RFID Retries for a Block or Enable Adaptive . . . . . . . . 462 DO Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . Antenna Selection . . . . . . . . . . . . . . . . . . . . . . 37 6 FOR Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 ^RS Set Up RFID Parameters . . . . . . . . . . . . . . . . . . . . 3 78 GOTO/GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 . . . 383 Read RFID Tag . . . . . . . . . . . . . . . . . . . . . . . . ^RT SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 ^RU Read Unique RFID Chip Serialization . . . . . . . . . . 385 . . . . . . . . . . 466 EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Report RFID Encoding Results . . . . . . . . . . . . . . . 387 ~RV . . . . . . . . . . 467 END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Set RF Power Levels for Read and Write . . . . . . . 388 ^RW . . . . . . . 467 Input and Output . . . . . . . . . . . . . . . . . . . . . . . ^RZ Set RFID Tag Password and Lock Tag . . . . . . . . . 392 OPEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 Encode AFI or DSFID Byte . . . . . . . . . . . . . . . . . . 395 ^WF CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 . . . . . . 471 DATAREADY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 ^WT Write (Encode) Tag . . . . . . . . . . . . . . . . . . . . . . SERVERSOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 ^WV Verify RFID Encoding Operation . . . . . . . . . . . . . . 398 SERVERCLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 CLIENTSOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 1/31/18 Programming Guide P1099958-001

6 6 Contents FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 ACCEPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 . . . . . . . . . . 476 INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . Time and Date Functions . . . . . . . . . . . . . . . . . . . . . . . 552 PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 DATE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 OUTBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 . . . . . . . . . . 555 TIME$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . INBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 . . . . . . . . . . 556 DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 READ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 . . . . . . . . . 481 WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 Set/Get/Do Interactions . . . . . . . . . . . . . . . . . . . . . . . . . . 482 SEARCHTO$ . . . . . . . . . . . . . . . . . . . . . . . . . . . SETVAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 . . . . . . . . . 488 File System . . . . . . . . . . . . . . . . . . . . . . . . . GETVAR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 STORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 Example Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 DIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 SGD Printer Commands . . . . . . . . . . . . . . . . 571 DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 . . . . . . . . . 572 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 Comma Separated Values (CSV) . . . . . . . . . . . . . . . . . . . . . . 573 Command Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 CSVLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . JSON (JavaScript Object Notation) . . . . . . . . . . . . . . . . 574 CSVSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 alerts.add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 TXTLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 alerts.conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 . . . . . . . 498 TXTSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . alerts.configured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 alerts.destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 . . . . 504 REGISTEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . alerts.http.authentication.add . . . . . . . . . . . . . . . . . . . 581 UNREGISTEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . 506 alerts.http.authentication.entries . . . . . . . . . . . . . . . . . 583 HANDLEEVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 alerts.http.authentication.remove . . . . . . . . . . . . . . . . . 584 TRIGGEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 alerts.http.logging.clear . . . . . . . . . . . . . . . . . . . . . . . 585 Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 alerts.http.logging.entries . . . . . . . . . . . . . . . . . . . . . . 586 . . . . . . . . 511 ISERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . alerts.http.logging.max_entries . . . . . . . . . . . . . . . . . 587 . . . . . . . 512 ISWARNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 alerts.http.proxy . . . . . . . . . . . . . . . . . . . . . . SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 . . 589 alerts.tracked_settings.clear_log . . . . . . . . . . . . . . . . . . . . . . . 514 SETERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 alerts.tracked_settings.log_tracked . . . . . . . . . . . . . . CLRERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 alerts.tracked_settings.max_log_entries . . . . . . . . . . . . 591 . . . . . . . 516 ON ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 alerts.tracked_sgds.log . . . . . . . . . . . . . . . . . . . AUXPORT_STEALPIN . . . . . . . . . . . . . . . . . . . . . . . . . 517 . 593 alerts.tracked_sgds.max_log_entries . . . . . . . . . . . . . . . . . 518 AUXPORT_SETPIN . . . . . . . . . . . . . . . . . . . . . . . . alerts.tracked_sgds.zbi_notified . . . . . . . . . . . . . . . . . 594 . . . 519 AUXPORT_GETPIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 apl.enable . . . . . . . . . . . . . . . . . . . . . . . . . . AUXPORT_RELEASEPIN . . . . . . . . . . . . . . . . . . . . . . .520 . . . . 596 apl.framework_version . . . . . . . . . . . . . . . . . . . . String Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 . . . . . . . . 597 apl.version . . . . . . . . . . . . . . . . . . . . . . . . . . LCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 appl.link_os_version . . . . . . . . . . . . . . . . . . . . . . . . . . 598 CHR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 appl.option_board_version . . . . . . . . . . . . . . . . . . . . . . 599 . . . . . . . . . . 523 LTRIM$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 appl.bootblock . . . . . . . . . . . . . . . . . . . . . . . . REPEAT$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 appl.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 . . . . . . . . . 525 RTRIM$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 appl.name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 capture.channel1.count . . . . . . . . . . . . . . . . . . . . . . . . . . 530 SPLITCOUNT . . . . . . . . . . . . . . . . . . . . . . . . . . capture.channel1.data.mime . . . . . . . . . . . . . . . . . . . 604 UCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 . . 605 capture.channel1.data.raw . . . . . . . . . . . . . . . . . . . EXTRACT$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 . . . 606 capture.channel1.delimiter . . . . . . . . . . . . . . . . . . ORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 capture.channel1.max_length . . . . . . . . . . . . . . . . . . 607 . . . . . . . . . . 535 POS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . capture.channel1.port . . . . . . . . . . . . . . . . . . . . . . . . 608 . . . . . . . . . . . 536 LEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 CISDFCRC16 . . . . . . . . . . . . . . . . . . . . . . . . . . Math Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Download Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 STR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 . . . . . . . 611 comm.baud . . . . . . . . . . . . . . . . . . . . . . . . . . . MAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 comm.halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 MIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 . . . . . . 613 comm.pnp_option . . . . . . . . . . . . . . . . . . . . . . . MAXNUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 comm.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 MOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 . . . . . . . . 615 comm.parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 VAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 comm.stop_bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 INTTOHEX$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 cradle.comm.baud . . . . . . . . . . . . . . . . . . . . . . . HEXTOINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 cradle.comm.handshake . . . . . . . . . . . . . . . . . . . . . . . 618 . . . . . . . . 544 Array Functions . . . . . . . . . . . . . . . . . . . . . . . cutter.clean_cutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 . . . . . . . . . 546 REDIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . device.applicator.data_ready . . . . . . . . . . . . . . . . . . . . 620 INSERTROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 . . . . 621 device.applicator.end_print . . . . . . . . . . . . . . . . . . DELROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 . . . . . . 622 device.applicator.feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 ROWSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 device.applicator.media_out . . . . . . . . . . . . . . . . . . . . . . . 550 COLUMNSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . P1099958-001 1/31/18 Programming Guide

7 7 Contents device.slot_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689 . . . . . 624 device.applicator.pause . . . . . . . . . . . . . . . . . . . . device.super_host_status . . . . . . . . . . . . . . . . . . . . . . 690 . . . . . . 625 device.applicator.reprint . . . . . . . . . . . . . . . . . . . device.syslog.clear_log . . . . . . . . . . . . . . . . . . . . . . . . . 691 . . . . . . 626 device.applicator.rfid_void . . . . . . . . . . . . . . . . . device.syslog.configuration . . . . . . . . . . . . . . . . . . . . . . 692 . . . . 627 device.applicator.ribbon_low . . . . . . . . . . . . . . . . . device.syslog.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 device.applicator.ribbon_out . . . . . . . . . . . . . . . . . . . . . 628 . . . . . 695 device.syslog.entries . . . . . . . . . . . . . . . . . . . . . . . . 629 device.applicator.service_required . . . . . . . . . . . . . . . . 696 device.syslog.log_max_file_size . . . . . . . . . . . . . . . . device.applicator.start_print . . . . . . . . . . . . . . . . . . . . . . 630 device.syslog.save_local_file . . . . . . . . . . . . . . . . . . . . 697 . . . . 631 device.bluetooth_installed . . . . . . . . . . . . . . . . . . device.applicator.data_ready_activation . . . . . . . . . . . . 698 . 632 device.command_override.active . . . . . . . . . . . . . . . . . . 699 device.applicator.error_on_pause . . . . . . . . . . . . . . . . . 633 device.command_override.add . . . . . . . . . . . . . . . . . device.applicator.start_print_mode . . . . . . . . . . . . . . . . 700 . . 634 device.command_override.clear . . . . . . . . . . . . . . . . . . . . . 701 device.applicator.voltage . . . . . . . . . . . . . . . . . . . device.command_override.list . . . . . . . . . . . . . . . . . . . . 635 device.unique_id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702 . . . . 636 device.company_contact . . . . . . . . . . . . . . . . . . . . device.unpause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 . . 637 device.configuration_number . . . . . . . . . . . . . . . . . . device.uptime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 . 638 device.cpcl_synchronous_mode . . . . . . . . . . . . . . . . . . . . . . . . 705 device.user_p1 . . . . . . . . . . . . . . . . . . . . . . . . device.cutter_installed . . . . . . . . . . . . . . . . . . . . . . . . . . 639 device.user_p2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706 device.download_connection_timeout . . . . . . . . . . . . . . 6 40 device.user_vars.set_range . . . . . . . . . . . . . . . . . . . . 707 . . . . 641 device.epl_legacy_mode . . . . . . . . . . . . . . . . . . . . device.user_vars.create . . . . . . . . . . . . . . . . . . . . . . . 708 device.feature.bluetooth_le . . . . . . . . . . . . . . . . . . . . . 643 device.xml.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710 device.feature.mcr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 device.feature.lighted_arrows . . . . . . . . . . . . . . . . . . . . 711 device.feature.nfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 . . 712 device.light.ribbon_path_brightness . . . . . . . . . . . . . device.feature.ribbon_cartridge . . . . . . . . . . . . . . . . . . 646 device.light.media_path_brightness . . . . . . . . . . . . . . . 713 device.friendly_name . . . . . . . . . . . . . . . . . . . . . . . . . . . 647 . . . . . . . . 714 display.backlight . . . . . . . . . . . . . . . . . . . . . . device.frontpanel.feedenabled . . . . . . . . . . . . . . . . . . . . 648 . . . . 715 display.backlight_on_time . . . . . . . . . . . . . . . . . . . device.frontpanel.key_press . . . . . . . . . . . . . . . . . . . . . 649 . . . . . 716 display.batch_counter . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 device.frontpanel.line1 . . . . . . . . . . . . . . . . . . . . display.language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717 device.frontpanel.line2 . . . . . . . . . . . . . . . . . . . . . . . . . . 651 . . . . . . . 718 display.load_card . . . . . . . . . . . . . . . . . . . . . . device.frontpanel.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 . . . . 719 display.password.level . . . . . . . . . . . . . . . . . . . . . . . . . . 653 device.host_identification . . . . . . . . . . . . . . . . . . . . . . . . 720 display.root_wml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 device.host_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 display.text . . . . . . . . . . . . . . . . . . . . . . . . . device.idle_display_format . . . . . . . . . . . . . . . . . . . . . . 657 . . 722 file.capture_response.destination . . . . . . . . . . . . . . . . . . . 658 device.idle_display_value . . . . . . . . . . . . . . . . . . head.resolution.in_dpi . . . . . . . . . . . . . . . . . . . . . . . . . . 723 device.internal_wired_setting_location . . . . . . . . . . . . . 659 . . . . . 724 ezpl.head_close_action . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 device.jobs_print . . . . . . . . . . . . . . . . . . . . . . . . . . . 725 ezpl.label_length_max . . . . . . . . . . . . . . . . . . . . . . . . . . 661 device.languages . . . . . . . . . . . . . . . . . . . . . . . ezpl.label_sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 device.light.cover_open_brightness . . . . . . . . . . . . . . . . 662 ezpl.manual_calibration . . . . . . . . . . . . . . . . . . . . . . . . 727 device.light.head_open_brightness . . . . . . . . . . . . . . . . 663 ezpl.media_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 . . . . . . . 664 device.location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729 ezpl.power_up_action . . . . . . . . . . . . . . . . . . . . . device.ltu_installed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 . . . . . . . 730 ezpl.print_method . . . . . . . . . . . . . . . . . . . . . . device.orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 . . . . . . . . 731 ezpl.print_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 device.pause . . . . . . . . . . . . . . . . . . . . . . . . . device.pnp_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 ezpl.reprint_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 . . . . . 669 device.pmcu.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733 ezpl.take_label . . . . . . . . . . . . . . . . . . . . . . . device.position.accuracy . . . . . . . . . . . . . . . . . . . . . . . . 670 . . . . . . . . . 734 ezpl.tear_off . . . . . . . . . . . . . . . . . . . . . . . . device.position.altitude . . . . . . . . . . . . . . . . . . . . . . . . . . 671 . . . . . . . . . . 735 file.delete . . . . . . . . . . . . . . . . . . . . . . . . . . device.position.latitude . . . . . . . . . . . . . . . . . . . . . . . . . . 672 . . . . . . . . . . . . 736 file.dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 device.position.longitude . . . . . . . . . . . . . . . . . . . . . . . . . . . 737 file.dir_format . . . . . . . . . . . . . . . . . . . . . . . device.print_2key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674 . . . . . . . . . . . 738 file.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 device.print_reprogram_2key . . . . . . . . . . . . . . . . . file.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739 76 device.product_name_submodel . . . . . . . . . . . . . . . . . 6 formats.cancel_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 device.prompted_network_reset . . . . . . . . . . . . . . . . . . 741 head.darkness_switch_enable . . . . . . . . . . . . . . . . . .677 . . . . . 743 head.darkness_switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678 device.reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744 head.element_test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 device.restore_defaults . . . . . . . . . . . . . . . . . . . head.latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 . . . . 680 device.rewinder_installed . . . . . . . . . . . . . . . . . . . . . . . . . . . 746 input.capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 device.save_2key . . . . . . . . . . . . . . . . . . . . . . . interface.network.active.arp_interval . . . . . . . . . . . . . . . 747 . . . . . 682 device.sensor_select . . . . . . . . . . . . . . . . . . . . . interface.network.active.cable_type . . . . . . . . . . . . . . . 748 device.serial_number.option_board_date . . . . . . . . . . 683 interface.network.active.dhcp_received_host_name . . 749 device.serial_numbers.control_panel_date . . . . . . . . . 684 interface.network.active.gateway . . . . . . . . . . . . . . . . . 750 .685 device.serial_numbers.mlb_date . . . . . . . . . . . . . . . . interface.network.active.ip_addr . . . . . . . . . . . . . . . . . . 751 . . 686 device.serial_numbers.processor . . . . . . . . . . . . . . . . 752 interface.network.active.mac_addr . . . . . . . . . . . . . . . . . . 687 device.set_clock_to_build_date . . . . . . . . . . . . . . . . . . 753 interface.network.active.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . 688 device.slot_1 . . . . . . . . . . . . . . . . . . . . . . . . P1099958-001 Programming Guide 1/31/18

8 8 Contents netmanage.avalanche.interval_update . . . . . . . . . . . . . 8 19 interface.network.active.netmask . . . . . . . . . . . . . . . . . . 754 0 netmanage.avalanche.model_name . . . . . . . . . . . . . . . 82 . . . 755 interface.network.active.protocol . . . . . . . . . . . . . . . 821 netmanage.avalanche.set_property . . . . . . . . . . . . . . . interface.network.active.protocol_error . . . . . . . . . . . . . 756 netmanage.avalanche.startup_update . . . . . . . . . . . . . 8 22 interface.network.active.rx_errors . . . . . . . . . . . . . . . . . 757 netmanage.avalanche.tcp_connection_timeout . . . . . . 823 . . 758 interface.network.active.rx_packets . . . . . . . . . . . . . . 824 netmanage.avalanche.terminal_id . . . . . . . . . . . . . . . 759 interface.network.active.server_address . . . . . . . . . . . . 5 netmanage.avalanche.text_msg.beep . . . . . . . . . . . . . 82 . . 760 interface.network.active.protocol_error . . . . . . . . . . . netmanage.avalanche.text_msg.display . . . . . . . . . . . 82 6 . . . 761 interface.network.active.speed . . . . . . . . . . . . . . . . 827 netmanage.avalanche.text_msg.print . . . . . . . . . . . . . . . . 762 interface.network.active.tx_errors . . . . . . . . . . . . . . netmanage.avalanche.udp_timeout . . . . . . . . . . . . . . . 828 interface.network.active.tx_packets . . . . . . . . . . . . . . . . 763 . . . 829 netmanage.error_code . . . . . . . . . . . . . . . . . . . . . interface.network.active.wins_addr . . . . . . . . . . . . . . . . 764 netmanage.state_code . . . . . . . . . . . . . . . . . . . . . . . . 830 interface.network.settings_require_reset . . . . . . . . . . . 7 65 netmanage.status_code . . . . . . . . . . . . . . . . . . . . . . . 831 ip.firewall.whitelist_in . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 odometer.cut_marker_count . . . . . . . . . . . . . . . . . . . . 832 ip.https.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768 odometer.headclean . . . . . . . . . . . . . . . . . . . . . . . . . . . 833 . . . . . . . . . . 769 ip.https.port . . . . . . . . . . . . . . . . . . . . . . . . odometer.headnew . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834 . . . . . 770 ip.ping_gateway_interval . . . . . . . . . . . . . . . . . . . . . . . 835 odometer.label_dot_length . . . . . . . . . . . . . . . . . . . . . . . . . 771 ip.pop3.print_body . . . . . . . . . . . . . . . . . . . . . . odometer.media_marker_count . . . . . . . . . . . . . . . . . 836 . . . . . . 772 ip.pop3.print_headers . . . . . . . . . . . . . . . . . . . . odometer.media_marker_count1 . . . . . . . . . . . . . . . . . 837 ip.pop3.save_attachments . . . . . . . . . . . . . . . . . . . . . . . 773 odometer.media_marker_count2 . . . . . . . . . . . . . . . . . 838 ip.pop3.verbose_headers . . . . . . . . . . . . . . . . . . . . . . . 774 . . . . 839 odometer.retracts_count . . . . . . . . . . . . . . . . . . . . ip.tls.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775 . . . . 840 odometer.rfid.valid_resettable . . . . . . . . . . . . . . . . . . . . . . . . . . . 777 ip.tls.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841 odometer.rfid.void_resettable . . . . . . . . . . . . . . . . ip.tls.port_json_config . . . . . . . . . . . . . . . . . . . . . . . . . . 778 odometer.total_cuts . . . . . . . . . . . . . . . . . . . . . . . . . . 842 . . . . . . . 779 log.reboot.code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843 odometer.total_print_length . . . . . . . . . . . . . . . . . . . . . . . 780 log.reboot.codes . . . . . . . . . . . . . . . . . . . . . . . . . . . 844 odometer.total_label_count . . . . . . . . . . . . . . . . . log.reboot.reason . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 . . . 845 odometer.user_label_count . . . . . . . . . . . . . . . . . . log.reboot.report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782 odometer.user_label_count[1|2] . . . . . . . . . . . . . . . . . . 846 mcr.crypt.enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783 odometer.latch_open_count . . . . . . . . . . . . . . . . . . . . . 847 . . . . . . . . 784 mcr.cancel . . . . . . . . . . . . . . . . . . . . . . . . . . parallel_port.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848 . . . . . 785 mcr.crypt.key_mgmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849 parallel_port.present . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 mcr.crypt.algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 851 power.average_current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787 mcr.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . power.battery_led_blink_rate . . . . . . . . . . . . . . . . . . . 852 mcr.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788 power.battery_led_enable . . . . . . . . . . . . . . . . . . . . . . 853 media.bar_location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 power.battery_led_off_duration . . . . . . . . . . . . . . . . . . 854 . . . 790 media.cartridge.part_number . . . . . . . . . . . . . . . . . . power.battery_led_on_duration . . . . . . . . . . . . . . . . . . 855 . . . . . . . 791 media.cut_now . . . . . . . . . . . . . . . . . . . . . . . . . power.battery_replacement_cyclecount_threshold . . . 856 media.darkness_mode . . . . . . . . . . . . . . . . . . . . . . . . . . 792 power.dtr_power_off . . . . . . . . . . . . . . . . . . . . . . . . . . . 857 media.draft_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 . . . . 859 power.energy_star.enable . . . . . . . . . . . . . . . . . . . . . . . . . 794 media.feed_skip . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861 power.energy_star.timeout . . . . . . . . . . . . . . . . . . media.media_low.external . . . . . . . . . . . . . . . . . . . . . . . 795 power.label_queue.shutdown . . . . . . . . . . . . . . . . . . . 862 media.media_low.warning . . . . . . . . . . . . . . . . . . . . . . . 796 media.part_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797 . . . 863 power.power_on_mode . . . . . . . . . . . . . . . . . . . . . . media.present.cut_amount . . . . . . . . . . . . . . . . . . . . . . 798 . . . . . 864 power.shutdown . . . . . . . . . . . . . . . . . . . . . . . . media.present.eject . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 . . . . . . . . . . 865 print.tone . . . . . . . . . . . . . . . . . . . . . . . . . . media.present.length_addition . . . . . . . . . . . . . . . . . . . . 800 print.troubleshooting_label_print . . . . . . . . . . . . . . . . . . 866 . . . . 801 media.present.loop_length . . . . . . . . . . . . . . . . . . . . . . . . . 867 rfid.adaptive_antenna . . . . . . . . . . . . . . . . . . . . media.present.loop_length_max . . . . . . . . . . . . . . . . . . 802 . . . . . . 868 rfid.antenna_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . 803 media.present.cut_margin . . . . . . . . . . . . . . . . . . . DNP - rfid.calibration_maximum_power . . . . . . . . . . . . 8 69 . . 804 media.present.present_timeout . . . . . . . . . . . . . . . . . rfid.country_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870 media.present.present_type . . . . . . . . . . . . . . . . . . . . . 805 . . . . . . . . . 871 rfid.enable . . . . . . . . . . . . . . . . . . . . . . . . . . media.printmode . . . . . . . . . . . . . . . . . . . . . . . rfid.error.response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872 . . . . . . . 806 . . . . . . 873 rfid.hop_table_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808 media.speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874 rfid.position.program . . . . . . . . . . . . . . . . . . . . . media.serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 rfid.reader_1.antenna_port . . . . . . . . . . . . . . . . . . . . . . 876 . . . . . . . 810 memory.flash_free . . . . . . . . . . . . . . . . . . . . . . . . . . . 879 rfid.reader_1.power.read . . . . . . . . . . . . . . . . . . . memory.flash_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 rfid.reader_1.power.write . . . . . . . . . . . . . . . . . . . . . . . . 880 memory.ram_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812 rfid.reader_1.power.single_power . . . . . . . . . . . . . . . . . 881 . . . . . . 813 memory.ram_size . . . . . . . . . . . . . . . . . . . . . . . . . . . 882 rfid.reader_1.firmware_version . . . . . . . . . . . . . . . . netmanage.avalanche.agent_addr . . . . . . . . . . . . . . . . 814 . . 883 rfid.reader_1.hardware_version . . . . . . . . . . . . . . . . netmanage.avalanche.available_agent . . . . . . . . . . . . . 81 5 rfid.reader_1.model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884 816 netmanage.avalanche.available_port . . . . . . . . . . . . . . . . . . . . 885 rfid.recipe_version . . . . . . . . . . . . . . . . . . . . . . 7 netmanage.avalanche.encryption_type . . . . . . . . . . . . . 81 rfid.region_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886 . . . 818 netmanage.avalanche.interval . . . . . . . . . . . . . . . . 1/31/18 Programming Guide P1099958-001

9 9 Contents zbi.control.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953 . . . . . . . . . 887 rfid.tag.calibrate . . . . . . . . . . . . . . . . . . . . . . zbi.control.step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954 rfid.tag.data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888 zbi.control.terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . 955 . . . . . . . 889 rfid.tag.read.content . . . . . . . . . . . . . . . . . . . . . zbi.control.variable_name . . . . . . . . . . . . . . . . . . . . . . . 956 . . . . . . . 890 rfid.tag.read.execute . . . . . . . . . . . . . . . . . . . . zbi.control.variable_value . . . . . . . . . . . . . . . . . . . . . . . 957 rfid.tag.read.result_line1 . . . . . . . . . . . . . . . . . . . . . . . . 891 . . . . . . . . . 958 zbi.enable . . . . . . . . . . . . . . . . . . . . . . . . . . rfid.tag.read.result_line2 . . . . . . . . . . . . . . . . . . . . . . . . 892 zbi.key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959 rfid.tag.read.result_line1_alternate . . . . . . . . . . . . . . . . 893 zbi.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960 . . . 894 rfid.tag.read.result_line2_alternate . . . . . . . . . . . . . zbi.program_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961 rfid.tag.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895 zbi.reseller_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962 rfid.tag.test.content . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 zbi.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963 rfid.tag.test.execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897 . . 964 zbi.running_program_name . . . . . . . . . . . . . . . . . . . rfid.tag.test.result_line1 . . . . . . . . . . . . . . . . . . . . . . . . . 898 zbi.start_info.execute . . . . . . . . . . . . . . . . . . . . . . . . . . 965 rfid.tag.test.result_line2 . . . . . . . . . . . . . . . . . . . . . . . . . 899 zbi.start_info.file_name . . . . . . . . . . . . . . . . . . . . . . . . . 966 rfid.tag.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900 zbi.start_info.memory_alloc . . . . . . . . . . . . . . . . . . . . . 967 . . . . . . 903 ribbon.serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968 zbi.state . . . . . . . . . . . . . . . . . . . . . . . . . . . ribbon.part_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904 . . . . . . . . . . 969 zpl.caret . . . . . . . . . . . . . . . . . . . . . . . . . . . rtc.timezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905 zpl.control_character . . . . . . . . . . . . . . . . . . . . . . . . . . . 970 . . . . . . 907 sensor.cover_open . . . . . . . . . . . . . . . . . . . . . . . zpl.delimiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971 sensor.paper_supply . . . . . . . . . . . . . . . . . . . . . . . . . . 908 zpl.label_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972 . . . . . . . 909 sensor.peeler . . . . . . . . . . . . . . . . . . . . . . . . . zpl.left_position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973 sensor.self_adjusting_enable . . . . . . . . . . . . . . . . . . . . . 911 zpl.system_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 usb.device.device_id_string . . . . . . . . . . . . . . . . . . . . . . 912 . . . . . . . . . . . . . . . . zpl.system_status . . . . . . . . 976 . . . . . . . . 913 usb.device.device_unique_id . . . . . . . . . . . . . . . . . zpl.zpl_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979 . . . . 914 usb.device.device_version . . . . . . . . . . . . . . . . . . . . . . . . . . . 980 zpl.zpl_override . . . . . . . . . . . . . . . . . . . . . . . usb.device.manufacturer_string . . . . . . . . . . . . . . . . . . . 915 . . . . . . 981 zpl.relative_darkness . . . . . . . . . . . . . . . . . . . . . . . . . . 916 usb.device.product_id . . . . . . . . . . . . . . . . . . . . usb.device.product_string . . . . . . . . . . . . . . . . . . . . . . . 917 usb.device.serial_string . . . . . . . . . . . . . . . . . . . . . . . . . 918 SGD Wired Commands . . . . . . . . . . . . . . . . . 983 . . . . . . 919 usb.device.vendor_id . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985 . . . . . . . . . . 920 usb.halt . . . . . . . . . . . . . . . . . . . . . . . . . . . Command Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 986 . . . . . . 921 usb.host.fn_field_data . . . . . . . . . . . . . . . . . . . . external_wired.check . . . . . . . . . . . . . . . . . . . . . . . . . . 987 . . . . . . . 922 usb.host.fn_last_field . . . . . . . . . . . . . . . . . . . . . . . . . . 988 external_wired.ip.addr . . . . . . . . . . . . . . . . . . . . usb.host.hid_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923 . . . . 989 external_wired.ip.arp_interval . . . . . . . . . . . . . . . . usb.host.keyboard_input . . . . . . . . . . . . . . . . . . . . . . . . 924 external_wired.ip.default_addr_enable . . . . . . . . . . . . . 990 usb.host.lock_out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925 external_wired.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . 991 usb.host.mass_storage_count . . . . . . . . . . . . . . . . . . . . 926 external_wired.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . 992 usb.host.read_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927 . . . 993 external_wired.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . 928 usb.host.read_list_print_delay . . . . . . . . . . . . . . . . external_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . 994 usb.host.template_list . . . . . . . . . . . . . . . . . . . . . . . . . . 929 . . . 995 external_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . usb.host.template_print_amount . . . . . . . . . . . . . . . . . . 930 external_wired.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . 996 . . . . . . . . 931 usb.host.write_list . . . . . . . . . . . . . . . . . . . . . external_wired.ip.netmask . . . . . . . . . . . . . . . . . . . . . . 997 usb.mirror.appl_path . . . . . . . . . . . . . . . . . . . . . . . . . . . 932 . . . . . . 998 external_wired.ip.port . . . . . . . . . . . . . . . . . . . . usb.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933 . . . . . 999 external_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . . . 934 usb.mirror.enable . . . . . . . . . . . . . . . . . . . . . . . external_wired.ip.timeout.enable . . . . . . . . . . . . . . . . 1000 usb.mirror.enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935 . . 1001 external_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . . . . . . 936 usb.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . 1002 external_wired.ip.v6.addr . . . . . . . . . . . . . . . . . . usb.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . . . . . . 937 . . 1003 external_wired.ip.v6.gateway . . . . . . . . . . . . . . . . . usb.mirror.feedback.odometer . . . . . . . . . . . . . . . . . . . . 938 . . 1004 external_wired.ip.v6.prefix_length . . . . . . . . . . . . . . . . . . . 939 usb.mirror.feedback.path . . . . . . . . . . . . . . . . . . . external_wired.mac_addr . . . . . . . . . . . . . . . . . . . . . . 1005 usb.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940 external_wired.mac_raw . . . . . . . . . . . . . . . . . . . . . . . 1006 usb.mirror.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941 internal_wired.8021x.password . . . . . . . . . . . . . . . . . . 1007 . . . . . . . 942 usb.mirror.last_time . . . . . . . . . . . . . . . . . . . . . internal_wired.8021x.peap.validate_server_certificate 1008 usb.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943 internal_wired.8021x.peap.anonymous_identity . . . . . 1009 . . . . . . 944 usb.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . internal_wired.8021x.private_key_password . . . . . . . 1010 usb.mirror.success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945 internal_wired.8021x.security . . . . . . . . . . . . . . . . . . . 1011 . . . . . 946 usb.mirror.success_time . . . . . . . . . . . . . . . . . . . internal_wired.8021x.ttls_tunnel . . . . . . . . . . . . . . . . . 1012 . . . . . 947 zbi.control.add_breakpoint . . . . . . . . . . . . . . . . . . internal_wired.8021x.username . . . . . . . . . . . . . . . . . 1013 . . . . . . . . 948 zbi.control.break . . . . . . . . . . . . . . . . . . . . . . . internal_wired.activity_led . . . . . . . . . . . . . . . . . . . . . 1014 . . . . 949 zbi.control.clear_breakpoints . . . . . . . . . . . . . . . . . internal_wired.auto_switchover . . . . . . . . . . . . . . . . . 1015 zbi.control.delete_breakpoint . . . . . . . . . . . . . . . . . . . . . 950 internal_wired.enable . . . . . . . . . . . . . . . . . . . . . . . . . 1016 . . . . . . 951 zbi.control.line_number . . . . . . . . . . . . . . . . . . . . . . . 1017 internal_wired.installed . . . . . . . . . . . . . . . . . . . . . . . . . . . 952 zbi.control.restart . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . 1018 P1099958-001 Programming Guide 1/31/18

10 10 Contents . 1082 ip.dhcp.auto_provision_enable . . . . . . . . . . . . . . . . . . . . . 1019 internal_wired.ip.arp_interval . . . . . . . . . . . . . . . . ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083 1020 internal_wired.ip.default_addr_enable . . . . . . . . . . . . . ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084 internal_wired.ip.dhcp.arp_verify . . . . . . . . . . . . . . . . 1021 . . . . . 1085 ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . 1022 . . . . . . 1086 ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . 1023 . . . . . . . 1087 ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . . 1024 internal_wired.ip.dhcp.cid_enable . . . . . . . . . . . . . . ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088 internal_wired.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . 1025 ip.dhcp.cid_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089 internal_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . 1026 ip.dhcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 internal_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . 1027 . . . 1091 ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.lease.last_attempt . . . . . . . . . . 1 028 . . . . . 1092 ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . . 1029 internal_wired.ip.dhcp.lease.length . . . . . . . . . . . . . . . . . . 1093 ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . 1030 internal_wired.ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . 1094 ip.dhcp.ntp.enable . . . . . . . . . . . . . . . . . . . . . . . 1031 internal_wired.ip.dhcp.lease.time_left . . . . . . . . . . . . ip.dhcp.ntp.received_servers . . . . . . . . . . . . . . . . . . 1095 internal_wired.ip.dhcp.option12 . . . . . . . . . . . . . . . . . 1032 . . . . . . 1096 ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . 033 internal_wired.ip.dhcp.option12_format . . . . . . . . . . . 1 . . . . 1097 ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . 1034 internal_wired.ip.dhcp.option12_value . . . . . . . . . . . . . . . . 1098 ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.requests_per_session 1035 ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . . . . . 1099 . . . 1036 internal_wired.ip.dns.servers . . . . . . . . . . . . . . . . . . 1100 ip.dhcp.requests_per_session . . . . . . . . . . . . . . . . . . . . . 1037 internal_wired.ip.gateway . . . . . . . . . . . . . . . . . . ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . . . . . . 1101 . . . . 1038 internal_wired.ip.netmask . . . . . . . . . . . . . . . . . . ip.dhcp.user_class_id . . . . . . . . . . . . . . . . . . . . . . . . 1102 internal_wired.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 ip.dhcp.vendor_class_id . . . . . . . . . . . . . . . . . . . . . . . 1103 . . . 1040 internal_wired.ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . 1104 ip.dns.domain . . . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.port_json_config . . . . . . . . . . . . . . . 1041 . . . . . . . 1105 ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . 1042 ip.ftp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106 . . 1043 internal_wired.ip.timeout.enable . . . . . . . . . . . . . . . ip.ftp.execute_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 . . . 1044 internal_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . . 1108 ip.ftp.request_password . . . . . . . . . . . . . . . . . . . . . . 1045 internal_wired.ip.wins.addr . . . . . . . . . . . . . . . . . . . . . . . . . 1109 ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.wins.permanent_source . . . . . . . . . 1046 ip.http.admin_name . . . . . . . . . . . . . . . . . . . . . . . . . . . .1110 . . . . 1047 internal_wired.mac_addr . . . . . . . . . . . . . . . . . . . . . . .1111 ip.http.admin_password . . . . . . . . . . . . . . . . . . . . . . . . 1048 internal_wired.mac_raw . . . . . . . . . . . . . . . . . . . . ip.http.custom_link_name . . . . . . . . . . . . . . . . . . . . . . .1112 ip.http.custom_link_url . . . . . . . . . . . . . . . . . . . . . . . . .1113 SGD Wireless Commands . . . . . . . . . . . . . 1051 ip.http.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1114 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052 ip.http.faq_url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1115 . . . . 1053 Command Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1116 ip.http.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054 bluetooth.address . . . . . . . . . . . . . . . . . . . . . . ip.lpd.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1117 . . . . . 1055 bluetooth.afh_map . . . . . . . . . . . . . . . . . . . . . . . ip.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1118 . . . . 1056 bluetooth.afh_map_curr . . . . . . . . . . . . . . . . . . . . ip.mirror.appl_path . . . . . . . . . . . . . . . . . . . . . . . . . . . .1119 bluetooth.afh_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057 . . . . . . . . 1120 ip.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058 bluetooth.authentication . . . . . . . . . . . . . . . . . . . ip.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . . . 1121 . . . . . 1059 bluetooth.bluetooth_pin . . . . . . . . . . . . . . . . . . . . . . . . 1122 ip.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . bluetooth.clear_bonding_cache . . . . . . . . . . . . . . . . . 1060 ip.mirror.feedback.freq . . . . . . . . . . . . . . . . . . . . . . . . 1123 bluetooth.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 ip.mirror.feedback.odometer . . . . . . . . . . . . . . . . . . . 1124 . . . . . 1062 bluetooth.discoverable . . . . . . . . . . . . . . . . . . . . . . . . . 1125 ip.mirror.feedback.path . . . . . . . . . . . . . . . . . . . . . . . . . 1063 bluetooth.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126 ip.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . bluetooth.enable_reconnect . . . . . . . . . . . . . . . . . . . . . 1064 ip.mirror.freq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127 bluetooth.friendly_name . . . . . . . . . . . . . . . . . . . . . . . . 1065 . . . . . . 1128 ip.mirror.freq_hours . . . . . . . . . . . . . . . . . . . . bluetooth.json_config_channel_enable . . . . . . . . . . . . 106 6 . . . . . . 1129 ip.mirror.interface . . . . . . . . . . . . . . . . . . . . . bluetooth.le.controller_mode . . . . . . . . . . . . . . . . . . . 1067 ip.mirror.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130 .1068 bluetooth.le.minimum_security . . . . . . . . . . . . . . . . . . . . . . . 1131 ip.mirror.last_time . . . . . . . . . . . . . . . . . . . . . bluetooth.local_name . . . . . . . . . . . . . . . . . . . . . . . . . . 1069 ip.mirror.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132 bluetooth.minimum_security_mode . . . . . . . . . . . . . . 1070 . . . . . . 1133 ip.mirror.password . . . . . . . . . . . . . . . . . . . . . bluetooth.radio_auto_baud . . . . . . . . . . . . . . . . . . . . . 1071 . . . . . . . . 1134 ip.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072 bluetooth.radio_version . . . . . . . . . . . . . . . . . . . . . . . . . 1135 ip.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . bluetooth.short_address . . . . . . . . . . . . . . . . . . . . . . . 1073 . . . . . . . 1136 ip.mirror.server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074 bluetooth.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137 ip.mirror.success . . . . . . . . . . . . . . . . . . . . . . card.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075 ip.mirror.success_time . . . . . . . . . . . . . . . . . . . . . . . . 1138 card.inserted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 . . . . . 1139 ip.mirror.username . . . . . . . . . . . . . . . . . . . . . . ip.active_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077 . . . . . . . 1140 ip.mirror.version . . . . . . . . . . . . . . . . . . . . . . ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141 . . . . . . . . 1079 ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . ip.ntp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142 . . . . . . . 1080 ip.bootp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143 ip.ntp.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081 ip.dhcp.arp_verify . . . . . . . . . . . . . . . . . . . . . . P1099958-001 Programming Guide 1/31/18

11 11 Contents . . . 1212 wlan.authentication_error . . . . . . . . . . . . . . . . . . ip.ntp.servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144 wlan.available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213 ip.pop3.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145 wlan.allowed_band . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214 ip.pop3.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146 . . . 1215 wlan.adhocautomode . . . . . . . . . . . . . . . . . . . . . . ip.pop3.poll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147 . . . . 1216 wlan.adhocchannel . . . . . . . . . . . . . . . . . . . . . . . ip.pop3.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148 . . . . . . 1217 wlan.associated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149 ip.pop3.username . . . . . . . . . . . . . . . . . . . . . . . wlan.auth_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218 ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150 wlan.bssid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219 ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151 wlan.channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 ip.port_json_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152 . . . . 1221 wlan.channel_mask . . . . . . . . . . . . . . . . . . . . . . . ip.port_single_conn . . . . . . . . . . . . . . . . . . . . . . . . . . 1153 wlan.country_code . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222 1154 ip.port_single_conn_idle_timeout . . . . . . . . . . . . . . . . . . . . 1223 wlan.current_tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155 ip.primary_network . . . . . . . . . . . . . . . . . . . . . wlan.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224 ip.smtp.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156 wlan.encryption_index . . . . . . . . . . . . . . . . . . . . . . . . . 1225 ip.smtp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157 wlan.encryption_key[1|2|3|4]1 . . . . . . . . . . . . . . . . . . . 1226 ip.smtp.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158 . . . 1227 wlan.encryption_mode . . . . . . . . . . . . . . . . . . . . . 1159 ip.snmp.get_community_name . . . . . . . . . . . . . . . . . . wlan.essid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228 1160 ip.snmp.set_community_name . . . . . . . . . . . . . . . . . . wlan.firmware_version . . . . . . . . . . . . . . . . . . . . . . . . 1229 1161 ip.snmp.trap_community_name . . . . . . . . . . . . . . . . . . wlan.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230 ip.snmp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162 . . . . . . 1231 wlan.ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163 ip.tcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . wlan.ip.default_addr_enable . . . . . . . . . . . . . . . . . . . . 1232 ip.telnet.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164 wlan.ip.dhcp.arp_verify . . . . . . . . . . . . . . . . . . . . . . . 1233 ip.tcp.nagle_algorithm . . . . . . . . . . . . . . . . . . . . . . . . 1165 wlan.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . . 1234 . . . . . . . 1166 ip.udp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235 wlan.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . 1167 weblink.cloud_connect.enable . . . . . . . . . . . . . . . . . . . . . 1236 wlan.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . . . . 1168 weblink.enable . . . . . . . . . . . . . . . . . . . . . . . wlan.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . 169 weblink.ip.conn[1|2].authentication.add . . . . . . . . . . . 1 . . . . . 1237 1 weblink.ip.conn[1|2].authentication.entries . . . . . . . . 117 . . . . . 1238 wlan.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . 2 weblink.ip.conn[1|2].authentication.remove . . . . . . . . . 117 . . . . . 1239 wlan.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . weblink.ip.conn[1|2].location . . . . . . . . . . . . . . . . . . 1173 wlan.ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . 1240 weblink.ip.conn[1|2].num_connections . . . . . . . . . . 1174 wlan.ip.dhcp.lease.length . . . . . . . . . . . . . . . . . . . . . . 1241 wlan.ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . 1242 weblink.ip.conn[1|2].maximum_simultaneous_ wlan.ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . 1243 connections 1175 . . . . 1244 wlan.ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . weblink.ip.conn[1|2].proxy . . . . . . . . . . . . . . . . . . . 1176 wlan.ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . 1245 weblink.ip.conn[1|2].retry_interval . . . . . . . . . . . . . . . 1178 wlan.ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . 1246 weblink.ip.conn[1|2].test.location . . . . . . . . . . . . . .1179 wlan.ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . 1247 1181 weblink.ip.conn[1|2].test.retry_interval . . . . . . . . . . . 1248 wlan.ip.dhcp.requests_per_session . . . . . . . . . . . . . . weblink.ip.conn[1|2].retry_interval_random_max . . . . . 1182 . . 1249 wlan.ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . . 1184 weblink.ip.conn[1|2].test.test_on . . . . . . . . . . . . . . . . . . . 1250 wlan.ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . . 1185 weblink.logging.clear . . . . . . . . . . . . . . . . . . . . wlan.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251 . . 1186 weblink.logging.entries . . . . . . . . . . . . . . . . . . . wlan.ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1252 weblink.logging.max_entries . . . . . . . . . . . . . . . . . 1 187 wlan.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253 .1188 weblink.printer_reset_required . . . . . . . . . . . . . . . wlan.ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . . . 1254 . . 1189 weblink.restore_defaults . . . . . . . . . . . . . . . . . . wlan.ip.port_json_config . . . . . . . . . . . . . . . . . . . . . . 1255 weblink.zebra_connector.authentication.add . . . . . . 1190 wlan.ip.protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256 weblink.zebra_connector.authentication.entries . . . . 1192 wlan.ip.timeout.enable . . . . . . . . . . . . . . . . . . . . . . . . 1257 weblink.zebra_connector.authentication.remove . . . 1193 . . . . . 1258 wlan.ip.timeout.value . . . . . . . . . . . . . . . . . . . . . . 1194 weblink.zebra_connector.enable . . . . . . . . . . . . . . . . . . . . . 1259 wlan.ip.wins.addr . . . . . . . . . . . . . . . . . . . . . . . . . 1195 weblink.zebra_connector.proxy . . . . . . . . . . . . . . . . 1260 wlan.ip.wins.permanent_source . . . . . . . . . . . . . . . . . 1197 weblink.zebra_connector.version . . . . . . . . . . . . . . . wlan.keep_alive.enable . . . . . . . . . . . . . . . . . . . . . . . . 1261 . . . 1199 wlan.11ac.80mhz_enable . . . . . . . . . . . . . . . . . . . . . . . . 1262 wlan.keep_alive.timeout . . . . . . . . . . . . . . . . . . . wlan.11d.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200 . . . . . 1263 wlan.kerberos.kdc . . . . . . . . . . . . . . . . . . . . . . . wlan.11n.20mhz_only . . . . . . . . . . . . . . . . . . . . . . . . . . 1201 . . . . 1264 wlan.kerberos.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202 wlan.11n.aggregation . . . . . . . . . . . . . . . . . . . . . wlan.kerberos.password . . . . . . . . . . . . . . . . . . . . . . . 1265 . . . . . . 1203 wlan.11n.greenfield . . . . . . . . . . . . . . . . . . . . . . . . . . 1266 wlan.kerberos.realm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204 wlan.11n.rifs . . . . . . . . . . . . . . . . . . . . . . . . . wlan.kerberos.username . . . . . . . . . . . . . . . . . . . . . . . 1267 wlan.11n.short_gi_40mhz . . . . . . . . . . . . . . . . . . . . . . 1205 wlan.leap_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268 . . . 1206 wlan.11n.short_gi_20mhz . . . . . . . . . . . . . . . . . . . wlan.leap_password . . . . . . . . . . . . . . . . . . . . . . . . . . 1269 . . . . . 1207 wlan.8021x.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270 wlan.leap_username . . . . . . . . . . . . . . . . . . . . . . wlan.8021x.validate_peap_server_certificate . . . . . . . 1208 . . . . . . 1271 wlan.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209 wlan.active_channels . . . . . . . . . . . . . . . . . . . . . wlan.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1272 wlan.adhoc_last_channel . . . . . . . . . . . . . . . . . . . . . . 1210 . . . . 1273 wlan.operating_mode . . . . . . . . . . . . . . . . . . . . . . . . . . 1211 wlan.authenticated . . . . . . . . . . . . . . . . . . . . . . 1/31/18 Programming Guide P1099958-001

12 12 Contents . . . . . . 1274 wlan.password . . . . . . . . . . . . . . . . . . . . . . . . . Error Detection Protocol . . . . . . . . . . . . . . 1353 . . . 1275 wlan.permitted_channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276 wlan.poor_signal_threshold . . . . . . . . . . . . . . . . . . Request Packet Formats from the Host Computer . . . 1356 . . . . . . . 1277 wlan.preamble . . . . . . . . . . . . . . . . . . . . . . . . Response From the Zebra Printer . . . . . . . . . . . . . . . . 1358 wlan.private_key_password . . . . . . . . . . . . . . . . . . . . . 1278 wlan.region_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279 ZB64 Encoding and Compression . . . . . . . 1365 . . 1280 wlan.roam.interchannel_delay . . . . . . . . . . . . . . . . . wlan.roam.interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1281 Introduction to B64 and Z64 . . . . . . . . . . . . . . . . . . . . 1366 82 wlan.roam.max_chan_scan_time . . . . . . . . . . . . . . . . 12 B64 and Z64 Encoding . . . . . . . . . . . . . . . . . . . . . . . . 1367 . . . . . 1283 wlan.roam.max_fail . . . . . . . . . . . . . . . . . . . . . . wlan.roam.rssi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284 9 Field Interactions . . . . . . . . . . . . . . . . . . . . 136 . . . . . . 1285 wlan.roam.signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1370 Normal Orientation . . . . . . . . . . . . . . . . . . . . . . wlan.rts_cts_enabled . . . . . . . . . . . . . . . . . . . . . . . . . 1286 Rotated Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371 . . . . . . . . 1287 wlan.security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294 wlan.signal_noise . . . . . . . . . . . . . . . . . . . . . . . Bottom Up Orientation . . . . . . . . . . . . . . . . . . . . . . . . . 1372 . . . . . . 1295 wlan.signal_quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1373 Inverted Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . 1296 wlan.signal_strength . . . . . . . . . . . . . . . . . . . . . wlan.station_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297 Real Time Clock . . . . . . . . . . . . . . . . . . . . . 1375 wlan.tx_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298 Control Panel Programming . . . . . . . . . . . . . . . . . . . . 1376 wlan.tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 RTC General Information . . . . . . . . . . . . . . . . . . . . . . 1378 . . . . . 1300 wlan.user_channel_list . . . . . . . . . . . . . . . . . . . . ZPL II Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383 . . . . . . 1301 wlan.username . . . . . . . . . . . . . . . . . . . . . . . . . wlan.waveagent.enable . . . . . . . . . . . . . . . . . . . . . . . . 1302 . . . 1303 wlan.waveagent.udp_port . . . . . . . . . . . . . . . . . . . ZBI Character Set . . . . . . . . . . . . . . . . . . . . 1389 . . . . . 1304 wlan.wep.auth_type . . . . . . . . . . . . . . . . . . . . . . Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389 wlan.wep.index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305 wlan.wep.key1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306 SGD Command Support . . . . . . . . . . . . . . . 1393 wlan.wep.key2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307 . . . . . . 1308 wlan.wep.key3 . . . . . . . . . . . . . . . . . . . . . . . . . Printer and Firmware Compatibility . . . . . . . . . . . . . . . 1393 . . . . . . 1309 wlan.wep.key4 . . . . . . . . . . . . . . . . . . . . . . . . . wlan.wpa.psk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1310 Firmware Features . . . . . . . . . . . . . . . . . . . 1435 . . . . 1311 wlan.wep.key_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1435 Firmware x.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1315 wlan.wpa.timecheck . . . . . . . . . . . . . . . . . . . . . . Firmware x.16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436 wlan.wpa.wpa_version . . . . . . . . . . . . . . . . . . . . . . . . 1316 . . . . . . 1437 Firmware x.15 . . . . . . . . . . . . . . . . . . . . . . . . . Firmware x.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439 Zebra Code Pages . . . . . . . . . . . . . . . . . . . 1317 Zebra Code Page 850 — Latin Character Set . . . . . . . 1317 Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1443 l and Eastern European Zebra Code Page 1250 — Centra . . . . . . 1444 Mirror Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1320 Latin Character Set . . . . . . . . . . . . . . . . . . . . . 5 Professional Services for Mirror Configuration . . . . . . 144 Zebra Code Page 1252— Latin Character Set . . . . . . 1322 . . . . . . 1445 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . Zebra Code Page 1253 — Modern Greek Character Set . . . . . . . 1447 How Mirror Works . . . . . . . . . . . . . . . . . . . . . . . 1324 Creating ZPL Files for Use in the Zebra Code Page 1254 — Turkish Character Set . . . . 1326 "/files" Directory . . . . . . . . . . . . . . . . . . 1449 Character Set . . . 1328 Zebra Code Page 1255 — Hebrew Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452 . . . . 1452 The Feedback.get File . . . . . . . . . . . . . . . . . . . . . . 1331 ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . How to Set Up and Use Mirror . . . . . . . . . . . . . . . . . . 1455 ASCII Code Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332 . . . . . . 1457 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . Fonts and Bar Codes . . . . . . . . . . . . . . . . . 1335 Wireless Markup Language (WML) . . . . . . 1461 . . . . . 1336 Standard Printer Fonts . . . . . . . . . . . . . . . . . . . . WML Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1462 Proportional and Fixed Spacing . . . . . . . . . . . . . . . . . . 1338 WML Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463 1339 Scalable Versus Bitmapped Fonts . . . . . . . . . . . . . . . . . . . . . 1464 Supported Printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341 Font Matrices . . . . . . . . . . . . . . . . . . . . . . . . . Professional Services for WML Content Creation . . . . 1465 . . . . . . . . 1343 Bar Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1466 WML Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1467 Using WML . . . . . . . . . . . . . . . . . . . . . . . . . . od 43 Check Digits . . . . . . . 1349 Mod 10 and M . . . . . 1472 WML Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1349 Mod 10 Check Digit . . . . . . . . . . . . . . . . . . . . . . Troubleshooting Scenarios . . . . . . . . . . . . . . . . . . . . . 1480 Mod 43 Check Digit . . . . . . . . . . . . . . . . . . . . . . . . . . . 1350 Using Weblink . . . . . . . . . . . . . . . . . . . . . . . 148 3 P1099958-001 Programming Guide 1/31/18

13 13 Contents When Should Weblink be Used? . . . . . . . . . . . . . . . . . 1 483 Configuring Weblink . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484 SSL/TLS Certificate Errors . . . . . . . . . . . . . . . . . . . . . . 1487 Other Typical Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489 . . . . . . 1490 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1491 HTTP Messages . . . . . . . . . . . . . . . . . . . . . . . . HTTP POST Alerts . . . . . . . . . . . . . . . . . . . 1493 Configuring Alerts Where the Alert Destination is HTTP POST . . . . . . . . . 1493 How to Parse via PHP . . . . . . . . . . . . . . . . . . . . . . . . . 1495 Basic Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495 . . . . . . 1497 Enabling Logging . . . . . . . . . . . . . . . . . . . . . . . Navigating the Log Output . . . . . . . . . . . . . . . . . . . . . . 1498 Understanding Errors in the Alerts HTTP Log . . . . . . . 1498 . . . . . . 1498 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . HTTP Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1499 Advanced Techniques . . . . . . . . . . . . . . . . 1501 Special Effects for Print Fields . . . . . . . . . . . . . . . . . . . 1502 Serialized Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1502 Variable Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1503 Stored Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1503 Control Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504 Changing Delimiters and Command Prefixes . . . . . . . 1508 Communication Diagnostics Commands . . . . . . . . . . . 1509 Graphic Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509 Memory, Flash Cards, and Font Cards . . . . . . . . . . . . 151 3 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519 Programming Guide 1/31/18 P1099958-001

14 14 Contents P1099958-001 Programming Guide 1/31/18

15 Functional List of ZPL Commands . . . 216 Display Description Information . . . . . . . . . . . . . . Abort Download Graphic . . . . . . . . . . . . . . . . . . . . . . . 155 . . . . 147 Download Bitmap Font . . . . . . . . . . . . . . . . . . . . Advanced Text Properties . . . . . . . . . . . . . . . . . . . . . . . 291 57 Download Bounded TrueType Font . . . . . . . . . . . . . . 1 ANSI Codabar Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . 96 . . . . . 149 Download Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Applicator Reprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 Download Files . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . . . . . . . . 151 Download Format . . . . . . . . . . . . . . . . . . . . . . Aztec Bar Code Parameters . . . . . . . . . . . . . . . . . . . . . . 46 Download Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 . . . . . . 126 Bar Code Field Default . . . . . . . . . . . . . . . . . . . Download Intellifont (Scalable Font) . . . . . . . . . . . . . . 156 . . . . . . . . 194 Battery Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Download Objects . . . . . . . . . . . . . . . . . . . . . . . Cache On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Download Unbounded TrueType Font . . . . . . . . . . . . 158 . . . . 354 Calibrate RFID Tag Position . . . . . . . . . . . . . . . . . EAN-13 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 . . . . . . . . . . 223 Cancel All . . . . . . . . . . . . . . . . . . . . . . . . . EAN-8 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Cancel Current Partially Input Format . . . . . . . . . . . . . . 251 Early Warning Settings . . . . . . . . . . . . . . . . . . . . .131 Change Alphanumeric Default Font . . . . . . . . . . . . . . . . . . 231 Change Backfeed Sequence . . . . . . . . . . . . . . . . . . . . 247 227 Enable Communications Diagnostics . . . . . . . . . . . . . . . . . . . . . 129 Change Caret . . . . . . . . . . . . . . . . . . . . . . . . Enable RFID Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Change Delimiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Enable/Disable E.A.S. Bit . . . . . . . . . . . . . . . . . . . . . . . 364 Change International Font/Encoding . . . . . . . . . . . . . .132 Encode AFI or DSFID Byte . . . . . . . . . . . . . . . . . . . . . . 395 Change Memory Letter Designation . . . . . . . . . . . . . 136 . . . . . . . . 344 End Format . . . . . . . . . . . . . . . . . . . . . . . . . Change Network Settings . . . . . . . . . . . . . . . . . . . . . . . 285 Erase Download Graphics . . . . . . . . . . . . . . . . . . . . . 162 Change Tilde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Field Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Change Wired Networking Settings . . . . . . . . . . . . . . . .289 Field Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 .411 Change Wireless Network Settings . . . . . . . . . . . . . . . Field Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 CODABLOCK Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . 72 . . . . 168 Field Hexadecimal Indicator . . . . . . . . . . . . . . . . . Code 11 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Field Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Code 128 Bar Code (Subsets A, B, and C) . . . . . . . . . . 76 Field Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 . . . . . . . 52 Code 39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Field Origin . . . . . . . . . . . . . . . . . . . . . . . . . Code 49 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 . . . . . . . 177 Field Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Code 93 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Field Reverse Print . . . . . . . . . . . . . . . . . . . . Code Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Field Separator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Field Typeset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 . . . . 198 Configuration Label Return . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Field Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Configuration Update . . . . . . . . . . . . . . . . . . . Font Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Configure Wireless Securities . . . . . . . . . . . . . . . . . . . . 419 . . . . . . . . . 170 Font Linking . . . . . . . . . . . . . . . . . . . . . . . . . Cut Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Get RFID Tag ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 . . . . . 122 Data Matrix Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Graphic Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Define EPC Data Structure . . . . . . . . . . . . . . . . . . Graphic Circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Define Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Graphic Diagonal Line . . . . . . . . . . . . . . . . . . . . . . . . . 189 Define Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Graphic Ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Define Printer Name . . . . . . . . . . . . . . . . . . . . . . . . . . 256 . . . . . . . . 191 Graphic Field . . . . . . . . . . . . . . . . . . . . . . . Detect Multiple RFID Tags in Encoding Field . . . . . . . . 373 . . . . . . . 193 Graphic Symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Disable Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . 230 Graphing Sensor Calibration . . . . . . . . . . . . . . . . . Programming Guide P1099958-001 1/31/18

16 16 Functional List of ZPL Commands Printer Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 GS1 Databar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 . . . . 295 Printing Mirror Image of Label . . . . . . . . . . . . . . . . . . . . . 319 Halt ZebraNet Alert . . . . . . . . . . . . . . . . . . . . . Programmable Pause . . . . . . . . . . . . . . . . . . . . . . . . . 298 . . . . . . . 195 Head Diagnostic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 QR Code Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Head Test Fatal . . . . . . . . . . . . . . . . . . . . . . . Quick Write EPC Data and Passwords . . . . . . . . . . . . . 37 4 . . . . . . . 248 Head Test Interval . . . . . . . . . . . . . . . . . . . . . Read AFI or DSFID Byte . . . . . . . . . . . . . . . . . . . . . . . . 361 Head Test Non-Fatal . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Read or Write RFID Format . . . . . . . . . . . . . . . . . . . . . 365 . . . . . . . . 213 Host Directory List . . . . . . . . . . . . . . . . . . . . Read RFID Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 Host Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Read Unique RFID Chip Serialization . . . . . . . . . . . . . . 385 Host Graphic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Recall Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 . . . . . . . . 199 Host Identification . . . . . . . . . . . . . . . . . . . . Recall Graphic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 Host Linked Fonts List . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Remove Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 . . . . . . . . . 201 Host Query . . . . . . . . . . . . . . . . . . . . . . . . . . Report RFID Encoding Results . . . . . . . . . . . . . . . . . . . 387 Host RAM Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 . . . . . . . 252 Reprint After Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Host Status Return . . . . . . . . . . . . . . . . . . . . . Reset Advanced Counters . . . . . . . . . . . . . . . . . . . . . . 305 . . . . . . . . 212 Host Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Reset Optional Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Image Load . . . . . . . . . . . . . . . . . . . . . . . . . Reset Wireless Radio Card and Print Server . . . . . . . . 416 Image Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 . . 353 Return RFID Data Log to Host . . . . . . . . . . . . . . . . . . . . . . . . . 221 Image Save . . . . . . . . . . . . . . . . . . . . . . . . . Return ZebraNet Alert Configuration . . . . . . . . . . . . . . . 211 Industrial 2 of 5 Bar Codes . . . . . . . . . . . . . . . . . . . . . . . 93 . . . . . 42 Scalable/Bitmapped Font . . . . . . . . . . . . . . . . . . . . . . . . . 224 Initialize Flash Memory . . . . . . . . . . . . . . . . . . Search for Wired Print Server during Interleaved 2 of 5 Bar Code . . . . . . . . . . . . . . . . . . . . . . 50 . . . . 403 Network Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Kill Battery (Battery Discharge Mode) . . . . . . . . . . . Select Date and Time Format (for Real Time Clock) . 254 Kiosk Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Select Encoding Table . . . . . . . . . . . . . . . . . . . . . . . . . 308 Label Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Select the Primary Network Device . . . . . . . . . . . . . . . . 283 . . . . . . . . 264 Label Length . . . . . . . . . . . . . . . . . . . . . . . . . Sensor Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Label Reverse Print . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Serialization Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Label Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Serialization Field (with a Standard ^FD String) . . . . . . 3 09 . . . . . . . . . 267 Label Top . . . . . . . . . . . . . . . . . . . . . . . . . . Set All Network Printers Transparent . . . . . . . . . . . . . 288 . . . . . . . . . 262 List Font Links . . . . . . . . . . . . . . . . . . . . . . . Set Antenna Parameters . . . . . . . . . . . . . . . . . . . . . . . . 408 . 370 Lock/Unlock RFID Tag Memory . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Set Auxiliary Port . . . . . . . . . . . . . . . . . . . . . . . . . . 98 LOGMARS Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Set Battery Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Map Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 Set Client Identifier (Option 61) . . . . . . . . . . . . . . . . . . . 274 Maximum Label Length . . . . . . . . . . . . . . . . . . . . Set Currently Connected Printer Transparent . . . . . . . 290 . . . . . . . 271 Media Darkness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Set Darkness . . . . . . . . . . . . . . . . . . . . . . . . Media Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 23 Set Date and Time (for Real-Time Clock) . . . . . . . . . . 3 Media Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 . . . . . . 240 Set Dots per Millimeter . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Media Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Set Dynamic Media Calibration . . . . . . . . . . . . . . . . . MicroPDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Set Label Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Mode Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 . . . . 412 Set LEAP Parameters . . . . . . . . . . . . . . . . . . . . . . . . . 282 Modify Head Cold Warning . . . . . . . . . . . . . . . . . . . Set Maintenance Alerts . . . . . . . . . . . . . . . . . . . . . . . . . 268 MSI Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 73 Set Maintenance Information Message . . . . . . . . . . . . . 2 . . . . 172 Multiple Field Origin Locations . . . . . . . . . . . . . . . Set Media Sensor Calibration . . . . . . . . . . . . . . . Network Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 . . . 226 Network ID Number . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 . . . . . . 321 Set Media Sensors . . . . . . . . . . . . . . . . . . . . . . Object Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Set Mode and Language (for Real-Time Clock) . . . . . 313 . . . 243 Pause and Cancel Format . . . . . . . . . . . . . . . . . . Set Offset (for Real-Time Clock) . . . . . . . . . . . . . . . . . 317 . . . . . . . 61 PDF417 Bar Code . . . . . . . . . . . . . . . . . . . . . . . Set Primary/Secondary Device . . . . . . . . . . . . . . . . . . . 405 Planet Code bar code . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Set Printhead Resistance . . . . . . . . . . . . . . . . . . . . . . 320 . . . . . . 104 Plessey Bar Code . . . . . . . . . . . . . . . . . . . . . . . 8 Set RF Power Levels for Read and Write . . . . . . . . . . . 38 POSTAL Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Set RFID Tag Password and Lock Tag . . . . . . . . . . . . . 39 2 Power On Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Set Ribbon Tension . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 Set Sensor Intensity . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 Present Length Addition . . . . . . . . . . . . . . . . . . . . . . . . . 294 Set Serial Communications . . . . . . . . . . . . . . . . . . . . . 306 Present Now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Set SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 . . . . . 331 Print Configuration Label . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Set SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . Print Directory Label . . . . . . . . . . . . . . . . . . . . . . . . . . 332 . . . . . . 415 Set Transmit Rate . . . . . . . . . . . . . . . . . . . . . . . Print Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Set Units of Measurement . . . . . . . . . . . . . . . . . . . . . . 281 . . 413 Print Network Configuration Label . . . . . . . . . . . . . . . Set Up RFID Parameters . . . . . . . . . . . . . . . . . . . . . . . 378 . . . . . . . . 297 Print Orientation . . . . . . . . . . . . . . . . . . . . . . Set Web Authentication Timeout Value . . . . . . . . . . . . 4 07 Print Quantity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 . . . . . . 409 Set WEP Mode . . . . . . . . . . . . . . . . . . . . . . . . . Print Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 . . . . 414 Set Wireless Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Print Start . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Set Wireless Radio Card Values . . . . . . . . . . . . . . . . . . . . . . . . . 304 Print Width . . . . . . . . . . . . . . . . . . . . . . . . P1099958-001 1/31/18 Programming Guide

17 17 Functional List of ZPL Commands . 244 Terminate Zebra BASIC Interpreter . . . . . . . . . . . . . . . . . . . . 324 Set ZebraNet Alert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Text Blocks . . . . . . . . . . . . . . . . . . . . . . . . . Set ZPL Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 . . . . . . 118 TLC39 Bar Code . . . . . . . . . . . . . . . . . . . . . . . . Slew Given Number of Dot Rows . . . . . . . . . . . . . . . . .292 Transfer Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 . . . . . 293 Slew to Home Position . . . . . . . . . . . . . . . . . . . . . . . . 115 UPC/EAN Extensions . . . . . . . . . . . . . . . . . . . . . . Specify RFID Retries for a Block or Enable Adaptive Antenna UPC-A Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 . . . . . . 376 Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . UPC-E Bar Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 . . . . . 95 Standard 2 of 5 Bar Code . . . . . . . . . . . . . . . . . . . Upload Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 . . . . . . . . . 339 Start Format . . . . . . . . . . . . . . . . . . . . . . . . UPS MaxiCode Bar Code . . . . . . . . . . . . . . . . . . . . . . . 87 . . . . . . . . . . 318 Start Print . . . . . . . . . . . . . . . . . . . . . . . . . Use Font Name to Call Font . . . . . . . . . . . . . . . . . . . . . 44 Start ZBI (Zebra BASIC Interpreter) . . . . . . . . . . . . . . . 234 . . 398 Verify RFID Encoding Operation . . . . . . . . . . . . . . . . . . 236 Start ZBI (Zebra BASIC Interpreter) . . . . . . . . . . . . . . . . . . . . 396 Write (Encode) Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Suppress Backfeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 Write Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Tear-off Adjust Position . . . . . . . . . . . . . . . . . . . P1099958-001 Programming Guide 1/31/18

18 18 Functional List of ZPL Commands P1099958-001 Programming Guide 1/31/18

19 Alphabetical List of ZBI Commands ISERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 ! (EXCLAMATION MARK) . . . . . . . . . . . . . . . . . . . . . . . 435 . . . . . . 512 ISWARNING . . . . . . . . . . . . . . . . . . . . . . . . . . . ACCEPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 LCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 . . . . . . . 448 ADDBREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 LEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 AUTONUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 LET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AUXPORT_GETPIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 .520 AUXPORT_RELEASEPIN . . . . . . . . . . . . . . . . . . . . . . LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 . . . . 518 AUXPORT_SETPIN . . . . . . . . . . . . . . . . . . . . . . . . LTRIM$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 AUXPORT_STEALPIN . . . . . . . . . . . . . . . . . . . . . . . . . 517 MAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 . . . . . . . . . 447 BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAXNUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 CHR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 . . . . . 474 CLIENTSOCKET . . . . . . . . . . . . . . . . . . . . . . . . . MIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 . . . . . . . . . 470 CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 MOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLRERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 NEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 . . . . . . 550 COLUMNSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . ON ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 . . . . . . . . 494 CSVLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . OPEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 . . . . . . . 496 CSVSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . ORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 CTRL-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 OUTBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 DATAREADY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 . . . . . . . . . . 535 POS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DATE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 . . . . . . . . . 480 READ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 REDIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 . . . . . . . 449 DELBREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . REGISTEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 . . . . . . . . . . 434 REM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DELROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 RENUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 . . . . . . . . . . . 492 DIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 REPEAT$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 DO Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . RESTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 . . . . . . . . . . 439 ECHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 ROWSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RTRIM$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 . . . . . . . . . . 441 RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EXTRACT$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 . . . . . . 482 SEARCHTO$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 SERVERCLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . FOR Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 SERVERSOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 . . . . . . . . 559 GETVAR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 SETERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . GOTO/GOSUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 . . . . . . . . 558 SETVAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . HANDLEEVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 . . . . . . . . 544 HEXTOINT . . . . . . . . . . . . . . . . . . . . . . . . . . . SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 . . . . . . . . 461 IF Statements . . . . . . . . . . . . . . . . . . . . . . . . . SPLITCOUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 . . . . . . . . . 479 INBYTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 STEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . STORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 . . . . . . 547 INSERTROW . . . . . . . . . . . . . . . . . . . . . . . . . . . STR$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 . . . . . . . 543 INTTOHEX$ . . . . . . . . . . . . . . . . . . . . . . . . . . . SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 Programming Guide P1099958-001 1/31/18

20 20 Alphabetical List of ZBI Commands TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 TIME$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 TRACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 . . . . . 509 TRIGGEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 TXTLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . TXTSTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 UCASE$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 UNREGISTEREVENT . . . . . . . . . . . . . . . . . . . . . . . . . . 506 VAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 . . . . . . . . . 481 WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ZPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 Programming Guide P1099958-001 1/31/18

21 Alphabetical List of Set/Get/Do Commands bluetooth.minimum_security_mode . . . . . . . . . . . . . 1070 . . . . . . . . . 577 alerts.add . . . . . . . . . . . . . . . . . . . . . . . . . . bluetooth.radio_auto_baud . . . . . . . . . . . . . . . . . . . . . 1071 alerts.conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 . . . . 1072 bluetooth.radio_version . . . . . . . . . . . . . . . . . . . . alerts.configured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 . . . . 1073 bluetooth.short_address . . . . . . . . . . . . . . . . . . . alerts.destinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 bluetooth.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074 . . . 581 alerts.http.authentication.add . . . . . . . . . . . . . . . . capture.channel1.count . . . . . . . . . . . . . . . . . . . . . . . 603 . . . . 583 alerts.http.authentication.entries . . . . . . . . . . . . . . . 604 capture.channel1.data.mime . . . . . . . . . . . . . . . . . . . . . 584 alerts.http.authentication.remove . . . . . . . . . . . . . . . . 605 capture.channel1.data.raw . . . . . . . . . . . . . . . . . . . alerts.http.logging.clear . . . . . . . . . . . . . . . . . . . . . . . . 585 capture.channel1.delimiter . . . . . . . . . . . . . . . . . . . . . 606 . . . . . 586 alerts.http.logging.entries . . . . . . . . . . . . . . . . . . 607 capture.channel1.max_length . . . . . . . . . . . . . . . . . . . 587 alerts.http.logging.max_entries . . . . . . . . . . . . . . . . . . . . . . . 588 alerts.http.proxy . . . . . . . . . . . . . . . . . . . . . . capture.channel1.port . . . . . . . . . . . . . . . . . . . . . . . . 608 alerts.tracked_settings.clear_log . . . . . . . . . . . . . . . . . 589 card.inserted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076 . . 590 alerts.tracked_settings.log_tracked . . . . . . . . . . . . . . card.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075 .591 alerts.tracked_settings.max_log_entries . . . . . . . . . . . . . . . . . 609 CISDFCRC16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 alerts.tracked_sgds.log . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 comm.baud . . . . . . . . . . . . . . . . . . . . . . . . . . . .593 alerts.tracked_sgds.max_log_entries . . . . . . . . . . . . . . . . . . . . . . 612 comm.halt . . . . . . . . . . . . . . . . . . . . . . . . . . alerts.tracked_sgds.zbi_notified . . . . . . . . . . . . . . . . . 594 . . . . . . . . 615 comm.parity . . . . . . . . . . . . . . . . . . . . . . . . . . apl.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 . . . . . . 613 comm.pnp_option . . . . . . . . . . . . . . . . . . . . . . . apl.framework_version . . . . . . . . . . . . . . . . . . . . . . . . . 596 . . . . . . . 616 comm.stop_bits . . . . . . . . . . . . . . . . . . . . . . . . apl.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 comm.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 appl.bootblock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 . . . . . 617 cradle.comm.baud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 appl.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 cradle.comm.handshake . . . . . . . . . . . . . . . . . . . . . appl.link_os_version . . . . . . . . . . . . . . . . . . . . . . . . . . 598 cutter.clean_cutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 appl.name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 . . . 620 device.applicator.data_ready . . . . . . . . . . . . . . . . . . . . . 599 appl.option_board_version . . . . . . . . . . . . . . . . . . . 698 device.applicator.data_ready_activation . . . . . . . . . . . . . . . . . . 1054 bluetooth.address . . . . . . . . . . . . . . . . . . . . . . . . . . 621 device.applicator.end_print . . . . . . . . . . . . . . . . . . bluetooth.afh_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055 . . 699 device.applicator.error_on_pause . . . . . . . . . . . . . . . . . . . 1056 bluetooth.afh_map_curr . . . . . . . . . . . . . . . . . . . . . . . . . . 622 device.applicator.feed . . . . . . . . . . . . . . . . . . . . bluetooth.afh_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057 device.applicator.media_out . . . . . . . . . . . . . . . . . . . . . 623 bluetooth.authentication . . . . . . . . . . . . . . . . . . . . . . . . 1058 . . . . . 624 device.applicator.pause . . . . . . . . . . . . . . . . . . . bluetooth.bluetooth_pin . . . . . . . . . . . . . . . . . . . . . . . . 1059 device.applicator.reprint . . . . . . . . . . . . . . . . . . . . . . . . 625 bluetooth.clear_bonding_cache . . . . . . . . . . . . . . . . . 1060 device.applicator.rfid_void . . . . . . . . . . . . . . . . . . . . . . . 626 bluetooth.date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 device.applicator.ribbon_low . . . . . . . . . . . . . . . . . . . . . 627 bluetooth.discoverable . . . . . . . . . . . . . . . . . . . . . . . . . 1062 device.applicator.ribbon_out . . . . . . . . . . . . . . . . . . . . . 628 bluetooth.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063 . . 629 device.applicator.service_required . . . . . . . . . . . . . . . . . 1064 bluetooth.enable_reconnect . . . . . . . . . . . . . . . . . . device.applicator.start_print . . . . . . . . . . . . . . . . . . . . . 630 . . . . 1065 bluetooth.friendly_name . . . . . . . . . . . . . . . . . . . . device.applicator.start_print_mode . . . . . . . . . . . . . . . . 700 bluetooth.json_config_channel_enable . . . . . . . . . . . . 106 6 device.applicator.voltage . . . . . . . . . . . . . . . . . . . . . . . . 701 . . 1067 bluetooth.le.controller_mode . . . . . . . . . . . . . . . . . device.bluetooth_installed . . . . . . . . . . . . . . . . . . . . . . 631 .1068 bluetooth.le.minimum_security . . . . . . . . . . . . . . . . device.command_override.active . . . . . . . . . . . . . . . . . 632 . . . . . 1069 bluetooth.local_name . . . . . . . . . . . . . . . . . . . . . device.command_override.add . . . . . . . . . . . . . . . . . . . 633 Programming Guide P1099958-001 1/31/18

22 22 Alphabetical List of Set/Get/Do Commands . . . . 697 device.syslog.save_local_file . . . . . . . . . . . . . . . . device.command_override.clear . . . . . . . . . . . . . . . . . . 634 device.unique_id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702 device.command_override.list . . . . . . . . . . . . . . . . . . . . 635 device.unpause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 device.company_contact . . . . . . . . . . . . . . . . . . . . . . . . 636 . . . . . . . . 704 device.uptime . . . . . . . . . . . . . . . . . . . . . . . . . . 637 device.configuration_number . . . . . . . . . . . . . . . . . . device.user_p1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705 . 638 device.cpcl_synchronous_mode . . . . . . . . . . . . . . . . . device.user_p2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706 . . . . . . 639 device.cutter_installed . . . . . . . . . . . . . . . . . . . . device.user_vars.create . . . . . . . . . . . . . . . . . . . . . . . 708 40 device.download_connection_timeout . . . . . . . . . . . . . . 6 device.user_vars.set_range . . . . . . . . . . . . . . . . . . . . 707 . . . . 641 device.epl_legacy_mode . . . . . . . . . . . . . . . . . . . . device.xml.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710 . . . . 643 device.feature.bluetooth_le . . . . . . . . . . . . . . . . . . . . . . . . . 714 display.backlight . . . . . . . . . . . . . . . . . . . . . . . . . . 711 device.feature.lighted_arrows . . . . . . . . . . . . . . . . . . . . 715 display.backlight_on_time . . . . . . . . . . . . . . . . . . . device.feature.mcr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 . . . . . 716 display.batch_counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 device.feature.nfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717 display.language . . . . . . . . . . . . . . . . . . . . . . . . . 646 device.feature.ribbon_cartridge . . . . . . . . . . . . . . . . . . . . . . . 718 display.load_card . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647 device.friendly_name . . . . . . . . . . . . . . . . . . . . . . . . . 719 display.password.level . . . . . . . . . . . . . . . . . . . . . . . 648 device.frontpanel.feedenabled . . . . . . . . . . . . . . . . . display.root_wml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720 . . . . 649 device.frontpanel.key_press . . . . . . . . . . . . . . . . . display.text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 . . . . . . 650 device.frontpanel.line1 . . . . . . . . . . . . . . . . . . . . 69 DNP - rfid.calibration_maximum_power . . . . . . . . . . . . 8 device.frontpanel.line2 . . . . . . . . . . . . . . . . . . . . . . . . . . 651 . . . . . 987 external_wired.check . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 device.frontpanel.xml . . . . . . . . . . . . . . . . . . . . . external_wired.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . 988 device.host_identification . . . . . . . . . . . . . . . . . . . . . . . . 653 external_wired.ip.arp_interval . . . . . . . . . . . . . . . . . . . . 989 . . . . . . . 654 device.host_status . . . . . . . . . . . . . . . . . . . . . . external_wired.ip.default_addr_enable . . . . . . . . . . . . . 990 . . . . 657 device.idle_display_format . . . . . . . . . . . . . . . . . . external_wired.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . 991 . . . . 658 device.idle_display_value . . . . . . . . . . . . . . . . . . external_wired.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . 992 device.internal_wired_setting_location . . . . . . . . . . . . . 659 external_wired.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . 993 device.jobs_print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 . . . 994 external_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . device.languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 external_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . 995 device.light.cover_open_brightness . . . . . . . . . . . . . . . . 662 . . . . 996 external_wired.ip.gateway . . . . . . . . . . . . . . . . . . . device.light.head_open_brightness . . . . . . . . . . . . . . . . 663 . . . . 997 external_wired.ip.netmask . . . . . . . . . . . . . . . . . . device.light.media_path_brightness . . . . . . . . . . . . . . . . 713 external_wired.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . 998 . . 712 device.light.ribbon_path_brightness . . . . . . . . . . . . . external_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . 999 . . . . . . . 664 device.location . . . . . . . . . . . . . . . . . . . . . . . . . 1000 external_wired.ip.timeout.enable . . . . . . . . . . . . . . . device.ltu_installed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 external_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . 1001 device.orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 external_wired.ip.v6.addr . . . . . . . . . . . . . . . . . . . . . . 1002 device.pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 . . 1003 external_wired.ip.v6.gateway . . . . . . . . . . . . . . . . . . . . . . 669 device.pmcu.revision . . . . . . . . . . . . . . . . . . . . . external_wired.ip.v6.prefix_length . . . . . . . . . . . . . . . . 1004 device.pnp_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 . . . 1005 external_wired.mac_addr . . . . . . . . . . . . . . . . . . . device.position.accuracy . . . . . . . . . . . . . . . . . . . . . . . . 670 external_wired.mac_raw . . . . . . . . . . . . . . . . . . . . . . . 1006 . . . . . . . 671 device.position.altitude . . . . . . . . . . . . . . . . . . . ezpl.head_close_action . . . . . . . . . . . . . . . . . . . . . . . . . 724 device.position.latitude . . . . . . . . . . . . . . . . . . . . . . . . . . 672 ezpl.label_length_max . . . . . . . . . . . . . . . . . . . . . . . . . 725 . . . . . . 673 device.position.longitude . . . . . . . . . . . . . . . . . . . . . . . . . 726 ezpl.label_sensor . . . . . . . . . . . . . . . . . . . . . . device.print_2key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674 . . . 675 device.print_reprogram_2key . . . . . . . . . . . . . . . . . ezpl.manual_calibration . . . . . . . . . . . . . . . . . . . . . . . . 727 device.product_name_submodel . . . . . . . . . . . . . . . . . 6 76 . . . . . . . 728 ezpl.media_type . . . . . . . . . . . . . . . . . . . . . . . device.prompted_network_reset . . . . . . . . . . . . . . . . .677 ezpl.power_up_action . . . . . . . . . . . . . . . . . . . . . . . . . . 729 . . . . . . . . . 678 device.reset . . . . . . . . . . . . . . . . . . . . . . . . . ezpl.print_method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 device.restore_defaults . . . . . . . . . . . . . . . . . . . . . . . . . 679 ezpl.print_width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731 device.rewinder_installed . . . . . . . . . . . . . . . . . . . . . . . 680 ezpl.reprint_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732 device.save_2key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 . . . . . . . . 733 ezpl.take_label . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 device.sensor_select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734 ezpl.tear_off . . . . . . . . . . . . . . . . . . . . . . . . device.serial_number.option_board_date . . . . . . . . . . 683 . . 722 file.capture_response.destination . . . . . . . . . . . . . . . device.serial_numbers.control_panel_date . . . . . . . . . 684 . . . . . . . . . . 735 file.delete . . . . . . . . . . . . . . . . . . . . . . . . . . .685 device.serial_numbers.mlb_date . . . . . . . . . . . . . . . . file.dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736 device.serial_numbers.processor . . . . . . . . . . . . . . . . . . . . . . . . 737 file.dir_format . . . . . . . . . . . . . . . . . . . . . . . . . 686 . . . . . . . . . . . 739 file.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 device.set_clock_to_build_date . . . . . . . . . . . . . . . . file.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 . . . . . . . . . 688 device.slot_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 formats.cancel_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689 device.slot_2 . . . . . . . . . . . . . . . . . . . . . . . . head.darkness_switch . . . . . . . . . . . . . . . . . . . . . . . . . . 743 . . . . 690 device.super_host_status . . . . . . . . . . . . . . . . . . . head.darkness_switch_enable . . . . . . . . . . . . . . . . . . . 741 . . . . . . 691 device.syslog.clear_log . . . . . . . . . . . . . . . . . . . . . . . . 744 head.element_test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692 device.syslog.configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 745 head.latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 device.syslog.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 723 head.resolution.in_dpi . . . . . . . . . . . . . . . . . . . . device.syslog.entries . . . . . . . . . . . . . . . . . . . . . . . . . . 695 input.capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746 . . . 696 device.syslog.log_max_file_size . . . . . . . . . . . . . . . 1/31/18 Programming Guide P1099958-001

23 23 Commands Set/Get/Do Alphabetical List of ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078 interface.network.active.arp_interval . . . . . . . . . . . . . . . 747 . . . . . . . . 1079 ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . interface.network.active.cable_type . . . . . . . . . . . . . . . . 748 . . . . . . . 1080 ip.bootp.enable . . . . . . . . . . . . . . . . . . . . . . . interface.network.active.dhcp_received_host_name . . . 749 . . . . . . 1081 ip.dhcp.arp_verify . . . . . . . . . . . . . . . . . . . . . . . . . 750 interface.network.active.gateway . . . . . . . . . . . . . . . . 1082 ip.dhcp.auto_provision_enable . . . . . . . . . . . . . . . . . . . . 751 interface.network.active.ip_addr . . . . . . . . . . . . . . . ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083 . . 752 interface.network.active.mac_addr . . . . . . . . . . . . . . . . . . . . . 1084 ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . . . . 753 interface.network.active.mac_raw . . . . . . . . . . . . . . . ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085 . . . 754 interface.network.active.netmask . . . . . . . . . . . . . . . . . . . . . 1086 ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . interface.network.active.protocol . . . . . . . . . . . . . . . . . . 755 ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087 . . 756 interface.network.active.protocol_error . . . . . . . . . . . ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088 interface.network.active.protocol_error . . . . . . . . . . . . . 760 ip.dhcp.cid_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089 . . . 757 interface.network.active.rx_errors . . . . . . . . . . . . . . ip.dhcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 interface.network.active.rx_packets . . . . . . . . . . . . . . . . 758 ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . . . . . 1091 759 interface.network.active.server_address . . . . . . . . . . . . ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . . . . . 1092 . . . 761 interface.network.active.speed . . . . . . . . . . . . . . . . ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . . . . . 1093 interface.network.active.tx_errors . . . . . . . . . . . . . . . . . 762 ip.dhcp.ntp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094 interface.network.active.tx_packets . . . . . . . . . . . . . . . . 763 . 1095 ip.dhcp.ntp.received_servers . . . . . . . . . . . . . . . . . interface.network.active.wins_addr . . . . . . . . . . . . . . . . 764 . . . . . . 1096 ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . interface.network.settings_require_reset . . . . . . . . . . . 7 65 ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . . . . . 1097 internal_wired.8021x.password . . . . . . . . . . . . . . . . . . 1007 ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . . . . . 1098 internal_wired.8021x.peap.anonymous_identity . . . . . 1009 . . . . 1099 ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . internal_wired.8021x.peap.validate_server_certificate 1008 ip.dhcp.requests_per_session . . . . . . . . . . . . . . . . . . 1100 internal_wired.8021x.private_key_password . . . . . . . . 1010 . . . . 1101 ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . . internal_wired.8021x.security . . . . . . . . . . . . . . . . . . . 1011 . . . . 1102 ip.dhcp.user_class_id . . . . . . . . . . . . . . . . . . . . . . 1012 internal_wired.8021x.ttls_tunnel . . . . . . . . . . . . . . . . . . . 1103 ip.dhcp.vendor_class_id . . . . . . . . . . . . . . . . . . . internal_wired.8021x.username . . . . . . . . . . . . . . . . . . 1013 ip.dns.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104 internal_wired.activity_led . . . . . . . . . . . . . . . . . . . . . 1014 . . . . . . . 1105 ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . internal_wired.auto_switchover . . . . . . . . . . . . . . . . . . 1015 ip.firewall.whitelist_in . . . . . . . . . . . . . . . . . . . . . . . . . . . 766 internal_wired.enable . . . . . . . . . . . . . . . . . . . . . . . . . . 1016 ip.ftp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106 . . . . 1017 internal_wired.installed . . . . . . . . . . . . . . . . . . . ip.ftp.execute_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 . . . . . . 1018 internal_wired.ip.addr . . . . . . . . . . . . . . . . . . . . ip.ftp.request_password . . . . . . . . . . . . . . . . . . . . . . . 1108 . . . . 1019 internal_wired.ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . . 1109 ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . 1020 internal_wired.ip.default_addr_enable . . . . . . . . . . . . . ip.http.admin_name . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110 internal_wired.ip.dhcp.arp_verify . . . . . . . . . . . . . . . . 1021 . . . 1111 ip.http.admin_password . . . . . . . . . . . . . . . . . . . . . . 1022 internal_wired.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . 1112 ip.http.custom_link_name . . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . 1023 ip.http.custom_link_url . . . . . . . . . . . . . . . . . . . . . . . . 1113 internal_wired.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . 1024 . . . . . . . . 1114 ip.http.enable . . . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . 1025 . . . . . . . . 1115 ip.http.faq_url . . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . 1026 ip.http.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116 . . . 1027 internal_wired.ip.dhcp.cid_type . . . . . . . . . . . . . . . ip.https.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768 internal_wired.ip.dhcp.lease.last_attempt . . . . . . . . . . 1 028 . . . . . . . . . 769 ip.https.port . . . . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.lease.length . . . . . . . . . . . . . . . 1029 . . . . . . . . 1117 ip.lpd.enable . . . . . . . . . . . . . . . . . . . . . . . . . 1030 internal_wired.ip.dhcp.lease.server . . . . . . . . . . . . . . ip.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118 internal_wired.ip.dhcp.lease.time_left . . . . . . . . . . . . . 1031 ip.mirror.appl_path . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119 . . 1032 internal_wired.ip.dhcp.option12 . . . . . . . . . . . . . . . 033 internal_wired.ip.dhcp.option12_format . . . . . . . . . . . 1 . . . . . . . . 1120 ip.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.dhcp.option12_value . . . . . . . . . . . . 1034 ip.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . . . 1121 internal_wired.ip.dhcp.requests_per_session . . . . . . . 1035 . . . . 1122 ip.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . internal_wired.ip.dns.servers . . . . . . . . . . . . . . . . . . . . 1036 . . . . . 1123 ip.mirror.feedback.freq . . . . . . . . . . . . . . . . . . . internal_wired.ip.gateway . . . . . . . . . . . . . . . . . . . . . . 1037 ip.mirror.feedback.odometer . . . . . . . . . . . . . . . . . . . 1124 . . . . 1038 internal_wired.ip.netmask . . . . . . . . . . . . . . . . . . ip.mirror.feedback.path . . . . . . . . . . . . . . . . . . . . . . . 1125 . . . . . . 1039 internal_wired.ip.port . . . . . . . . . . . . . . . . . . . . ip.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126 . . . 1040 internal_wired.ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . 1127 ip.mirror.freq . . . . . . . . . . . . . . . . . . . . . . . . . 1041 internal_wired.ip.port_json_config . . . . . . . . . . . . . . ip.mirror.freq_hours . . . . . . . . . . . . . . . . . . . . . . . . . . 1128 internal_wired.ip.protocol . . . . . . . . . . . . . . . . . . . . . . 1042 ip.mirror.interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129 internal_wired.ip.timeout.enable . . . . . . . . . . . . . . . ip.mirror.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130 . . 1043 ip.mirror.last_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131 internal_wired.ip.timeout.value . . . . . . . . . . . . . . . . . . 1044 . . . . . . . 1132 ip.mirror.mode . . . . . . . . . . . . . . . . . . . . . . . internal_wired.ip.wins.addr . . . . . . . . . . . . . . . . . . . . 1045 ip.mirror.password . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133 internal_wired.ip.wins.permanent_source . . . . . . . . . 1046 ip.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134 . . . . 1047 internal_wired.mac_addr . . . . . . . . . . . . . . . . . . . ip.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . . . . . . 1135 . . . . 1048 internal_wired.mac_raw . . . . . . . . . . . . . . . . . . . . ip.mirror.server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136 ip.active_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077 P1099958-001 Programming Guide 1/31/18

24 24 Alphabetical List of Set/Get/Do Commands media.present.loop_length_max . . . . . . . . . . . . . . . . . . 802 ip.mirror.success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137 . . 804 media.present.present_timeout . . . . . . . . . . . . . . . . . ip.mirror.success_time . . . . . . . . . . . . . . . . . . . . . . . . 1138 media.present.present_type . . . . . . . . . . . . . . . . . . . . . 805 ip.mirror.username . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139 media.printmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806 ip.mirror.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140 media.serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 . . . . . . . . 1141 ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808 media.speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142 ip.ntp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810 memory.flash_free . . . . . . . . . . . . . . . . . . . . . . ip.ntp.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143 memory.flash_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 . . . . . . . 1144 ip.ntp.servers . . . . . . . . . . . . . . . . . . . . . . . . memory.ram_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812 . . . . . 770 ip.ping_gateway_interval . . . . . . . . . . . . . . . . . . . memory.ram_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813 . . . . . . . 1145 ip.pop3.enable . . . . . . . . . . . . . . . . . . . . . . . . netmanage.avalanche.available_port . . . . . . . . . . . . . 816 . . . . . . 1146 ip.pop3.password . . . . . . . . . . . . . . . . . . . . . . . 22 netmanage.avalanche.startup_update . . . . . . . . . . . . . 8 . . . . . . . . . 1147 ip.pop3.poll . . . . . . . . . . . . . . . . . . . . . . . . . 814 netmanage.avalanche.agent_addr . . . . . . . . . . . . . . . . ip.pop3.print_body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771 netmanage.avalanche.available_agent . . . . . . . . . . . . . 8 15 . . . . . . 772 ip.pop3.print_headers . . . . . . . . . . . . . . . . . . . . 7 netmanage.avalanche.encryption_type . . . . . . . . . . . . 81 ip.pop3.save_attachments . . . . . . . . . . . . . . . . . . . . . . . 773 . . 818 netmanage.avalanche.interval . . . . . . . . . . . . . . . . . . . . . . 1148 ip.pop3.server_addr . . . . . . . . . . . . . . . . . . . . . . netmanage.avalanche.interval_update . . . . . . . . . . . . . 8 19 . . . . . 1149 ip.pop3.username . . . . . . . . . . . . . . . . . . . . . . . netmanage.avalanche.model_name . . . . . . . . . . . . . . . 82 0 . . . . 774 ip.pop3.verbose_headers . . . . . . . . . . . . . . . . . . . netmanage.avalanche.set_property . . . . . . . . . . . . . . . 821 ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150 netmanage.avalanche.tcp_connection_timeout . . . . . . 823 . . . . . . . 1151 ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . netmanage.avalanche.terminal_id . . . . . . . . . . . . . . . 824 . . . . . . 1152 ip.port_json_config . . . . . . . . . . . . . . . . . . . . . . netmanage.avalanche.text_msg.beep . . . . . . . . . . . . . 82 5 . . . . . 1153 ip.port_single_conn . . . . . . . . . . . . . . . . . . . . . netmanage.avalanche.text_msg.display . . . . . . . . . . . 82 6 1154 ip.port_single_conn_idle_timeout . . . . . . . . . . . . . . . netmanage.avalanche.text_msg.print . . . . . . . . . . . . . 827 . . . . . . 1155 ip.primary_network . . . . . . . . . . . . . . . . . . . . . 828 netmanage.avalanche.udp_timeout . . . . . . . . . . . . . . . . . . . . . . 1156 ip.smtp.domain . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 netmanage.error_code . . . . . . . . . . . . . . . . . . . . . ip.smtp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157 . . . 830 netmanage.state_code . . . . . . . . . . . . . . . . . . . . . ip.smtp.server_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158 netmanage.status_code . . . . . . . . . . . . . . . . . . . . . . . 831 ip.snmp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162 odometer.cut_marker_count . . . . . . . . . . . . . . . . . . . . 832 ip.snmp.get_community_name . . . . . . . . . . . . . . . . . . 1159 . . . . . 833 odometer.headclean . . . . . . . . . . . . . . . . . . . . . ip.snmp.set_community_name . . . . . . . . . . . . . . . . . . 1160 . . . . . 834 odometer.headnew . . . . . . . . . . . . . . . . . . . . . . ip.snmp.trap_community_name . . . . . . . . . . . . . . . . . . 1161 . . . . 835 odometer.label_dot_length . . . . . . . . . . . . . . . . . . ip.tcp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163 . . . 847 odometer.latch_open_count . . . . . . . . . . . . . . . . . . ip.tcp.nagle_algorithm . . . . . . . . . . . . . . . . . . . . . . . . 1165 odometer.media_marker_count . . . . . . . . . . . . . . . . . 836 ip.telnet.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164 odometer.media_marker_count1 . . . . . . . . . . . . . . . . . 837 ip.tls.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775 838 odometer.media_marker_count2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777 ip.tls.port . . . . . . . . . . . . . . . . . . . . . . . . . odometer.retracts_count . . . . . . . . . . . . . . . . . . . . . . . . 839 . . . . . . . 778 ip.tls.port_json_config . . . . . . . . . . . . . . . . . . . . . . . 840 odometer.rfid.valid_resettable . . . . . . . . . . . . . . . . ip.udp.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166 odometer.rfid.void_resettable . . . . . . . . . . . . . . . . . . . . 841 log.reboot.code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779 odometer.total_cuts . . . . . . . . . . . . . . . . . . . . . . . . . . 842 log.reboot.codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780 log.reboot.reason . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 . . . . 844 odometer.total_label_count . . . . . . . . . . . . . . . . . log.reboot.report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782 . . . . 843 odometer.total_print_length . . . . . . . . . . . . . . . . . . . . . . . . . 784 mcr.cancel . . . . . . . . . . . . . . . . . . . . . . . . . . odometer.user_label_count . . . . . . . . . . . . . . . . . . . . . 845 . . . . . . 786 mcr.crypt.algorithm . . . . . . . . . . . . . . . . . . . . . odometer.user_label_count[1|2] . . . . . . . . . . . . . . . . . . 846 mcr.crypt.enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783 . . . . . . 848 parallel_port.mode . . . . . . . . . . . . . . . . . . . . . . mcr.crypt.key_mgmt . . . . . . . . . . . . . . . . . . . . . . . . . . . 785 parallel_port.present . . . . . . . . . . . . . . . . . . . . . . . . . . . 849 mcr.out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787 . . . . 851 power.average_current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788 mcr.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . 852 power.battery_led_blink_rate . . . . . . . . . . . . . . . . . . . . . . . . 789 media.bar_location . . . . . . . . . . . . . . . . . . . . . . power.battery_led_enable . . . . . . . . . . . . . . . . . . . . . . 853 media.cartridge.part_number . . . . . . . . . . . . . . . . . . . . . 790 . . 854 power.battery_led_off_duration . . . . . . . . . . . . . . . . media.cut_now . . . . . . . . . . . . . . . . . . . . . . . . . power.battery_led_on_duration . . . . . . . . . . . . . . . . . . 855 . . . . . . . 791 ecount_threshold . . . 856 power.battery_replacement_cycl . . . . 792 media.darkness_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 857 power.dtr_power_off . . . . . . . . . . . . . . . . . . . . . . media.draft_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 power.energy_star.enable . . . . . . . . . . . . . . . . . . . . . . . 859 . . . . . . 794 media.feed_skip . . . . . . . . . . . . . . . . . . . . . . . . power.energy_star.timeout . . . . . . . . . . . . . . . . . . . . . . 861 media.media_low.external . . . . . . . . . . . . . . . . . . . . . . . 795 power.label_queue.shutdown . . . . . . . . . . . . . . . . . . . 862 media.media_low.warning . . . . . . . . . . . . . . . . . . . . . . . 796 power.power_on_mode . . . . . . . . . . . . . . . . . . . . . . . . . 863 . . . . . . 797 media.part_number . . . . . . . . . . . . . . . . . . . . . . . . . . . 864 power.shutdown . . . . . . . . . . . . . . . . . . . . . . . . media.present.cut_amount . . . . . . . . . . . . . . . . . . . . . . 798 print.tone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865 media.present.cut_margin . . . . . . . . . . . . . . . . . . . . . . . 803 print.troubleshooting_label_print . . . . . . . . . . . . . . . . . . 866 . . . . . . . 799 media.present.eject . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 rfid.adaptive_antenna . . . . . . . . . . . . . . . . . . . . media.present.length_addition . . . . . . . . . . . . . . . . . . . . 800 rfid.antenna_sweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868 . . . . 801 media.present.loop_length . . . . . . . . . . . . . . . . . . . 1/31/18 Programming Guide P1099958-001

25 25 Alphabetical List of Set/Get/Do Commands . . . . 939 usb.mirror.feedback.path . . . . . . . . . . . . . . . . . . . . . . . . . . 870 rfid.country_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940 usb.mirror.fetch . . . . . . . . . . . . . . . . . . . . . . . rfid.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871 . . . . . . . 941 usb.mirror.last_error . . . . . . . . . . . . . . . . . . . . rfid.error.response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872 usb.mirror.last_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 . . . . . . 873 rfid.hop_table_version . . . . . . . . . . . . . . . . . . . . usb.mirror.path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943 rfid.position.program . . . . . . . . . . . . . . . . . . . . . . . . . . . 874 . . . . . 944 usb.mirror.reset_delay . . . . . . . . . . . . . . . . . . . . rfid.reader_1.antenna_port . . . . . . . . . . . . . . . . . . . . . . 876 . . . . . . 945 usb.mirror.success . . . . . . . . . . . . . . . . . . . . . . . . . 882 rfid.reader_1.firmware_version . . . . . . . . . . . . . . . . usb.mirror.success_time . . . . . . . . . . . . . . . . . . . . . . . . 946 . . . 883 rfid.reader_1.hardware_version . . . . . . . . . . . . . . . . weblink.cloud_connect.enable . . . . . . . . . . . . . . . . . . 1167 rfid.reader_1.model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884 . . . . . 1168 weblink.enable . . . . . . . . . . . . . . . . . . . . . . . . rfid.reader_1.power.read . . . . . . . . . . . . . . . . . . . . . . . . 879 weblink.ip.conn[1|2].authentication.add . . . . . . . . . . 1 169 . . 881 rfid.reader_1.power.single_power . . . . . . . . . . . . . . . 1 weblink.ip.conn[1|2].authentication.entries . . . . . . . 117 rfid.reader_1.power.write . . . . . . . . . . . . . . . . . . . . . . . . 880 weblink.ip.conn[1|2].authentication.remove . . . . . . . . 117 2 rfid.recipe_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885 . 1173 weblink.ip.conn[1|2].location . . . . . . . . . . . . . . . . rfid.region_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886 weblink.ip.conn[1|2].maximum_simultaneous_ rfid.tag.calibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887 connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175 rfid.tag.data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888 weblink.ip.conn[1|2].num_connections . . . . . . . . . 1174 . . . . . . . 889 rfid.tag.read.content . . . . . . . . . . . . . . . . . . . . . weblink.ip.conn[1|2].proxy . . . . . . . . . . . . . . . . . . . 1176 rfid.tag.read.execute . . . . . . . . . . . . . . . . . . . . . . . . . . . 890 . 1178 weblink.ip.conn[1|2].retry_interval . . . . . . . . . . . . . rfid.tag.read.result_line1 . . . . . . . . . . . . . . . . . . . . . . . . 891 weblink.ip.conn[1|2].retry_interval_random_max . . . . 1182 rfid.tag.read.result_line1_alternate . . . . . . . . . . . . . . . . 893 1179 weblink.ip.conn[1|2].test.location . . . . . . . . . . . . . . rfid.tag.read.result_line2 . . . . . . . . . . . . . . . . . . . . . . . . 892 1181 weblink.ip.conn[1|2].test.retry_interval . . . . . . . . . . . . . 894 rfid.tag.read.result_line2_alternate . . . . . . . . . . . . . weblink.ip.conn[1|2].test.test_on . . . . . . . . . . . . . . . 1184 . . . . . . . . . . 895 rfid.tag.test . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185 weblink.logging.clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896 rfid.tag.test.content . . . . . . . . . . . . . . . . . . . . weblink.logging.entries . . . . . . . . . . . . . . . . . . . . . 1186 . . . . . . . . 897 rfid.tag.test.execute . . . . . . . . . . . . . . . . . . . . weblink.logging.max_entries . . . . . . . . . . . . . . . . 1 187 . . . . . . . 898 rfid.tag.test.result_line1 . . . . . . . . . . . . . . . . . . 1188 weblink.printer_reset_required . . . . . . . . . . . . . . . . . . . . . . . 899 rfid.tag.test.result_line2 . . . . . . . . . . . . . . . . . . weblink.restore_defaults . . . . . . . . . . . . . . . . . . . . 1189 rfid.tag.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900 weblink.zebra_connector.authentication.add . . . . . . 1190 ribbon.part_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904 weblink.zebra_connector.authentication.entries . . . 1192 ribbon.serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . . 903 weblink.zebra_connector.authentication.remove . . . 1193 . . . . . . . . 905 rtc.timezone . . . . . . . . . . . . . . . . . . . . . . . . . weblink.zebra_connector.enable . . . . . . . . . . . . . . . . 1194 . . . . . . 907 sensor.cover_open . . . . . . . . . . . . . . . . . . . . . . . 1195 weblink.zebra_connector.proxy . . . . . . . . . . . . . . . . . . . . . 908 sensor.paper_supply . . . . . . . . . . . . . . . . . . . . . . 1197 weblink.zebra_connector.version . . . . . . . . . . . . . . . . . . . . . . 909 sensor.peeler . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199 wlan.11ac.80mhz_enable . . . . . . . . . . . . . . . . . . . . sensor.self_adjusting_enable . . . . . . . . . . . . . . . . . . . . 911 . . . . . . 1200 wlan.11d.enable . . . . . . . . . . . . . . . . . . . . . . . usb.device.device_id_string . . . . . . . . . . . . . . . . . . . . . . 912 . . . 1201 wlan.11n.20mhz_only . . . . . . . . . . . . . . . . . . . . . . . . . 913 usb.device.device_unique_id . . . . . . . . . . . . . . . . . wlan.11n.aggregation . . . . . . . . . . . . . . . . . . . . . . . . . 1202 usb.device.device_version . . . . . . . . . . . . . . . . . . . . . . . 914 . . . . . 1203 wlan.11n.greenfield . . . . . . . . . . . . . . . . . . . . . . usb.device.manufacturer_string . . . . . . . . . . . . . . . . . . . 915 . . . . . . . . 1204 wlan.11n.rifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916 usb.device.product_id . . . . . . . . . . . . . . . . . . . . wlan.11n.short_gi_20mhz . . . . . . . . . . . . . . . . . . . . . . 1206 . . . . . 917 usb.device.product_string . . . . . . . . . . . . . . . . . . wlan.11n.short_gi_40mhz . . . . . . . . . . . . . . . . . . . . . . 1205 . . . . . . 918 usb.device.serial_string . . . . . . . . . . . . . . . . . . . wlan.8021x.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207 usb.device.vendor_id . . . . . . . . . . . . . . . . . . . . . . . . . . . 919 wlan.8021x.validate_peap_server_certificate . . . . . . . 1208 usb.halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920 wlan.active_channels . . . . . . . . . . . . . . . . . . . . . . . . . 1209 . . . . . . 921 usb.host.fn_field_data . . . . . . . . . . . . . . . . . . . . wlan.adhoc_last_channel . . . . . . . . . . . . . . . . . . . usb.host.fn_last_field . . . . . . . . . . . . . . . . . . . . . . . . . . . 922 . . 1210 usb.host.hid_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923 wlan.adhocautomode . . . . . . . . . . . . . . . . . . . . . . . . . 1215 usb.host.keyboard_input . . . . . . . . . . . . . . . . . . . . . . . . 924 . . . . 1216 wlan.adhocchannel . . . . . . . . . . . . . . . . . . . . . . . usb.host.lock_out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925 . . . . . 1214 wlan.allowed_band . . . . . . . . . . . . . . . . . . . . . . . . 926 usb.host.mass_storage_count . . . . . . . . . . . . . . . . . . wlan.associated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217 usb.host.read_list . . . . . . . . . . . . . . . . . . . . . . wlan.auth_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218 . . . . . . . . 927 . . . . 1211 wlan.authenticated . . . . . . . . . . . . . . . . . . . . . . usb.host.read_list_print_delay . . . . . . . . . . . . . . . . . . . . 928 wlan.authentication_error . . . . . . . . . . . . . . . . . . . . . 1212 . . . . . . 929 usb.host.template_list . . . . . . . . . . . . . . . . . . . . wlan.available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213 . . 930 usb.host.template_print_amount . . . . . . . . . . . . . . . . wlan.bssid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219 . . . . . . . . 931 usb.host.write_list . . . . . . . . . . . . . . . . . . . . . wlan.channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 usb.mirror.appl_path . . . . . . . . . . . . . . . . . . . . . . . . . . . 932 wlan.channel_mask . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221 usb.mirror.auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933 . . . . . 1222 wlan.country_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934 usb.mirror.enable . . . . . . . . . . . . . . . . . . . . . . . wlan.current_tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 usb.mirror.enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935 wlan.enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224 . . . . . . . 936 usb.mirror.error_retry . . . . . . . . . . . . . . . . . . . . . . . . 1225 wlan.encryption_index . . . . . . . . . . . . . . . . . . . . . . . . . . 937 usb.mirror.feedback.auto . . . . . . . . . . . . . . . . . . . . . 1226 wlan.encryption_key[1|2|3|4]1 . . . . . . . . . . . . . . . . . . . . 938 usb.mirror.feedback.odometer . . . . . . . . . . . . . . . . . 1/31/18 P1099958-001 Programming Guide

26 26 Alphabetical List of Set/Get/Do Commands . . . . . . . 1284 wlan.roam.rssi . . . . . . . . . . . . . . . . . . . . . . . . wlan.encryption_mode . . . . . . . . . . . . . . . . . . . . . . . . . 1227 wlan.roam.signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285 wlan.essid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228 . . . . 1286 wlan.rts_cts_enabled . . . . . . . . . . . . . . . . . . . . . wlan.firmware_version . . . . . . . . . . . . . . . . . . . . . . . . . 1229 . . . . . . . 1287 wlan.security . . . . . . . . . . . . . . . . . . . . . . . . . wlan.ip.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230 . . . . . . 1294 wlan.signal_noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231 wlan.ip.arp_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295 wlan.signal_quality . . . . . . . . . . . . . . . . . . . . . . . . 1232 wlan.ip.default_addr_enable . . . . . . . . . . . . . . . . . . . . . . 1296 wlan.signal_strength . . . . . . . . . . . . . . . . . . . . . wlan.ip.dhcp.arp_verify . . . . . . . . . . . . . . . . . . . . . . . 1233 . . . . . 1297 wlan.station_name . . . . . . . . . . . . . . . . . . . . . . wlan.ip.dhcp.cache_ip . . . . . . . . . . . . . . . . . . . . . . . . . 1234 . . . . . . 1298 wlan.tx_power . . . . . . . . . . . . . . . . . . . . . . . . . wlan.ip.dhcp.cid_all . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235 . . . . . . . . 1299 wlan.tx_rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236 wlan.ip.dhcp.cid_enable . . . . . . . . . . . . . . . . . . . . . . . . 1300 wlan.user_channel_list . . . . . . . . . . . . . . . . . . . . . . . . . 1237 wlan.ip.dhcp.cid_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . 1301 wlan.username . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238 wlan.ip.dhcp.cid_suffix . . . . . . . . . . . . . . . . . . . . . . . 1302 wlan.waveagent.enable . . . . . . . . . . . . . . . . . . . . . wlan.ip.dhcp.cid_type . . . . . . . . . . . . . . . . . . . . . . . . . . 1239 . . 1303 wlan.waveagent.udp_port . . . . . . . . . . . . . . . . . . . . wlan.ip.dhcp.lease.last_attempt . . . . . . . . . . . . . . . . . . 1240 . . . . 1304 wlan.wep.auth_type . . . . . . . . . . . . . . . . . . . . . . . . . . 1241 wlan.ip.dhcp.lease.length . . . . . . . . . . . . . . . . . . . . . . . . . 1305 wlan.wep.index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242 wlan.ip.dhcp.lease.server . . . . . . . . . . . . . . . . . . . . . . 1311 wlan.wep.key_format . . . . . . . . . . . . . . . . . . . . . . . . . 1243 wlan.ip.dhcp.lease.time_left . . . . . . . . . . . . . . . . . . . . . . . 1306 wlan.wep.key1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 wlan.ip.dhcp.option12 . . . . . . . . . . . . . . . . . . . . . . . . . . 1307 wlan.wep.key2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245 wlan.ip.dhcp.option12_format . . . . . . . . . . . . . . . . . . . . . . . 1308 wlan.wep.key3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246 wlan.ip.dhcp.option12_value . . . . . . . . . . . . . . . . . . . . . . . 1309 wlan.wep.key4 . . . . . . . . . . . . . . . . . . . . . . . . . wlan.ip.dhcp.request_timeout . . . . . . . . . . . . . . . . . . . 1247 . . . . . . . 1310 wlan.wpa.psk . . . . . . . . . . . . . . . . . . . . . . . . . 1248 wlan.ip.dhcp.requests_per_session . . . . . . . . . . . . . . . . . . . 1315 wlan.wpa.timecheck . . . . . . . . . . . . . . . . . . . . . . . . . 1249 wlan.ip.dhcp.session_interval . . . . . . . . . . . . . . . . . . 1316 wlan.wpa.wpa_version . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250 wlan.ip.dns.servers . . . . . . . . . . . . . . . . . . . . . . . . . 947 zbi.control.add_breakpoint . . . . . . . . . . . . . . . . . . wlan.ip.gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251 . . . . . . . . 948 zbi.control.break . . . . . . . . . . . . . . . . . . . . . . wlan.ip.netmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1252 . . . . 949 zbi.control.clear_breakpoints . . . . . . . . . . . . . . . . wlan.ip.port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253 . . . . 950 zbi.control.delete_breakpoint . . . . . . . . . . . . . . . . . . . . . . 1254 wlan.ip.port_alternate . . . . . . . . . . . . . . . . . . . . . . . . . 951 zbi.control.line_number . . . . . . . . . . . . . . . . . . . . . . . 1255 wlan.ip.port_json_config . . . . . . . . . . . . . . . . . . . zbi.control.restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952 wlan.ip.protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256 . . . . . . . . . 953 zbi.control.run . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1257 wlan.ip.timeout.enable . . . . . . . . . . . . . . . . . . . . zbi.control.step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954 . . . . . 1258 wlan.ip.timeout.value . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955 zbi.control.terminate . . . . . . . . . . . . . . . . . . . . . . . . . 1259 wlan.ip.wins.addr . . . . . . . . . . . . . . . . . . . . . . . . . . . 956 zbi.control.variable_name . . . . . . . . . . . . . . . . . . . wlan.ip.wins.permanent_source . . . . . . . . . . . . . . . . . 1260 zbi.control.variable_value . . . . . . . . . . . . . . . . . . . . . . . 957 wlan.keep_alive.enable . . . . . . . . . . . . . . . . . . . . . . . . 1261 . . . . . . . . . 958 zbi.enable . . . . . . . . . . . . . . . . . . . . . . . . . . wlan.keep_alive.timeout . . . . . . . . . . . . . . . . . . . . . . . . 1262 zbi.key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959 wlan.kerberos.kdc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263 zbi.last_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960 wlan.kerberos.mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264 zbi.program_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961 wlan.kerberos.password . . . . . . . . . . . . . . . . . . . . . . . 1265 zbi.reseller_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962 wlan.kerberos.realm . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266 zbi.revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963 . . . 1267 wlan.kerberos.username . . . . . . . . . . . . . . . . . . . . . . 964 zbi.running_program_name . . . . . . . . . . . . . . . . . . . wlan.leap_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268 zbi.start_info.execute . . . . . . . . . . . . . . . . . . . . . . . . . . 965 . . . . 1269 wlan.leap_password . . . . . . . . . . . . . . . . . . . . . . zbi.start_info.file_name . . . . . . . . . . . . . . . . . . . . . . . . . 966 wlan.leap_username . . . . . . . . . . . . . . . . . . . . . . . . . . 1270 . . . . . . 1271 wlan.mac_addr . . . . . . . . . . . . . . . . . . . . . . . . . zbi.start_info.memory_alloc . . . . . . . . . . . . . . . . . . . . . 967 . . . . . . 1272 wlan.mac_raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968 zbi.state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273 wlan.operating_mode . . . . . . . . . . . . . . . . . . . . . . zpl.caret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969 wlan.password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 zpl.control_character . . . . . . . . . . . . . . . . . . . . . . . . . . . 970 . . . 1275 wlan.permitted_channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971 zpl.delimiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276 wlan.poor_signal_threshold . . . . . . . . . . . . . . . . . . zpl.label_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972 wlan.preamble . . . . . . . . . . . . . . . . . . . . . . . . zpl.left_position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973 . . . . . . . 1277 . . . . . . 981 zpl.relative_darkness . . . . . . . . . . . . . . . . . . . . . . 1278 wlan.private_key_password . . . . . . . . . . . . . . . . . . . . . . . . zpl.system_error . . . . . . . . . . . . . . . . . . . 974 . . . . . . . . . . . . 1279 wlan.region_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . zpl.system_status . . . . . . . . . . . . . . 976 . . . . . . . . . . . . 1280 wlan.roam.interchannel_delay . . . . . . . . . . . . . . . . . zpl.zpl_mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979 . . . . . . 1281 wlan.roam.interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980 zpl.zpl_override . . . . . . . . . . . . . . . . . . . . . . . 82 wlan.roam.max_chan_scan_time . . . . . . . . . . . . . . . . 12 . . . . . 1283 wlan.roam.max_fail . . . . . . . . . . . . . . . . . . . . . . P1099958-001 Programming Guide 1/31/18

27 About This Document This section provides an overview of the entire document, conta ct information, and details on document structure and organization. Contents Contact Zebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 Who Should Use This Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 . . . . .29 How This Document Is Organized. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming Guide P1099958-001 1/31/18

28 About This Document 28 Contact Zebra Contact Zebra To contact Zebra or for technical support, visit www.zebra.com/contact. Introduction This guide is the unabridged, alphabetical reference of program ming commands supported in the firmware. This includes all ZPL commands and SGD commands. nds: hen using ZPL and SGD comma ints to note w These are important po Important • ZPL and SGD commands should be s files. • ent to the printer as separate • ration changes made in ZPL d by both ZPL and SGD. Configu Certain settings can be controlle can affect configuratio n changes made in SGD. Firmware You can get the printer’s firmwar e version by printing out a co nfiguration label. For instructions to do so, see your printer’s user guide. Note • . www.zebra.com For firmware upgrades go to: ints to note w These are important po Important • hen using a Zebra G-Series printer: ming languages: EPL, ZPL, or ng multiple program ons to the printer usi You can send instructi • SGD. EPL and ZPL commands configure the printer, print labels, and get device status information. SGD comma guration details. Th ese three languages can be nds set and get confi h from one langu age to another. printer instruct used without the need to send the ions to switc inter as separ ate files. They cannot be e sent to the pr EPL, ZPL, and SGD commands must b • set of commands. For example, i used together in one format, or f you send a series of SGD commands to the printer and they rmat, this needs to be done are followed by a printable fo using separate files. ssors can recreate most example Many text editors and word proce s in this guide in ASCII format. However, for other encodings such as Unicode, a text editor suc h as Microsoft Notepad is needed. cation on, see the If there are any terms used in t his guide that you need clarifi Glossary on page 1519 . Who Should Use This Document ing with programming languages. This Programming Guide is for programmers who are familiar work P1099958-001 Programming Guide 1/31/18

29 About This Document 29 How This Document Is Organized How This Document Is Organized The Programming Guide is set up as follows: Section Description Provides a high-level over view about this guide and About This Document Zebra Programming Language (ZPL). ZPL Commands Provides an alphabetical, detailed description of each ZPL command. ZPL RFID Commands Provides an alphabetical, detailed description of each ZPL RFID command, and some examples of how to use them. ZPL Wireless Commands Provides new and modified ZPL commands for the wireless print server. ZBI Commands Provides details abo ut the Zebra Basic Interpreter, its commands, descriptions, f ormats, and parameters. view of printer setting Provides a high-level over SGD Printer Commands Set / Get / Do (SGD) commands. Provides a high-level overview of the wired SGD Wired Commands Set / Get / Do (SGD) commands. SGD Wireless Commands Provides a high-level ov erview of the wireless Set / Get / Do (SGD) commands. Appendixes The appendixes include: Zebra Code Pages ASCII Fonts and Bar Codes Mod 10 and Mod 43 Check Digits Error Detection Protocol ZB64 Encoding and Compression Field Interactions Real Time Clock ZBI Character Set SGD Command Support Firmware Features Mirror Wireless Markup Language (WML) Using Weblink HTTP POST Alerts Advanced Techniques Glossary of terms. Glossary Programming Guide 1/31/18 P1099958-001

30 About This Document 30 How This Document Is Organized P1099958-001 Programming Guide 1/31/18

31 ZPL Commands te alphabetical listing of ZPL II commands. This section contains the comple The first paragraph(s) provides nd is used, what it is capable of, an explanation of how the comma and any defining char acteristics it has. mmand is syntactically arranged a nd what parameters it contains. The format explains how the co command prints a EAN-8 bar code. The format of the ^B8 command is: ^B8 For example, the . It is arranged with the caret symbol ( ^ ), the command code ( B8 ), and the parameters ^B8o,h,f,g h supported values. and are replaced wit ble, if a command has values that can be de fined to make it s function more In the parameters ta outlined as parameters. specific, these are ^B8 example, the h parameter is defined as: Still using the h = bar code height 1 32000 Values: to (in dots) value set by Default: ^BY meters – for example If the command has no para (Cancel All) – the parameter heading is ~JA the command ( he format of removed, indicating that t ) is acceptable ZPL II code. ~JA Example: When the command is best clarified in context, an example of th e ZPL II code is provided. Text in dicating exact code entered is printed in an easily recognizable command looks like this: ^B8 Courier font. An example of code using the ^XA ^FO50,50 ^B8N,100,Y,N ^FD1234567^FS ^XZ Notice that the ^B8 parameter letters have been r eplaced with real values that appl y to the command. In this example , N have been entered. , Y , 100 N A Comments section (if used) will show notes that are of value to a programmer, warnings of that should be taken into or command-specific information potential command interactions, consideration. Programming Guide P1099958-001 1/31/18

32 ZPL Commands 32 Basic ZPL Exercises and Examples Example: This command or This command works only when the printer is idle, . is ignored if a value exceeds the parameter limits parameters if they apply dir Comments are also included next to ectly to a particular setting. Basic ZPL Exercises and Examples ZPL users. ds to novice to introduce basic ZPL comman The purpose of these exercises is Make sure this checklist is complete:  Load the printer with labels that are big enough to give you am ple space to work with. label (CANCEL test). Print a configuration  is set to 000 LEFT POSITION  Look at the configuration label and make sure that the . 000 is set to LABEL TOP and = ration label. 8/MM  Determine the printer’s resolution. It is listed on the configu 600 dpi. 24/MM = 300 dpi and 200 dpi, 12/MM = Tips These are some tips when using ZPL: • Use the DOS text editor to write ZPL files. inter from DOS command line. txt file and copy it to the pr • Save the file as a . Before you begin Some things that are importan t to understand before you begin a re: • 200 dpi means the resolution of the printhead is 200 dots per inch. If you progra m the printer to a nch. 100 dots on equals a half i draw a line 100 dots long that 300 dpi printer prints a line 1/3 inch long. at all your coordinates are referencing is railing edge of • The home position th at the left-hand t e exceptions to this.) of the printer. (There are som the label as the label comes out Exercises y a variety of adually progress to give you a The exercises start simple and gr n opportunity to tr commonly used ZPL commands. Not a ll commands are covered, but t his should be a good core of e firmware version in your ay not be supported due to th commands to learn. Some commands m printer. Exercise 1 This exercise shows you how to specify a location for an entered name. Print your name on the label. 1. 1/31/18 Programming Guide P1099958-001

33 ZPL Commands 33 Basic ZPL Exercises and Examples 2. Start by printing just your name on the label. Use this format as a model: in the second line of code. xxxxxxxxxxx Important • Your name goes where you see Send this format to the printer: 3. 1 ^XA 2 ^FO50,50^ADN,36,20^FDxxxxxxxxxxx 3 ^FS 4 ^XZ 5 ^XA Every format starts with the command 1 ^FO (field origin) command 2 ^FS (field separator) command 3 command Every format ends with the ^XZ 4 ^FD (field data) command 5 See how that When the label prints correctly, alter the first number after t ^FOx. he 4. ^FO50,x and see change affects the print position. Alter the second number afte r the how that the print position. Font instruction ^ADN command. Alter the numbers after the 1. ^ADN,x,x • 18,10 is the smallest size you can make the D font. • The first number is the height of the font in dots. The second number is the width in dots. to ten times that size as a ma • You can use direct multiples up ximum. D t you can make the Example: 180,100 is the larges font. t recognizable size. • 25,18 would not be a valid size. The printer rounds to the nex Fonts andBar Codes 2. Check the font matrices tables for other fonts to try. See onpage1335 . ^A0N,x,x 3. Try the zero scalable font . can choose any height and width. This font is scalable, and you Rotation Commands ^ADI 1. Change ^ADN to ^ADR , and then . , and then ^ADB See how the print position changes. 2. Add more fields. P1099958-001 Programming Guide 1/31/18

34 ZPL Commands 34 Basic ZPL Exercises and Examples font and 3. Add two more fields to print dir ectly under your name using the ^ADN,36,20 size: Your street address Your city, state, zip You must add two more lines of code that start off with: 4. ^XA ^FO50,50^ADN,36,20^FDxxxxxxxxxxx^FS ^FO (fill in the rest) ^FO (fill in the rest) ^XZ left side of fields has same vertical Make sure all these fields print in the same fon t and size and alignment. Your name 1200 W Main Street Anytown, Il 60061 Special Effects commands ^GB command or is used in some of t he speical effects commands. The Graphic Box or Reverse Printing a Field 1. Write the following format and send to the printer: ^XA ^PR1 ^FO100,100 ^GB70,70,70,,3^FS ^FO200,100 ^GB70,70,70,,3^FS ^FO300,100 ^GB70,70,70,,3^FS ^FO400,100 ^GB70,70,70,,3^FS ^FO107,110^CF0,70,93 ^FR^FDREVERSE^FS ^XZ 2. To see the effects, remove: ^FR^FDREVERSE^FS To see the effects, try removing one of the lines of code. ^GB 3. Programming Guide P1099958-001 1/31/18

35 ZPL Commands 35 Basic ZPL Exercises and Examples Label Reverse Print 1. Write the following format and send to the printer: ^XA^LRY ^FO100,50 ^GB195,203,195^FS ^FO180,110^CFG ^FDLABEL^FS ^FO130,170 ^FDREVERSE^FS ^XZ To see the effects, remove: 2. ^GB195,203,195^FS Mirror Image of Label 1. Write the following format and send to the printer: ^XA^PMY ^FO100,100 ^CFG ^FDMIRROR^FS ^FO100,160 ^FDIMAGE^FS ^XZ 2. To see the effects, in the first line of code change ^PMY to ^PMN . Print Orientation Write the following format and send to the printer: 1. ^XA^CFD ^POI ^LH330,10 ^FO50,50 ^FDZEBRA TECHNOLOGIES^FS ^FO50,75 ^FDVernon Hills, IL^FS ^XZ to ^PON . 2. To see the effects, in the second line of code change ^POI Programming Guide 1/31/18 P1099958-001

36 ZPL Commands 36 Basic ZPL Exercises and Examples Exercise 2 Boxes and lines Use the address format from Exercise1 . 1. Add this new line to your existing format: 2. ^FO50,200^GB200,200,2^FS This prints a box one wide by one inch long and the thickness o f the line is 2 dots. 3. Reposition and resize the square s o that it goes around the nam e and address uniformly. 4. Print a line by adding: ^FO50,300^GB400,1,4,^FS This prints a horizontal line tw o inches wide by 4 dots thick. 5. Print a vertical line using this code: ^FO100,50^GB1,400,4^FS Exercise 3 Bar codes — ^B3 code 39 bar code 1. Write the following format and send to the printer: ^XA ^FO50,50^B3N,N,100,Y,N^FD123456^FS ^XZ ^B3 Try changing each of the parameters in the string so you can see the effects. 2. ^B3o,e,h,f,g ^BY . Important • For valid parameter choices, see ^B3 onpage52 command just before the to see how the narrow bar width can be ^BY 3. Insert the ^B3 altered. ^FO50,50^BY2^B3..etc ^BYx, acceptable values for x are 1 through 10 Alter the ratio of the narrow to wide bar. 4. ^FO50,50^BY2,3^B3..etc ^BY2,x acceptable values for x are 2.1 through 3 in .1 increments ^B3 bar code with the interpretation line on top of the bar code a nd the bar 5. Print out a code rotated 90 degrees. Add a just before the ^XZ to print several labels. ^PQ 6. ^PQ4 ^XZ ^PR Print rate (in inches per second) Programming Guide P1099958-001 1/31/18

37 ZPL Commands 37 Basic ZPL Exercises and Examples at the beginning of the format to change the print rate 7. Add a ^PR command after the ^XA (print speed). ^XA ^PR4 then try ^PR6 ^PRx acceptable values for x are 2 through 12 (check printer specs) de. You may need to See how the print speed affects t he print quality of the bar co increase the printer darkness setting at higher print speeds. ^SN — Serial Number command Exercise 4 1. Send this format to the printer: ^XA ^FO100,100^ADN,36,20^SN001,1,Y^FS ^PQ3 ^XZ ^SNv,n,z to exercise increment/decrement and leading zeros functions, To vary the consult this guide. If your serial number contains a lpha and numeric characters, yo u can increment or the data even if it is in the m iddle, as this sample decrement a specific segment of sequence shows: ABCD1000EFGH, ABCD1001EFGH, ABCD1002EFGH 2. Send this file to the printer a nd to see how it increments the serial number. The ^SF command can also work with alpha characters. ^XA ^FO100,100^ADN,36,20^FDABCD1000EFGH^SF%%%%dddd%%%%,10000^FS ^PQ15 ^XZ data string: ^SF Notice how the field data character position aligns with the ^FDABCD1000EFGH ^SF%%%%dddd%%%% 10000 20000 30000 And on through... 10140000 The last label prints ABCD1014EFGH . The % is placed in positions t or decrement, hat you do not want to increment d = 10000 = increment value. decimal, ^SF on page 309 . ^SF , see For more details on Programming Guide 1/31/18 P1099958-001

38 ZPL Commands 38 Basic ZPL Exercises and Examples Exercise 5 Saving a template to memory. ^IS and image save and image load. rs you see on your labels. eshoot your code against the erro This exercise helps you troubl Note • Send this format to the printer: 1. ^XA ^FO20,30^GB750,1100,4^FS ^FO20,30^GB750,200,4^FS ^FO20,30^GB750,400,4^FS ^FO20,30^GB750,700,4^FS ^FO20,226^GB325,204,4^FS ^FO30,40^ADN,36,20^FDShip to:^FS ^FO30,260^ADN,18,10^FDPart number #^FS ^FO360,260^ADN,18,10^FDDescription:^FS ^FO30,750^ADN,36,20^FDFrom:^FS ^ISR:SAMPLE.GRF^FS ^XZ 2. Send this format: ^XA ^ILR:SAMPLE.GRF^FS ^FO150,125^ADN,36,20^FDAcme Printing^FS ^FO60,330^ADN,36,20^FD14042^FS ^FO400,330^ADN,36,20^FDScrew^FS ^FO70,480^BY4^B3N,,200^FD12345678^FS ^FO150,800^ADN,36,20^FDMacks Fabricating^FS ^XZ In this way the template only needs to be sent one time to the printer’s memory. Subsequent formats late and merging variable data in to the template. In this exercise, the can be sent recalling the temp R: memory, which is volatile. file was saved in the printers ^DF and ^XF — Download format and recall format Exercise 6 processes faster in the printer than ^IS command. ^IS and ^IL ^IL ^DF Similar concept to and ^XF . and ^IL ^DF ^XF format structure produces a label similar to the ^IS / and sample you This is how the just tried. 1/31/18 Programming Guide P1099958-001

39 ZPL Commands 39 Basic ZPL Exercises and Examples Figure 1 • Download and Recall Format 1 GENERATED LABEL ZPL II CODE ^XA ^DFR:SAMPLE.GRF^FS ^FO20,30^GB750,1100,4^FS ^FO20,30^GB750,200,4^FS ^FO20,30^GB750,400,4^FS ^FO20,30^GB750,700,4^FS ^FO20,226^GB325,204,4^FS ^FO30,40^ADN,36,20^FDShip to:^FS ^FO30,260^ADN,18,10^FDPart number #^FS ^FO360,260^ADN,18,10^FDDescription:^FS ^FO30,750^ADN,36,20^FDFrom:^FS ^FO150,125^ADN,36,20^FN1^FS (ship to) ^FO60,330^ADN,36,20^FN2^FS(part num) ^FO400,330^ADN,36,20^FN3^FS(description) ^FO70,480^BY4^B3N,,200^FN4^FS(barcode) ^FO150,800^ADN,36,20^FN5^FS (from) ^XZ ^XA ^XFR:SAMPLE.GRF ^FN1^FDAcme Printing^FS ^FN2^FD14042^FS ^FN3^FDScrew^FS ^FN4^FD12345678^FS ^FN5^FDMacks Fabricating^FS ^XZ 2 Download format code 1 Recall format call that generat . Figure 1 es the generated label in 2 Exercise 7 Asian and Unicode Encodings This exercise works in printers 50.14, or later. with firmware version V60.14, V orresponding encoding before being g examples, the form at is saved in the c In each of the followin ZPL script was made in Microso ft Notepad, a basic text editor. The sent down to the printer and the characters were inserted from th e character map in Windows or t yped from the keyboard. Programming Guide 1/31/18 P1099958-001

40 ZPL Commands 40 Basic ZPL Exercises and Examples Example: This is an example of using an As ian encoding, such as UHANGUL, with ASCII text. as ASCII text and 7F yte less than Using the CI26 command tells the printer to recognize any b every byte above as the firs t byte of UHANGUAL encoding: ZPL II CODE GENERATED LABEL Example: This is an example of using the Unicode encoding, UTF-8: ZPL II CODE GENERATED LABEL Programming Guide P1099958-001 1/31/18

41 ZPL Commands 41 Allowed Characters in File Names Allowed Characters in File Names ted or accessed using several different Files on the internal printer d rives (R:, E:, etc.) can be crea , commands (for example, ^TO , etc.). The names of the file can contain ONLY the ^XF ^DF , Table 1 characters shown in . Shaded areas indicate characters which cannot be used. The comm and and control characters are changed to something else (normally ^ and ~) cannot be use d unless the control characters ZPL command. using the ^CC ~CC Table 1 • Char. DEC OCT HEX Char. DEC OCT HEX Char. DEC OCT HEX (sp) 0040 0x20 @ 64 0100 0x40 ` 96 0140 0x60 32 ! 33 0041 0x21 a 97 0141 0x61 A 65 0101 0x41 " 34 0042 0x22 b 98 0142 0x62 B 66 0102 0x42 C 67 0103 0x43 c 99 0143 0x63 # 35 0043 0x23 d 100 0144 0x64 $ 36 0044 0x24 D 68 0104 0x44 % 37 0045 0x25 E 69 0105 0x45 e 101 0145 0x65 & 38 0046 0x26 F 70 0106 0x46 f 102 0146 0x66 G 71 0107 0x47 g 103 0147 0x67 ' 39 0047 0x27 ( 40 0050 0x28 H 72 0110 0x48 h 104 0150 0x68 I 73 0111 0x49 ) 41 0051 0x29 i 105 0151 0x69 42 0052 0x2a * j 106 0152 0x6a J 74 0112 0x4a + 43 0053 0x2b K 75 0113 0x4b k 107 0153 0x6b 0x2c 44 l 108 0154 0x6c , L 76 0114 0x4c 0054 M 77 0115 0x4d - 45 0055 0x2d m 109 0155 0x6d 46 0056 N 78 0116 0x4e n 110 0156 0x6e . 0x2e 47 0x2f O 79 0117 0x4f o 111 0157 0x6f / 0057 P 80 0120 0x50 0 48 0060 0x30 p 112 0160 0x70 1 49 0061 0x31 q 113 0161 0x71 Q 81 0121 0x51 R 82 0122 0x52 r 114 0162 0x72 2 50 0062 0x32 S 83 0123 0x53 s 115 0163 0x73 3 51 0063 0x33 4 52 0064 0x34 T 84 0124 0x54 t 116 0164 0x74 5 53 0065 0x35 U 85 0125 0x55 u 117 0165 0x75 V 86 0126 0x56 6 54 0066 0x36 v 118 0166 0x76 7 55 0067 0x37 W 87 0127 0x57 w 119 0167 0x77 X 88 0130 0x58 x 120 0170 0x78 8 56 0070 0x38 9 57 0071 0x39 y 121 0171 0x79 Y 89 0131 0x59 : 58 0072 0x3a Z 90 0132 0x5a z 122 0172 0x7a ; 59 0073 0x3b [ 91 0133 0x5b { 123 0173 0x7b 92 0134 0x5c 124 0174 0x7c \ <6000740x3c = 61 0075 0x3d ] 93 0135 0x5d } 125 0175 0x7d > 62 0076 0x3e ^ 94 0136 0x5e ~ 126 0176 0x7e 0177 127 0x7f ? 63 0077 0x3f _ 95 0137 0x5f (del) Programming Guide 1/31/18 P1099958-001

42 ZPL Commands 42 ^A ^A – Scalable/Bitmapped Font The ^A command specifies the font to use in a t ext field. ^A designates the f ont for the current ^FD is statement or field. The font specified by is used only once for that ^FD entry. If a value for ^A ^A ^CF font is used for the next ^FD entry. not specified again, the default Format: Details Parameter f = font name Values: A through Z , and 0 to 9 Any font in the printer (downloaded, EPROM, stored fonts, fonts A through Z and 0 9 ). to o = field Values: N = normal orientation R = rotated 90 degrees (clockwise) inverted 180 degrees I = B = read from bottom up, 270 degrees the last accepted Default: value or the ^FW default ^FW Scalable h = Character Height (in to 32000 10 Values: dots) Default: last accepted ^CF Bitmapped Values: multiples of height from 1 to 10 times the standard height, in increments of 1 ^CF Default: last accepted Scalable w = width (in dots) 10 to 32000 Values: Default: last accepted ^CF Bitmapped multiples of width from to 1 Values: 10 times the standard width , in increments of 1 ^CF Default: last accepted ^CF Important • Parameter f is required. If f is omitted it defaults to the last value of the command. Programming Guide P1099958-001 1/31/18

43 ZPL Commands 43 ^A Scalable Font Command This is an example of a scalable font command: Example: ZPL II Code Generated Label ^XA ^FO50,50 ^A0,32,25 ^FDZEBRA^FS ^FO50,150 ^A0,32,25 ^FDPROGRAMMING^FS ^FO50,250 ^A0,32,25^FDLANGUAGE^FS Bitmap Font Command This is an example of a bitmap font command: Example: ZPL II Code Generated Label ^XA ^FO50,50 ^ADN,36,20 ^FDZEBRA^FS ^FO50,150 ^ADN,36,20 ^FDPROGRAMMING^FS ^FO50,250 ^ADN,36,20^FDLANGUAGE^FS For reference, see , Zebra Code Page 850 — Latin Character Standard Printer Fonts onpage1336 onpage1335 ASCII Fonts and Bar Codes , on page 1317 Set , and on page 1331 . Comments hat defines standard height-to- width ratios. If you Fonts are built using a matrix t specify only the heig ht or width value, t he standard matrix for that font automatically determines the other value. If the value is not given or a 0 (zero) is entered , the height or width is determined by the standard font matrix. ^FT This command interacts with the justification parameters of ^FO and and with the field Field Interactions ^FP . onpage1369 . For output and examples, see direction parameter of 1/31/18 Programming Guide P1099958-001

44 ZPL Commands 44 ^[email protected] Use Font Name to Call Font ^[email protected] – command uses the complete name of a font, rather than the char acter designation used in The ^[email protected] ^[email protected] pecified by ^[email protected] . . Once a value for ^A is defined, it represents that font until a new font name is s Format: ^[email protected],h,w,d:f.x Parameter Details o = field orientation Values: N = normal R = rotates 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees N Default: ^FW value or the last h = character height Default: (in dots) w (character width) or the last accepted ^CF value. Uses Specifies magnification by the base height if none is specified. • Scalable Magnification factors The value is the height in dots of the entire character block. characters are scaled. are unnecessary, because Bitmapped • The value is rounded to the neares t integer multiple of the fon t’s base height, then divided by the font’s base height to give a magnification nearest limit. w = width (in dots) (height) or the last accepted ification by value. Default: Specifies magn ^CF h Specifies the base width is used if n one is specified. Scalable • agnification factors The value is the width in dots of the entire character block. M characters are scaled. are unnecessary, because Bitmapped • The value rounds to the nearest integer multiple of the font’s base width, then divided by the font’s base width to give a magnification neares t limit. d = drive location of , and Values: R: A: E: , B: , font R Default: : font name f = Values: any valid font Default: if an invalid or no name is entered, the default set by ^CF is used If no font has been specified in ^CF , font A is used. The font named carries over on all subsequent ^[email protected] commands without a font name. x = extension Values: .FNT font = .TTF = TrueType Font .TTE = TrueType Extension .TTE is only supported in firmware version V60.14.x, V50.14.x, or later. Programming Guide P1099958-001 1/31/18

45 ZPL Commands 45 ^[email protected] Example: This example identifies the pur of code for th pose of each line is label: ZPL II Code Generated Label ^XA  1 ^A2N,50,50,B:CYRI_UB.FNT 2  ^FO100,100  3 ^FDZebra Printer Fonts^FS  4 ^A2N,40,40 5  ^F0100,150 6  ^FDThis uses B:CYRI_UB.FNT^FS 7  ^XZ  8 Starts the label format. 1 CYRI_UB.FNT Searches non-volatile printer memory ( B: ) for . When the 2 command sets the print orientation to normal and the ^[email protected] font is found, the dots by 50 dots. character size to 50 Sets the field origin at 100,100. 3 on the label. Zebra Printer Fonts Prints the field data, 4 by 40 dots. Calls the font again and charac ter size is decreased to 40 dots 5 Sets the new field origin at 100,150. 6 on the label. This uses the B:CYRI_UB.FNT Prints the field data, 7 Ends the label format. 8 Zebra Code Page 850 — Latin Character Set Fonts and Bar , on page 1317 For reference, see Codes ASCII on page 1335 . on page 1331 , and 1/31/18 Programming Guide P1099958-001

46 ZPL Commands 46 ^B0 ^B0 – Aztec Bar Code Parameters The ^B0 command creates a two-dimensio nal matrix symbology made up of square modules arranged around a bulls-eye pattern at the center. Note • The Aztec bar code works with f irmware version V60.13.0.11A and V50.13.2 or later. Format: ^B0a,b,c,d,e,f,g Parameters Details orientation a = Values: N = normal R = rotated I = inverted 180 degrees B = read from bottom up, 270 degrees value Default: current ^FW b = magnification Values: 1 to 10 factor Default: 1 on 150 dpi printers 2 200 dpi printers on 3 on 300 dpi printers 6 on 600 dpi printers extended channel c = Values: if data contains ECICs Y = interpretation N = if data does not contain ECICs code indicator N Default: error control and d = Values: rrection level default error co 0 = symbol size/type 01 to 99 = error correction pe rcentage (minimum) indicator 101 to 104 = 1 to 4-layer compact symbol 201 to 232 = 1 to 32-layer full-range symbol 300 = a simple Aztec “Rune” Default: 0 menu symbol e = Values: indicator if this symbol is to be a menu ( bar code reader initialization) symbol Y = if it is not a menu symbol N = N Default: f = number of symbols Values: 1 through 26 for structured Default: 1 append ng with 24-character maximum The ID field is a text stri g = optional ID field for structured Default: no ID append P1099958-001 Programming Guide 1/31/18

47 ZPL Commands 47 ^B0 command: ^B0 This is an example of the Example: ZPL II CODE GENERATED LABEL ^XA ^B0R,7,N,0,N,1,0 ^FD 7. This is testing label 7^FS ^XZ P1099958-001 Programming Guide 1/31/18

48 ZPL Commands 48 ^B1 ^B1 – Code 11 Bar Code The ^B1 command produces the Code 11 bar code, also known as USD-8 cod e. In a Code 11 bar code, each character is composed nd two spaces, and the character set includes 10 of three bars a digits and the hyphen (-). ^B1 supports print ratios of 2.0:1 to 3.0:1. • • Field data ( ^FD ) is limited to the wid th (or length, if rotated) of the label. If additional information about the Code 11 bar code is require d, go to Important • www.aimglobal.org . Format: ^B1o,e,h,f,g Parameters Details Values: orientation o = N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees value ^FW current Default: check digit e = Values: Y = 1 digit N = 2 digits Default: N h = bar code height Values: 1 to 32000 (in dots) Default: ^BY Value set by Values: print f = Y = yes interpretation N = no line Default: Y g = print Values: Y = yes interpretation no N = line above code N Default: Programming Guide 1/31/18 P1099958-001

49 ZPL Commands 49 ^B1 Example: This is an example of the Code 11 bar code: ZPL II CODE CODE 11 BAR CODE ^XA ^FO100,100^BY3 ^B1N,N,150,Y,N ^FD123456^FS ^XZ CODE 11 BAR CODE CHARACTERS 0123456789- Internal Start/Stop Character: When used as a stop character: is used with 1 check digit is used with 2 check digits Programming Guide 1/31/18 P1099958-001

50 ZPL Commands 50 ^B2 ^B2 – Interleaved 2 of 5 Bar Code The ^B2 command produces the Interleaved 2 of 5 bar code, a high-densi ty, self-checking, continuous, numeric symbology. Each data character for the Inte osed of five elements: five bars or rleaved 2 of 5 bar code is comp five spaces. Of the five element s, two are wide and three are n arrow. The bar code is formed by interleaving characters formed wi th all spaces into characters formed with all bars. • supports print ratios of 2.0:1 to 3.0:1. ^B2 • Field data ( ) is limited to the wid th (or length, if rotated) of the label. ^FD Important • If additional information about the Interleaved 2 of 5 bar code is required, go to www.aimglobal.org . Format: ^B2o,h,f,g,e,j Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) inverted 180 degrees I = read from bottom up, 270 degrees B = Default: value current ^FW h = bar code height Values: 1 to 32000 (in dots) Default: value set by ^BY f = print Values: Y = yes interpretation N = no line Y Default: g = print Values: Y = yes interpretation N = no line above code Default: N e = calculate and Values: yes Y = print Mod 10 N = no check digit Default: N Programming Guide P1099958-001 1/31/18

51 ZPL Commands 51 ^B2 terleaved 2 of 5 bar code: This is an example of an In Example: ZPL II CODE INTERLEAVED 2 OF 5 BAR CODE ^XA ^FO100,100^BY3 ^B2N,150,Y,N,N ^FD123456^FS ^XZ INTERLEAVED 2 OF 5 BAR CODE CHARACTERS 0123456789 Start/Stop (internal) Comments st be even. The The total number of digits in an Interleaved 2 of 5 bar code mu of digits is received. ng 0 (zero) if an odd number printer automatically adds a leadi eme for error checking. For more check-digit sch ses the Mod 10 The Interleaved 2 of 5 bar code u Mod 10 Check Digit on page 1349 information on Mod 10 check digits, see . 1/31/18 Programming Guide P1099958-001

52 ZPL Commands 52 ^B3 Code 39 Bar Code ^B3 – The Code 39 bar code is the sta ding the U.S. Department of ndard for many industries, inclu Defense. It is one of three symbolo gies identified in the Ameri can National Standards Institute (ANSI) standard MH10.8M -1983. Code 39 is als o known as USD-3 Co de and 3 of 9 Code. Each character in a Code 39 bar code is composed of nine elemen ts: five bars, four spaces, and an inter-character gap. Three of t he nine elements are wide; the s ix remaining elements are narrow. ^B3 supports print ratios of 2.0:1 to 3.0:1. • • Field data ( ^FD th (or length, if rotated) of the label. ) is limited to the wid • Code 39 automatically generates the start and stop character ( *). • Asterisk (*) for start and stop character prints in the interp retation line, if the interpretation line is turned on. • Code 39 is capable of encoding the full 128-character ASCII se t. Important • If additional information about the Code 39 bar code is require d, go to www.aimglobal.org . Format: ^B3o,e,h,f,g Parameters Details orientation o = Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees read from bottom up, 270 degrees B = Default: current value ^FW e = Mod-43 check Values: Y = yes digit N = no Default: N h = bar code height Values: 32000 1 to (in dots) value set by ^BY Default: f = print Values: Y = yes interpretation N = no line Default: Y g = print Values: yes Y = interpretation N = no line above code Default: N Programming Guide P1099958-001 1/31/18

53 ZPL Commands 53 ^B3 a Code 39 bar code: This is an example of Example 1: CODE 39 BAR CODE ZPL II CODE ^XA ^FO100,100^BY3 ^B3N,N,100,Y,N ^FD123ABC^FS ^XZ CODE 39 BAR CODE CHARACTERS 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ -.$/+% Space e scanner, not of the bar cod e. Your scanner Comments Extended ASCII is a function of th must have extended ASCII enabled for this feature to work. To e nable extended ASCII in the statement. To disable extended ASCII, you ^FD +$ in your Code 39, you must first encode statement. ^FD in your -$ must encode Example 2: This example encodes a carriage return with line feed into a Co de 39 bar code: ZPL II CODE GENERATED LABELS ^XA ^FO20,20 ^B3N,N,100,Y ^FDTEST+$$M$J-$^FS ^XZ Full ASCII Mode for Code 39 the full 128-character ASCII set using pai Code 39 can generate red characters as shown in these tables: Programming Guide P1099958-001 1/31/18

54 ZPL Commands 54 ^B3 Table 2 • ASCII Code 39 ASCII Code 39 SP Space SOH $A ! /A STX $B “ /B ETX $C # /C EOT $D $ /D ENQ $E % /E ACK $F & /F BEL $G ‘ /G BS $H ( /H HT $I ) /I LF $J * /J VT $K ++ /K FF $L , /L CR $M - - SO $N . . SI $O / /O DLE $P 0 O DC1 $Q 1 1 DC2 $R 2 2 DC3 $S 3 3 DC4 $T 4 4 NAK $U 5 5 SYN $V 6 6 ETB $W 7 7 CAN $X 8 8 EM $Y 9 9 SUB $Z : /Z ESC %A ; %F FS %B < %G FS %C = %H RS %D > %I US %E ? %J P1099958-001 Programming Guide 1/31/18

55 ZPL Commands 55 ^B3 Table 3 • Code 39 ASCII Code 39 ASCII @ %V ‘ %W A A a +A B B b +B C C c +C D D d +D E E e +E F F f +F G G g +G H H h +H I I I +I J J j +J K K k +K L L l +L M M m +M N N n +N O O o +O P P p +P Q Q q +Q R R r +R S S s +S T T t +T U U u +U V V v +V W W w +W X X x +X Y Y y +Y Z Z z +Z [ %K { %P \ %L | %Q ] %M } %R ^ %N ~ %S _ %O DEL %T, %X 1/31/18 Programming Guide P1099958-001

56 ZPL Commands 56 ^B4 ^B4 – Code 49 Bar Code The ^B4 command creates a multi-row, continuous, variable-length symbo logy capable of encoding the full 128-character ASCII set. It is ideally suited for appl ications requiring large amounts of data in a small space. The code consists of two to eight ding quiet zone, four symbol rows. A row consists of a lea characters encoding eight code characters, a stop pattern, and a trailing quiet zone. A separator bar with a height of on e module separates each row. Each symbol cha racter encodes t wo characters from a set of Code 49 characters. has a fixed print ratio. ^B4 • • Rows can be scanned in any order. ed, go to Important • For additional information about the Code 49 bar code is requir www.aimglobal.org . Format: ^B4o,h,f,m Parameters Details orientation o = Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees value Default: current ^FW height multiplier h = 1 to height of label Values: of individual value set by ^BY Default: rows ndividual rows in This number multiplied by the module equals the height of the i dots. 1 is not a recommended value. print f = Values: N = no line printed interpretation A = print interpretation line above code line B = print interpretation line below code Default: N When the field data exceeds two line to extend rows, expect the interpretation beyond the right edge o f the bar code symbol. m = starting mode Values: 0 = Regular Alphanumeric Mode 1 = Multiple Read Alphanumeric 2 = Regular Numeric Mode 3 = Group Alphanumeric Mode 4 = Regular Alphanumeric Shift 1 5 = Regular Alphanumeric Shift 2 lyzing A = Automatic Mode. The printer dete rmines the starting mode by ana the field data. Default: A Programming Guide P1099958-001 1/31/18

57 ZPL Commands 57 ^B4 a Code 49 bar code: This is an example of Example 1: CODE 49 BAR CODE ZPL II CODE ^XA ^FO150,100^BY3 ^B4N,20,A,A ^FD12345ABCDE^FS ^XZ P1099958-001 Programming Guide 1/31/18

58 ZPL Commands 58 ^B4 Table 4 • Shift 2 Shift 1 Unshifted Field Data Character Set Character Set Character Set Set 0 0 ’ 1 1 ESC ; 2 2 FS < 3 3 GS = 4 4 RS > 5 5 US ? 6 6 ! @ 7 7 “ [ 8 8 # \ 9 9 & ] A A SOH a B B STX b C C ETX c D D EOT d E E ENQ e F F ACK f G G BEL g H H BS h I I HT I J J LF j K K VT k L L FF l M M CR m N N SO n O O SI o P P DLE p Q Q DC1 q R R DC2 r S S DC3 s T T DC4 t U U NAK u V V SYN v W W ETB w X X CAN x Y Y EM y Z Z SUB z - - ( _ . . ) ‘ SPACE SPACE Null DEL $ $ * { / / , | ++ ++ : } % % reserved ~ < (Shift 1) > (Shift 2) : (N.A.) ; (N.A.) ? (N.A.) = (Numeric Shift) Code 49 Shift 1 and 2 Character Substitutions Code 49 Field Data Character Set ased on the The ^FD data sent to the printer when using starting modes 0 to 5 is b Code 49 Internal Character Set. This is shown in the first colu mn of the Code 49 table on the re Code 49 control characters: previous page. These characters a : ; < = > ? Valid field data must be supplied when using modes 0 to 5. Shif ted characters are sent as a two- character sequence of a shift c haracter followed by a character in the unshifted character set. Programming Guide 1/31/18 P1099958-001

59 ZPL Commands 59 ^B4 (Shift 2) followed by an uppercase Example 2: To encode a lowercase a . If A , send a > interpretation line printing is selected, a lowercase a prints in the interpretation line. This reflects what the output from the scanner reads. Code 49 uses u ppercase alphanumeric characters only. d data and prints a interpreting fiel d, the Code 49 formatter stops If an invalid sequence is detecte ples of invalid sequences: alid sequence. These are exam symbol with the data up to the inv or a Numeric Space. • Terminating numeric mode with any characters other than 0 to 9 t field data character is • Starting in Mode 4 (Regular Alphanumeric Shift 1) and the firs not in the Shift 1 set. t field data character is • Starting in Mode 5 (Regular Alphanumeric Shift 2) and the firs not in the Shift 2 set. haracter not in the Shift 1 set • Sending Shift 1 followed by a c . . haracter not in the Shift 2 set • Sending Shift 2 followed by a c • Sending two Shift 1 or Shift 2 control characters. Advantages of Using the Code 49 Automatic Mode ed for selecting the starting mode Using the default (Automatic Mode ) completely eliminates the ne or manually performing character shifts. The Automatic Mode ana lyzes the incoming ASCII string, rms all character shifts, and determines the proper mode, perfo compacts the data for maximum efficiency. Numeric Mode is select found. Numeric ed or shifted only when five or more cont inuous digits are packaging provides no space advantage for numeric strings consi sting of fewer than eight characters. P1099958-001 Programming Guide 1/31/18

60 ZPL Commands 60 ^B5 ^B5 – Planet Code bar code ^B5 command is supported in all p rinters as a resident bar code. The Note • Accepted bar code characters are 0 - 9. Format: ^B5o,h,f,g Parameters Details o = orientation code Values: normal N = R = rotated I = inverted 180 degrees B = read from bottom up, 270 degrees Default: current ^FW value h = bar code height to 1 9999 Values: (in dots) Default: value set by ^BY interpretation f = Values: N = no line yes Y = Default: N determines if the g = Values: no N = interpretation yes Y = line is printed above the bar N Default: code Example: This is an example of a Planet Code bar code: ZPL II CODE GENERATED LABEL ^XA ^FO150,100^BY3 ^B5N,100,Y,N ^FD12345678901^FS ^XZ P1099958-001 1/31/18 Programming Guide

61 ZPL Commands 61 ^B7 PDF417 Bar Code ^B7 – command produces the PDF417 bar code, a two-dimensional, multi row, continuous, The ^B7 stacked symbology. PDF417 is capable of encoding over 1,000 cha racters per bar code. It is ideally suited for applications requiring large amounts of information at the time the b ar code is read. sists of start and stop patterns and The bar code consists of three to 90 stacked rows. Each row con code-words symbol characters called of four bars and four spaces. A three . A code-word consists required per row. code-word minimum is ^FM ), which allows you The PDF417 bar code is also capable of using the structured app end option ( to extend the field data limitat ions by printing multiple bar c odes. For more information on using structured append, see ^FM onpage172 . • PDF417 has a fixed print ratio. is limited to 3K of character data. ^FD) • Field data ( Format: ^B7o,h,s,c,r,t Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees Default: current ^FW value h = bar code height to height of label Values: 1 for individual ^BY value set by Default: rows (in dots) ndividual rows in This number multiplied by the module equals the height of the i dots. If this number is not spec ified, the over all bar code hei ght, divided by the number of rows, equals the height o f the individual rows in dot s, where the ^BY command. 1 is not a overall bar code height is defined by the recommended value. security level s = to 8 (error detection and correction) 1 Values: 0 (error detection only) Default: This determines the number of erro r detection and correction co de-words to be generated for the symbol. The default level provides only error detection without s of error correction correction. Increasing the securi ty level adds increasing level and increases the symbol size. c = number of data 1 to 30 Values: columns to Default: 1:2 (row-to-column aspect ratio) encode ode-word columns giving control over the width You can specify the number of c of the symbol. r = number of rows to Values: 90 3 to encode 1:2 (row-to-column aspect ratio) Default: control over t You can specify the number of sym bol rows giving he height of the symbol. For example, with no row or column values entered, 72 c ode-words nding on would be encoded into a symbol o f six columns and 12 rows. Depe atio is not always exact. code-words, the aspect r P1099958-001 Programming Guide 1/31/18

62 ZPL Commands 62 ^B7 Parameters Details truncate right t = Values: no truncation N = row indicators Y = perform truncation and stop pattern Default: N Example 1: This is an example of a PDF417 bar code: ZPL II CODE PDF417 BAR CODE ^XA ^BY2,3 ^FO10,10^B7N,5,5,,83,N ^FDZebra Technologies Corporation strives to be the expert supplier of innovative solutions to speciality demand labeling and ticketing problems of business and government. We will attract and retain the best people who will understand our customer's needs and provide them with systems, hardware, software, consumables and service offering the best value, high quality, and reliable performance, all delivered in a timely manner. ^FS^XZ Example 2: This is an example of a PDF417 without and with truncation sel ected: Programming Guide P1099958-001 1/31/18

63 ZPL Commands 63 ^B7 ) characters: ^FH command used with field hex ( ^B7 This example shows the Example 3: ZPL II CODE GENERATED LABEL ^XA ^FO50,50^BY3,3.0^B7N,8,5,7,21,N ^FH_^FD[)>_1E06_1DP12345678_1DQ160 C _1D1JUN123456789A2B4 6D8E_1D20LA6-987 _1D21L54321 ZES_1D15KG1155 151208_1D7Q10GT_1E_04^FS C _1DBS ^XZ Noted in this bulleted list: Comments less than 928. • If both columns and rows are s pecified, their pr oduct must be • No symbol is printed if the prod ater than 928. uct of columns and rows is gre • No symbol is printed if total c ode-words are greater than the product of columns and rows. wed with this bar code. • Serialization is not allo y. The right row • The truncation feature can be used in situations where label d amage is not likel indicators and stop pattern is idth. The difference between a ngle module bar w reduced to a si examples. uncated bar code is shown in the previous non truncated and a tr Special Considerations for When Using PDF417 ^BY ^B7 When used with ^BY command are: , the parameters for the = w module width (in dots) 2 to 10 Values: Default: 2 r = ratio 3 (ratio has no effect on PDF417) Fixed Value: height of bars (in dots) = h Values: 1 to 32000 Default: 10 PDF417 uses this only when row h eight is not specified in the ^B7 h parameter. Special Considerations for ^FD When Using PDF417 The character set sent to the printer with the ^FD command includes the full ASCII set, except for those characters with spec ial meaning to the printer. on page 1317 , ^CC ~CC on page 129 , and Zebra Code Page 850 — Latin Character Set ^CT See . ~CT on page 142 ^FD statements. This scheme is used: • CR and LF are also val id characters for all \& = carriage return/line feed backslash (\) \\ = must be selected to pr int a backslash (\). • ^CI13 Programming Guide P1099958-001 1/31/18

64 ZPL Commands 64 ^B8 ^B8 – EAN-8 Bar Code The ^B8 command is the shortened vers ion of the EAN-13 bar code. EAN i s an acronym for e is composed of four elements: European Article Numbering. Each character in the EAN-8 bar cod two bars and two spaces. ^B8 supports a fixed ratio. • • Field data ( ^FD ) is limited to exactly seven characters. ZPL II automatically pads or truncates on the left with zeros to achieve the s. required number of character • When using JAN-8 (Japanese Articl e Numbering), a specialized a pplication of EAN-8, the first two non-zero digits sent to the printe r are always 49. Important • If additional information about the EAN-8 bar code is required, go to www.aimglobal.org . Format: ^B8o,h,f,g Parameters Details orientation o = Values: normal N = R = rotated 90 degrees (clockwise) inverted 180 degrees I = B = read from bottom up, 270 degrees Default: current ^FW value bar code height h = Values: 1 to 32000 (in dots) value set by ^BY Default: f = print Values: N = no interpretation Y = yes line Default: Y g = print Values: no N = interpretation Y = yes line above code Default: N Programming Guide P1099958-001 1/31/18

65 ZPL Commands 65 ^B8 This is an example of an EAN-8 bar code: Example: ZPL II CODE EAN-8 BAR CODE ^XA ^FO100,100^BY3 ^B8N,100,Y,N ^FD1234567^FS ^XZ EAN-8 BAR CODE CHARACTERS 0123456789 1/31/18 Programming Guide P1099958-001

66 ZPL Commands 66 ^B9 ^B9 – UPC-E Bar Code command produces a variation of the UPC symbology used for num The ^B9 ber system 0. It is a shortened version of the UPC-A b ar code, where zeros are suppre ssed, resulting in codes that require less printing space. The m printheads produce the UPC 6 dot/mm, 12 dot/mm, and 24 dot/m and EAN symbologies at 100 percen t of their size. However, an 8 dot/mm printhead produces the UPC and EAN symbologies at a magn ification factor of 77 percent . Each character in a UPC-E bar code is composed of four elements : two bars and two spaces. The y the width of the narrow bar. ^BY command must be used to specif • supports a fixed ratio. ^B9 • Field data ( ^FD) is limited to exactly 10 charac ters, requiring a five-digit ma nufacturer’s code and five-digit product code. • When using the zero-suppressed versions of UPC, you must enter the full 10-character sequence. ZPL II c alculates and prints the shorten ed version. go to the UPC-E bar code is required, If additional information about Important • . www.aimglobal.org ^B9,h,f,g,e Format: Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees current ^FW Default: value h = bar code height Values: 1 32000 to (in dots) Default: value set by ^BY f = print Values: N = no interpretation Y = yes line Default: Y print g = Values: N = no interpretation Y = yes line above code Default: N e = print check digit Values: N = no Y = yes Default: Y Programming Guide P1099958-001 1/31/18

67 ZPL Commands 67 ^B9 This is an example of a UPC-E bar code: Example: UPC-E BAR CODE ZPL II CODE ^XA ^FO150,100^BY3 ^B9N,100,Y,N,Y ^FD1230000045^FS ^XZ UPC-E BAR CODE CHARACTERS 0123456789 Rules for Proper Product Code Numbers • If the last three d rer’s number are 000, 100, or 200, valid product code igits in the manufactu numbers are 00000 to 00999. , 800, or 900, 400, 500, 600, 700 rer’s number are 300, igits in the manufactu • If the last three d valid product code numbers are 00000 to 00099. • If the last two digits in the manufacturer’s number are 10, 20 , 30, 40, 50, 60, 70, 80, or 90, valid s are 00000 to 00009. product code number roduct code numbers are 00005 to es not end in zero (0), valid p • If the manufacturer’s number do 00009. 1/31/18 Programming Guide P1099958-001

68 ZPL Commands 68 ^BA Code 93 Bar Code ^BA – ^BA command creates a variable length, continuous symbology. The C ode 93 bar code is used The in many of the same applications uses the full 1 28-character ASCII set. ZPL II, as Code 39. It however, does not support ASCII c ontrol codes or escape sequenc es. It uses the substitute characters shown below. Control Code ZPL II Substitute Ctrl $ & Ctrl % ‘ Ctrl / ( ) Ctrl + code is composed of six eleme nts: three bars and three spaces. Each character in the Code 93 bar hough the control line prints as t e human-readable interpretation Although invoked differently, th code has been used. supports a fixed print ratio. ^BA • • Field data ( th (or length, if rotated) of the label. ^FD ) is limited to the wid Important • If additional information about the Code 93 bar code is require d, go to . www.aimglobal.org Format: ^BAo,h,f,g,e Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees ^FW value Default: current bar code height h = Values: 1 to 32000 (in dots) value set by ^BY Default: f = print Values: no N = interpretation yes Y = line Default: Y g = print Values: N = no interpretation Y = yes line above code Default: N e = print check digit Values: N = no Y = yes Default: N Programming Guide P1099958-001 1/31/18

69 ZPL Commands 69 ^BA a Code 93 bar code: This is an example of Example: ZPL II CODE CODE 93 BAR CODE ^XA ^FO100,75^BY3 ^BAN,100,Y,N,N ^FD12345ABCDE^FS ^XZ CODE 93 BAR CODE CHARACTERS 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ -.$/+%&’() SPACE Denotes an internal start/stop character that must precede and follow every bar code message. irs. Code 93 is also capable of encoding the full All control codes are used in pa Comments 128-character ASCII set. Full ASCII Mode for Code 93 red characters as shown in the the full 128-character ASCII set using pai Code 93 can generate following tables. 1/31/18 Programming Guide P1099958-001

70 ZPL Commands 70 ^BA Table 5 • ASCII Code 93 ASCII Code 93 SP Space ‘U NUL ! (A &A SOH “ (B & B STX # C ( & C ETX $ D ( & D EOT % E ( & E ENQ & F ( & F ACK ‘ G ( & G BEL ( H ( & H BS ) I ( & I HT * J ( & J LF ++ ++ & K VT , (L & L FF - - & M CR . . & N SO / / &O SI 0 O & P DLE 1 1 & Q DC1 2 2 & R DC2 3 3 & S DC3 4 4 & T DC4 5 5 & U NAK 6 6 & V SYN 7 7 & W ETB 8 8 & X CAN 9 9 & Y EM : (Z & Z SUB ; ‘F ‘A ESC < ‘G ‘B FS = ‘H ‘C FS > ‘I ‘D RS ? ‘J ‘E US 1/31/18 Programming Guide P1099958-001

71 ZPL Commands 71 ^BA Table 6 • ASCII Code 93 Code 93 ASCII ‘ ‘W @ ‘V a )A A A b )B B B c ) C C C d ) D D D e ) E E E f ) F F F g ) G G G h ) H H H I ) I I I j ) J J J k ) K K K l ) L L L m ) M M M n ) N N N o ) O O O p ) P P P q ) Q Q Q r ) R R R s ) S S S t ) T T T u ) U U U v ) V V V w ) W W W x ) X X X y ) Y Y Y z ) Z Z Z { ‘P [ ‘K | ‘Q \ ‘L } ‘R ] ‘M ~ ‘S ^ ‘N DEL ‘T _ ‘O Programming Guide P1099958-001 1/31/18

72 ZPL Commands 72 ^BB ^BB – CODABLOCK Bar Code The ^BB command produces a two-dimensional, multirow, stacked symbolog y. It is ideally suited for applications that r equire large amounts of information. Depending on the mode selected, the code consists of one to 44 stacked rows. Each row begins and ends with a start and stop pattern. • CODABLOCK A supports variable print ratios. • CODABLOCK E and F support only fixed print ratios. red, go to Important • If additional information about the CODABLOCK bar code is requi . www.aimglobal.org Format: ^BBo,h,s,c,r,m Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) inverted 180 degrees I = B = read from bottom up, 270 degrees Default: N h = bar code height 2 32000 Values: to for individual 8 Default: rows (in dots) individual row in This number, multiplied by the module, equals the height of the dots. s = security level Values: N = no Y = yes Default: Y ed and added Security level determines whet her symbol check-sums are generat to the symbol. Check sums are nev mbols. This er generated for single-row sy m is set to A . can be turned off only if parameter c = number of 2 to Values: characters 62 This is used to encode a CODABLOCK symbol. It gives the you con trol over the characters per width of the symbol. row (data columns) Programming Guide P1099958-001 1/31/18

73 ZPL Commands 73 ^BB Parameters Details number of rows to r = Values: 1 to 22 for CODABLOCK A: encode for CODABLOCK E and F: 2 to 4 ecified, a single row is produ ced. • If values for c and r are not sp ed, and c exceeds the maximum r • If a value for r is not specifi ange, a single row equal to the field data length is produced. • If a value for c is not specifi ed, the number of characters pe r row is r . derived by dividing the fi eld data by the value of • If the s parameter is set to the default of Y, then the checks um characters that are included count as two data characters . to 18 For example, if c = 6, r is set to 3 and s is set to N, then up characters can be used (6 x 3). However, if s is set to Y, then only 16 character can be used. • If the data field contains prim the arily numeric data, fewer than specified rows might be printed. If the field data contains sev eral shift and code-switch characters, more ows than the specified number of r might be printed. m = mode Values: A , E , F CODABLOCK A uses the C ode 39 character set. CODABLOCK F uses the Co de 128 character set. CODABLOCK E uses the Code 128 character set and automatically a dds FNC1. Default: F Programming Guide 1/31/18 P1099958-001

74 ZPL Commands 74 ^BB This is an example of a CODABLOCK bar code: Example: CODABLOCK BAR CODE ZPL II CODE ^XA ^BY2,3 ^FO10,10^BBN,30,,30,44,E ^FDZebra Technologies Corporation strives to be the expert supplier of innovative solutions to speciality demand labeling and ticketing problems of business and government. We will attract and retain the best people who will understand our customer's needs and provide them with systems, hardware, software, consumables and service offering the best value, high quality, and reliable performance, all delivered in a timely manner.^FS ^XZ Special Considerations for the ^BY ^BB Command When Using ^BYw,r,h command, when used with a ^BB code, are as follows: s for the The parameter module width (in dots) w = 2 Values: to 10 (CODABLOCK A only) Default: 2 r = ratio 3 (ratio has no effect on CODABLOCK E or F) Fixed Value: height of bars (in dots) h = 32,32000 Values: 1 to Default: 10 row height is not ll symbol height only when the CODABLOCK uses this as the overa parameter. ^BB h specified in the Character Set When Using ^BB Special Considerations for ^FD inter depends on the mode selec The character set sent to the pr ted in parameter m. CODABLOCK A: CODABLOCK A uses the same character set as Code 39. If any othe r ^FD statement, either no bar code is printed or an error message character is used in the is active). ^CV is printed (if CODABLOCK E: The Automatic Mode includes the full ASCII set except for thos e characters with special meaning to the printer. Function codes or the command. nul > character can be inserted using of the ^FH Code 128 Subset A < P1099958-001 1/31/18 Programming Guide

75 ZPL Commands 75 ^BB = 80 hex = 82 hex = 81 hex = 83 hex = 84 hex nted or an error message is For any other character above 84 hex, either no bar code is pri ^CV is active). printed (if CODABLOCK F: CODABLOCK F uses the full ASCII set, except for those characte rs with nul > character special meaning to the printer. Function codes or the Code 128 Subset A < command. ^FH can be inserted using of the = 80 hex = 82 hex = 81 hex = 83 hex = 84 hex P1099958-001 Programming Guide 1/31/18

76 ZPL Commands 76 ^BC Code 128 Bar Code (Subsets A, B, and C) ^BC – command creates the Code 128 bar code, a high-density, variabl e length, continuous, The ^BC roduct identification. designed for complexly encoded p alphanumeric symbology. It was haracters. There are 106 encoded printing characters in each set, Code 128 has three subsets of c ending on the character subset and each character c an have up to three different meanings, dep hree bars and three spaces. being used. Each Code 128 characte r consists of six elements: t • ^BC supports a fixed print ratio. • Field data ( ^FD ) is limited to the wid th (or length, if rotated) of the label. If additional information about the Code 128 bar code is requir ed, go to Important • www.aimglobal.org . ^BCo,h,f,g,e,m Format: Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees value ^FW current Default: h = bar code height Values: 1 to 32000 (in dots) Default: value set by ^BY f = print N Values: Y (yes) or (no) interpretation Default: Y line rinted in any font by placing t The interpretation line can be p he font command before the bar code command. print g = Values: Y (yes) or N (no) interpretation Default: N line above code e = UCC check digit Values: Y (turns on) or N (turns off) Mod 103 check digit is always there. It cannot be turned on or off. Mod 10 turned on. e and 103 appear together with N Default: Programming Guide P1099958-001 1/31/18

77 ZPL Commands 77 ^BC Details Parameters mode m = Values: no selected mode N = UCC Case Mode U = or ^SN • More than 19 digits in are eliminated. ^FD • Fewer than 19 digits in ^FD or ^SN add zeros to the right to bring the count to 19. This produces an invalid interpretation line. A = Automatic Mode This analyzes the data sent and automatically determines the be st ^FD haracter set can be used in the packing method. The full ASCII c statement — the printer determines when to shift subsets. A str ing of four or more numeric d igits causes an automatic shift to Subset C. D = UCC/EAN Mode (x.11.x and newer firmware) This allows dealing with UCC/EAN with and without chained set application identifiers. The code starts in the appropriate sub r followed by FNC1 to indicate a UCC/EAN 128 bar code. The printe automatically strips out parentheses and spaces for encoding, b ut prints them in the human-readable section. The printer automati cally determines if a check digit is re quired, calculate it, and prin t it. Automatically sizes t he human readable. Default: N Example 1: This is an example of a Code 128 bar code: ZPL II CODE CODE 128 BAR CODE ^XA ^FO100,100^BY3 ^BCN,100,Y,N,N ^FD123456^FS ^XZ Code 128 Subsets The Code 128 character subsets ar e referred to as Subset A, Sub set B, and Subset C. A subset can be selected in these ways: • A special Invocation Code can be included in the field data ( ^FD ) string associated with that bar code. ield data. If no Start Code is • The desired Start Code can be p laced at the beginning of the f entered, Subset B are used. To change subsets within a bar cod e, place the Invocation Code at the appropriate points within the field data ( Invocation Code. For in effect until changed with the ) string. The new subset stays ^FD nges the Subset to A. in the field data cha >7 example, in Subset C, shows the Code 128 Invocation Co he three subsets. Table 7 des and Start Characters for t 1/31/18 Programming Guide P1099958-001

78 ZPL Commands 78 ^BC Table 7 • Code 128 I nvocation Characters Subset C Subset B Subset A Decimal Invocation Value Character Character Character Code 62 >< > > 30 >0 ~ 94 >= DEL USQ 95 >1 FNC 3 FNC 3 96 >2 FNC 2 FNC 2 97 >3 SHIFT SHIFT 98 >4 CODE C CODE C 99 >5 CODE B FNC 4 CODE B 100 >6 CODE A CODE A FNC 4 101 >7 FNC 1 FNC 1 FNC 1 102 >8 Start Characters (Numeric Pairs give Alpha/Numerics) Start Code A 103 >9 (Normal Alpha/Numeric) Start Code B 104 >: (All numeric (00 - 99) Start Code C 105 >; Table 8 shows the character sets for Code 128: 1/31/18 Programming Guide P1099958-001

79 ZPL Commands 79 ^BC Table 8 • Code A Code B Code C Value Code B Code A Value Code C U U 53 53 SP SP 0 00 V V 54 54 ! ! 01 1 W W 55 55 '' '' 02 2 X X 56 56 # # 03 3 Y Y 57 57 $ $ 04 4 Z Z 58 58 % % 05 5 [ [ 59 59 & & 06 6 \ \ 60 60 ' ' 07 7 ] ] 61 61 ( ( 08 8 ^ ^ 62 62 ) ) 09 9 _ _ 63 63 * * 10 10 NUL . 64 64 + + 11 11 SOH a 65 65 , , 12 12 STX b 66 66 - - 13 13 ETX c 67 67 . . 14 14 EOT d 68 68 / / 15 15 ENQ e 69 69 0 0 16 16 ACK f 70 70 1 1 17 17 BEL g 71 71 2 2 18 18 BS h 72 72 3 3 19 19 HT i 73 73 4 4 20 20 LF j 74 74 5 5 21 21 VT k 75 75 6 6 22 22 FF l 76 76 7 7 23 23 CR m 77 77 8 8 24 24 SO n 78 78 9 9 25 25 SI o 79 79 : : 26 26 DLE p 80 80 ; ; 27 27 DC1 q 81 81 < < 28 28 DC2 r 82 82 = = 29 29 DC3 s 83 83 > > 30 30 DC4 t 84 84 ? ? 31 31 NAK u 85 85 @ @ 32 32 SYN v 86 86 A A 33 33 ETB w 87 87 B B 34 34 CAN x 88 88 C C 35 35 EM y 89 89 D D 36 36 SUB z 90 90 E E 37 37 ESC { 91 91 F F 38 38 FS | 92 92 G G 39 39 G S } 93 93 H H 40 40 RS ~ 94 94 I I 41 41 US DEL 95 95 J J 42 42 FNC3 FNC3 96 K 96 K 43 43 FNC2 FNC2 97 L L 97 44 44 SHIFT SHIFT 98 M M 98 45 45 Code C Code C 99 N N 99 46 46 Code B FNC4 Code B O O 47 47 100 FNC4 Code A Code A P P 48 48 101 FNC1 FNC1 FNC1 Q Q 49 49 102 START (Code A) R R 50 50 103 START (Code B) S S 51 51 104 START (Code C) T T 52 52 105 P1099958-001 Programming Guide 1/31/18

80 ZPL Commands 80 ^BC Example 2: Figures A and B are examples of identical bar codes, and Figure C is an example of switching from Subset C to B to A, as follows: ^XA ^FO100,75 ^BCN,100,Y,N,N ^FDCODE128^FS ^XZ Figure A: Subset B with no start character ^XA ^FO100,75 ^BCN,100,Y,N,N ^FD>:CODE128^FS ^XZ Figure B: Subset B with start character Because Code 128 Subset B is the II defaults to Subset B if no most commonly used subset, ZPL start character is specif ied in the data string. ^XA ^FO50,50 ^BY3^BCN,100,Y,N,N ^FD>;382436>6CODE128>752375152^FS ^XZ Figure C: Switching from Subset C to B to A Works Within a ZPL II Script ^BC How ^XA – the first command starts the label format. – the second command sets the fi ^FO100,75 eld origin at 100 dots across t he x-axis and 75 dots down the y-axis from the upper-left corner. ^BCN,100,Y,N,N – the third command calls for a Code 128 bar code to be printed with no rotation (N) and a height of 100 dots. An interpretation l ine is printed (Y) below the bar code (N). No UCC check digit is used (N). ^FD>:CODE128^FS (Figure A) (Figure B) – the field data command specifies the ^FDCODE128^FS content of t he bar code. ^XZ – the last command en indicates the end o f the label. ds the field data and The interpretation lin e prints below the code with the UCC chec k digit turned off. command for Figure A does not s ^FD is used. In Figure B, the pecify any subset, so Subset B The ^FD command specifically calls Subset B with the >: Start Code. Al though ZPL II defaults to Code B, e Invocation Codes in the comm it is good practice to include th and. 1/31/18 Programming Guide P1099958-001

81 ZPL Commands 81 ^BC directly as ASCII text, excep Code 128 – Subset B is programmed t for values greater than 94 decimal and a few spec ial characters that ing the invocation codes. Those must be programmed us characters are: ^ > ~ Example 3: Code 128 – Subsets A and C to 99, in the field data string. For pairs of digits, 00 C are programmed in Code 128, Subsets A and details, see . Table 7 on page 78 In Subset A, each pair of digits results in a single character being encoded in the bar code; in Subset C, characters are printed as entered. Figure E below is an exam ple of Subset A (>9 is the Start Code for Subset A). Nonintegers programmed as the first character of a digit pair ( D2) are ignored. However, nonintegers r of a digit pair (2D) invalid programmed as the second characte t pair, and the pair ate the entire digi ft is also ignored. st before a code shi git in the field data string ju is ignored. An extra unpaired di f Subset C. Notice th at the bar codes are identical. In Figure D and Figure E below are examples o s paired with the 4. the program code D is ignored and the 2 i for Figure F, the ^XA ^FO100,75^BY3 ^BCN,100,Y,N,N ^FD>;382436^FS ^XZ Figure D: Subset C with normal data ^XA ^FO100,75^BY3 ^BCN,100,Y,N,N ^FD>;38D2436^FS ^XZ Figure E: Subset C with ignored alpha character ^XA ^FO100,75^BY3 ^BCN,100,Y,N,N ^FD>935473637171824^FS ^XZ Figure F: Subset A The UCC/EAN-128 Symbology s UCC/EAN-128, a dentifier data i representation of Application I The symbology specified for the and the Uniform Code Council variant of Code 128, exclusively reserved to EAN International (UCC). Note • It is not intended to be used for data to be sc anned at the poi nt of sales in r etail outlets. 1/31/18 Programming Guide P1099958-001

82 ZPL Commands 82 ^BC UCC/EAN-128 offers several advant mplete, alphanumeric, one- ages. It is one of the most co dimensional symbologies available today. The use of three diffe rent character sets (A, B and C), full 128 ASCII character set. C ode 128 is one of t facilitates the encoding of the he most compact linear bar code symbologies. Char acter set C enables numeric da ta to be represen ted in a double density mode. In this mode, two digits are represented by only one symbol character saving valuable space. The code is concatenated. That means that multiple AIs a nd their fields may be combined into a single bar code. The code 8 symbols use two independent self- is also very reliable. Code 12 checking features which improves printing and scanning reliabil ity. UCC/EAN-128 bar codes always contain a special non-data charact er known as function 1 (FNC 1), which follows the start characte r of the bar code. It enables s canners and processing software to auto-discriminate bet ween UCC/EAN-128 and ot her bar code symbol ogies, and subsequently only process relevant data. The UCC/EAN-128 bar code is made up of a leading quiet zone, a Code 128 start character A, B, or eld), a symbol check character, a stop dentifier plus data fi Data (Application I C, a FNC 1 character, ailing quiet zone. character, and a tr UCC/EAN, UCC/128 are a couple of w ays you'll hear someone refer to the code. This just indicates that the code is str uctured as dictated by the application iden tifiers that are used. SSCC (Serial Shipping Container Code) formatted following the d ata structure layout for Application UCC/EAN Application Identifier Identifier 00. See Table 9, . It could be 00 which is the onpage85 d for their bar SSCC code. The customer needs to l et us know what application i dentifiers are use code so we can help them. There are several ways of writing the code to prin t the code to Application Identifier '00' structure. Using N for the m ode (m) parameter ion identifier 00 structure: This example shows with applicat Example 1: ZPL II CODE N FOR THE M PARAMETER ^XA ^FO90,200^BY4 ^BCN,256,Y,N,Y,N ^FD>;>80012345123451234512^FS ^XZ • >;>8' sets it to subset C, function 1 • '00' is the application identifier followed by '17 characters' , the check digit is selected r to automatically print the 20th character. using the 'Y' for the (e) paramete • you are not limited to 19 characters with mode set to N 1/31/18 P1099958-001 Programming Guide

83 ZPL Commands 83 ^BC ode (m) parameter Using U for the m Example 1: ation identifier 00 format: The example shows the applic ZPL II CODE U FOR THE M PARAMETER ^XA ^FO90,200 ^BY4^BC,256,Y,N,,U ^FD0012345123451234512^FS ^XZ UCC Case Mode • Choosing ilable in selects UCC Case mode. You will have exactly 19 characters ava U ^FD . • Subset C using FNC1 values are automatically selected. • Check digit is automatically inserted. Using D for the m ode (m) parameter Example 1: entifier 00 format ((x.11.x or This example shows application id later): D FOR THE M PARAMETER ZPL II CODE ^XA ^FO50,200^BCN,150,Y,N,,D ^FD(00)10084423 7449200940^FS ^XZ s a place holder for (0 at end of field dat a is a bogus characte the check digit the r that is inserted a printer will autom atically insert. • Subset C using FNC1 values are automatically selected. • Parentheses and spaces can be i n the field data. '00' applicat ion identifier, followed gus check digit place holder. by 17 characters, followed by bo • Check digit is automatically inserted. The printer will automa tically calculate the e. into the bar code and interpretation lin check digit and put it ces but will strip them • The interpretation line will also show the parentheses and spa out from the actual bar code. P1099958-001 Programming Guide 1/31/18

84 ZPL Commands 84 ^BC Printing the Interpretation Line ont with firmware Example 1: This example shows printing the interpretation in a different f x.11.x or later: INTERPRETATION LINE ZPL II CODE ^XA ^FO50,200 ^A0N,40,30^BCN,150,Y,N,Y ^FD>;>80012345123451234512^FS ^XZ The font command ( er the font and size of the ) can be added and changed to alt ^A0N,40,30 interpretation line. With firmware version later than x.10.x • A separate text field needs to be written. • The interpretation line needs to be turned off. for the separate text field. ^A0N,50,40 is the font and size selection • text field. • You have to make sure you enter the correct check digit in the retation line with • Creating a separate text field allows you to format the interp parentheses and spaces. ZPL II CODE FIRMWARE OLDER THAN X.10.X ^XA ^FO25,25 ^BCN,150,N,N,Y ^FD>;>80012345123451234512^FS ^FO100,190 ^A0N,50,40 ^FD(00) 1 2345123 451234512 0^FS ^XZ CC/EAN APPLICATION IDENTIFIER Application Identifiers — U meaning and the format of the data that An Application Identifier is a p refix code used to identify the follows it (data field). , measurements, locations, and many entification, traceabilit There are AIs for id y, dates, quantity other types of information. For example, the AI for batch num ber is 10, and the batch numbe r AI is always followed by an t to exceed 20-characters. alphanumeric batch code no at can be used and understood by The UCC/EAN Application Identifiers provide an open standard th all companies in the trading chain, regardless of the company t hat originally issued the codes. 1/31/18 Programming Guide P1099958-001

85 ZPL Commands 85 ^BC I Table 9 • UCC/EAN Application Identifier Plus The Fol lowing Data AI Data Content Structure Serial Shipping Container Code (SSCC) exactly 18 digits 00 exactly 14 digits Shipping Container Code 01 up to 20 alpha numerics Batch Numbers 10 exactly 6 digits Production Date (YYMMDD) 11 exactly 6 digits Packaging Date (YYMMDD) 13 exactly 6 digits Sell By Date (YYMMDD) 15 exactly 6 digits Expiration Date (YYMMDD) 17 exactly 2 digits Product Variant 20 up to 20 alpha numerics Serial Number 21 HIBCC Quantity, Date, Batch and Link up to 29 alpha numerics 22 a up to 19 alpha numerics Lot Number 23 Quantity Each 30 b Net Weight (Kilograms) exactly 6 digits 310 b exactly 6 digits Length, Meters 311 b exactly 6 digits Width or Diameter (Meters) 312 b Depths (Meters) exactly 6 digits 313 b exactly 6 digits Area (Sq. Meters) 314 b exactly 6 digits Volume (Liters) 315 b Volume (Cubic Meters) exactly 6 digits 316 b exactly 6 digits Net Weight (Pounds) 320 up to 29 alpha numerics Customer PO Number 400 n Code using EAN 13 or DUNS Ship To (Deliver To) Locatio exactly 13 digits 410 Number with leading zeros Bill To (Invoice To) Location Code using EAN 13 or DUNS exactly 13 digits 411 Number with leading zeros Purchase from exactly 13 digits 412 up to 9 alpha numerics Ship To (Deliver To) Postal C ode within single postal authority 420 3 digits plus up to 9 alpha numerics Ship To (Deliver To) Postal C ode with 3-digit ISO Country Code 421 Prefix Roll Products - width, length, cor e diameter, dire ction and spl ices exactly 14 digits 8001 up to 20 alpha numerics Electronic Serial number for cellular mobile phone 8002 a. Plus one digit for length indication. b. Plus one digit for dec imal point indication. Note • Table 9 is a partial table showing the application identifiers. For mo re current and complete the Internet for . UCC Application Identifier information, search 1/31/18 Programming Guide P1099958-001

86 ZPL Commands 86 ^BC For date fields that only need t o indicate a year and month, th e day field is set to 00 . Chaining several application identi fiers (firmwar e x.11.x or la ter) the 's so that the scanners reading The FNC1, which is invoked by >8 , is inserted just before the AI code sees the FNC1 and k nows that an AI follows. This is an example with the mode parameter set to Example 1: A (automatic): ^XA ^BY2,2.5,193 ^FO33,400 ^BCN,,N,N,N,A ^FD>;>80204017773003486100008535>8910001>837252^FS ^FT33,625^AEN,0,0^FD(02)04017773003486(10)0008535(91)0001(37)2 52^FS ^XZ U : Example 2: This is an example with the mode parameter set to ^XA ^BY3,2.5,193 ^FO33,200 ^BCN,,N,N,N,U ^FD>;>80204017773003486>8100008535>8910001>837252^FS ^FT33,455^A0N,30,30^FD(02)04017773003486(10)0008535(91)0001(37 )252^FS ^XZ Example 3: This is an example with the mode parameter set to D*: ^XA ^PON ^LH0,0 ^BY2,2.5,145 ^FO218,343 ^BCB,,Y,N,N,D ^FD(91)0005886>8(10)0000410549>8(99)05^FS ^XZ D* — When trying to print the last Application Identifier with an odd number of characters, a problem ng Mode D. The proble m was fixed in firmware version existed when printing EAN128 bar codes usi V60.13.0.6. Programming Guide P1099958-001 1/31/18

87 ZPL Commands 87 ^BD UPS MaxiCode Bar Code ^BD – The ^BD l, optically read (not scanned ) code. This symbology command creates a two-dimensiona was developed by UPS (Un ited Parcel Service). Notice that there are no additi t generate an onal parameters fo r this code an d it does no interpretation line. The ^BY command has no effec t on the UPS MaxiCode bar code. However, t he ^CV command can be activated. Format: ^BDm,n,t Details Parameters mode m = Values: 2 = structured carrier message: numeric postal code (U.S.) 3 = structured carrier message: alph anumeric postal code (non-U.S.) 4 = standard symbol, secretary 5 = full EEC reader program, secretary 6 = 2 Default: n = symbol number 8 tructured document can be added in a s to 1 Values: Default: 1 total number of t = Values: to 8 , representing the total numbe r of symbols in this sequence 1 symbols 1 Default: Example: This is an example of UPS M AXICODE - MODE 2 bar code: UPS MAXICODE - MODE 2 ZPL II CODE ^XA ^FO50,50 ^CVY ^BD^FH^FD001840152382802 [)>_1E01_1D961Z00004951_1DUPSN_ 1D_06X610_1D159_1D1234567_1D1/1_ 1D_1DY_1D634 ALPHA DR_ 1DPITTSBURGH_1DPA_1E_04^FS ^FO30,300^A0,30,30^FDMode2^FS ^XZ when Using Special Considerations for ^FD ^BD hpm arts: a high prio rity message ( statement is divided into two p ^FD The ) and a low priority U.S. Style Postal Code; ). There are two types of high priority messages. One is for a lpm message ( the other is for a non -U.S. Style Postal Code. The syntax for e ither of these high priority messages must be exactly as shown or a n error message is generated. Format: ^FD 1/31/18 P1099958-001 Programming Guide

88 ZPL Commands 88 ^BD Details Parameters = high priority Values: 9 , except where noted 0 to U.S. Style Postal Code (Mode 2) message = aaabbbcccccdddd (applicable only aaa = three-digit class of service in Modes 2 and untry zip code three-digit co bbb = 3) ccccc = five-digit zip code dddd = four-digit zip code extension (i f none exists, four zeros (0000 ) must be entered) non-U.S. Style Postal Code (Mode 3) = aaabbbcccccc aaa = three-digit class of service untry zip code bbb = three-digit co through A six-digit zip code ( ccccc = 9 to 0 ) or Z o separate format GS is used to separate fields in a message (0x1D). RS is used t = low priority types (0x1E). EOT is the end of transmission characters. message (only Message Header [)>RS applicable in Transportation Data Modes 2 and 3) 01GS96 Format Header Tracking Number* SCAC* GS UPS Shipper Number GS Julian Day of Pickup GS Shipment ID Number GS Package n/x GS Package Weight GS Address Validation GS GS Ship to Street Address Ship to City GS Ship to State GS RS RS EOT End of Message Mandatory Data for UPS) * ( Comments apply only when usi • The formatting of and ng Modes 2 and 3. ^FD command and places it in the Mode 4, for example, takes wha tever data is defined in the symbol. When formatting MaxiCode data • UPS requires that certain data be present in a defined manner. for UPS, fields in the for UPS, always use uppercase c haracters. When filling in the follow the data size and types specified in Guide to Bar Coding with UPS . • If you do not choose a mode, the default i s Mode 2. If you use non-U.S. Postal Codes, you valid character or message too short). When using non-U.S. probably get an error message (in codes, use Mode 3. • ZPL II doesn’t automatically c hange your mode based on the zip code format. • When using special characters, such as GS, RS, or EOT, use the command to tell ZPL II to ^FH use the hexadecimal value followin _ ). g the underscore character ( P1099958-001 Programming Guide 1/31/18

89 ZPL Commands 89 ^BE EAN-13 Bar Code ^BE – ^BE command is similar to the UPC-A bar code. It is widely used thr oughout Europe and Japan The in the retail marketplace. 12 data characters, The EAN-13 bar code has cter than the UPC-A code. An one more data chara EAN-13 symbol contains the same nu mber of bars as the UPC-A, bu t encodes a 13th digit into a parity pattern of the left-hand six digits. This 13th digit, in combination with the 12th digit, represents a country code. ^BE • supports fixed print ratios. • Field data ( ) is limited to exactly 12 charac ters. ZPL II automatically tru ncates or pads on ^FD the left with zeros to achieve the required number of character s. application of EAN-13, the • When using JAN-13 (Japanese Article Numbering), a specialized first two non-zero digits sent to the printer must be 49. Note • Use Interleaved 2 of 5 for UCC and EAN 14. , go to Important • If additional information about the EAN-13 bar code is required . www.aimglobal.org Format: ^BEo,h,f,g Details Parameters o = orientation Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees Default: current ^FW value h = bar code height Values: 1 to 32000 (in dots) Default: ^BY value set by print f = Values: N = no interpretation yes Y = line Default: Y g = print Values: no N = interpretation yes Y = line above code N Default: Programming Guide 1/31/18 P1099958-001

90 ZPL Commands 90 ^BE This is an example of an EAN-13 bar code: Example: EAN-13 BAR CODE ZPL II CODE ^XA ^FO100,100^BY3 ^BEN,100,Y,N ^FD12345678^FS ^XZ EAN-13 BAR CODE CHARACTERS 0123456789 10 check-digit scheme for erro The EAN-13 bar code uses the Mod r checking. Comments For more information on Mod 10, see Mod 10 Check Digit onpage1349 . Programming Guide 1/31/18 P1099958-001

91 ZPL Commands 91 ^BF ^BF – MicroPDF417 Bar Code The ^BF command creates a two-dimensional, multi-row, continuous, stac ked symbology identical to PDF417, except it replaces the 17-module-wide start and stop patterns and left/right row indicators with a unique set o f 10-module-wide row address patt erns. These reduce overall symbol at row heights as low as 2X. width and allow linear scanning MicroPDF417 is designed h a need for improv ed area efficiency but without the for applications wit requirement for PDF417’s maximum data capacity. It can be print ed only in specific combinations of rows and columns up to a maximum of four data columns by 44 row s. Field data ( ^FD ) and field hexadecimal ( ^FH ) are limited to: • 250 7-bit characters • 150 8-bit characters • 366 4-bit numeric characters Format: ^BFo,h,m Parameters Details orientation o = Values: normal N = R = rotated 90 degrees (clockwise) I = inverted 180 degrees read from bottom up, 270 degrees B = Default: current ^FW value bar code height h = Values: 9999 to 1 (in dots) value exists). ^BY or 10 (if no ^BY value set by Default: mode m = ) 0 33 to Values: (see Table 10, MicroPDF417 Mode onpage92 0 ) Table 10 (see Default: Example: This is an example of a MicroPDF417 bar code: MICRO-PDF417 BAR CODE ZPL II CODE ^XA ^FO100,100^BY6 ^BFN,8,3 ^FDABCDEFGHIJKLMNOPQRSTUV^FS ^XZ To encode data into a MicroPDF417 bar code, complete these step s: 1. Determine the type of data to be encoded (for example, ASCII ch aracters, numbers, 8-bit data, or a combination). Determine the maximum amount of data to be encoded within the b ar code (for 2. example, number of ASCII characte rs, quantity of numbers, or qu antity of 8-bit data characters). 1/31/18 Programming Guide P1099958-001

92 ZPL Commands 92 ^BF Determine the percentage of chec k digits that are used within t he bar code. The higher 3. the percentage of check digits t hat are used, the more resistan t the bar code is to damage — however, the size o f the bar code increases. Table10 ct the mode Use 4. with the information gathered from the questions above to sele of the bar code. Table 10 • MicroPDF417 Mode Max %of Number Number Mode Max Digits of Data Cws for (M) Alpha of Data Rows Characters Columns EC 0 1 11 64 6 8 1 1 14 50 12 17 2 1 17 41 18 26 3 1 20 40 22 32 4 1 24 33 30 44 5 1 28 29 38 55 6 2 8 50 14 20 7 2 11 41 24 35 8 2 14 32 36 52 9 2 17 29 46 67 10 2 20 28 56 82 11 2 23 28 64 93 12 2 26 29 72 105 13 3 6 67 10 14 14 3 8 58 18 26 15 3 10 53 26 38 16 3 12 50 34 49 17 3 15 47 46 67 18 3 20 43 66 96 19 3 26 41 90 132 20 3 32 40 114 167 21 3 38 39 138 202 22 3 44 38 162 237 23 4 6 50 22 32 24 4 8 44 34 49 25 4 10 40 46 67 26 4 12 38 58 85 27 4 15 35 76 111 28 4 20 33 106 155 29 4 26 31 142 208 30 4 32 30 178 261 31 4 38 29 214 313 32 4 44 28 250 366 33 4 4 50 14 20 1/31/18 Programming Guide P1099958-001

93 ZPL Commands 93 ^BI ^BI – Industrial 2 of 5 Bar Codes The ^BI command is a discrete, self-ch ecking, continuous numeric symbo logy. The Industrial 2 of 5 bar code has been in use the longest of the 2 of 5 family of ba r codes. Of that family, the Standard 2 ^BJ ) and Interleaved 2 of 5 ( ^B2 ) bar codes are also available in ZPL II. of 5 ( the bars. Two bar widths are employed in the information is contained in With Industrial 2 of 5, all of ng three times the width of the narrow bar. this code, the wide bar measuri • ^BI supports a print rati o of 2.0:1 to 3.0:1. • Field data ( ^FD ) is limited to the width (or le ngth, if rotated) of the label. Important • If additional information about the Industrial 2 of 5 bar code, go to www.aimglobal.org . Format: ^BIo,h,f,g Details Parameters orientation o = Values: N = normal rotated 90 degrees (clockwise) R = I = inverted 180 degrees B = read from bottom up, 270 degrees current ^FW value Default: bar code height h = Values: 1 to 32000 (in dots) Default: value set by ^BY f = print Values: N = no interpretation yes Y = line Default: Y g = print Values: no N = interpretation Y = yes line above code Default: N Programming Guide 1/31/18 P1099958-001

94 ZPL Commands 94 ^BI ndustrial 2 of 5 bar code: This is an example of an I Example: INDUSTRIAL 2 OF 5 BAR CODE ZPL II CODE ^XA ^FO100,100^BY3 ^BIN,150,Y,N ^FD123456^FS ^XZ INDUSTRIAL 2 OF 5 BAR CODE CHARACTERS 0123456789 Start/Stop (internal) Programming Guide P1099958-001 1/31/18

95 ZPL Commands 95 ^BJ Standard 2 of 5 Bar Code ^BJ – ^BJ command is a discrete , self-checking, continuous numeric symbo logy. The he information is contained in th With Standard 2 of 5, all of t e bars. Two bar widths are employed in this code, the wide bar measuri ng three times the width of the narrow bar. • ^BJ supports a print rati o of 2.0:1 to 3.0:1. ngth, if rotated) of the label. ^FD ) is limited to the width (or le • Field data ( Important • If additional information about the Standard 2 of 5 bar code is required, go to www.aimglobal.org . Format: ^BJo,h,f,g Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees current value ^FW Default: bar code height h = 32000 Values: 1 to (in dots) Default: value set by ^BY f = print Values: N = no interpretation Y = yes line Default: Y g = print Values: no N = interpretation Y = yes line above code Default: N tandard 2 of 5 bar code: Example: This is an example of a S ZPL II CODE STANDARD 2 OF 5 BAR CODE ^XA ^FO100,100^BY3 ^BJN,150,Y,N ^FD123456^FS ^XZ STANDARD 2 OF 5 BAR CODE CHARACTERS 0123456789 Start/Stop (automatic) Programming Guide 1/31/18 P1099958-001

96 ZPL Commands 96 ^BK ^BK – ANSI Codabar Bar Code The ANSI Codabar bar code is used in a variety of information p rocessing applications such as libraries, the medical industry , and overnight package delivery companies. This bar code is also of 7 code. It was originally d eveloped for retail price labeling. known as USD-4 code, NW-7, and 2 mposed of seven elements: four bars and three spaces. Codabar Each character in this code is co bar codes use two character sets, numeric and control (start an d stop) characters. • ^BK supports a print rati o of 2.0:1 to 3.0:1. • Field data ( ^FD ) is limited to the width (or le ngth, if rotated) of the label. Important • the ANSI Codabar bar code is re quired, go to If additional information about www.aimglobal.org . Format: ^BKo,e,h,f,g,k,l Details Parameters o = orientation Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees Default: current ^FW value check digit e = Fixed Value: N h = bar code height 1 to 32000 Values: (in dots) ^BY Default: value set by print f = Values: N = no interpretation Y = yes line Default: Y g = print Values: no N = interpretation Y = yes line above code Default: N designates a k = Values: A,B , C , D start character Default: A l = designates stop , C Values: A,B , D character Default: A Programming Guide P1099958-001 1/31/18

97 ZPL Commands 97 ^BK ANSI Codabar bar code: Example: This is an example of an ZPL II CODE ANSI CODABAR BAR CODE ^XA ^FO100,100^BY3 ^BKN,N,150,Y,N,A,A ^FD123456^FS ^XZ ANSI CODABAR BAR CODE CHARACTERS 0123456789 Control Characters -:.$/+ Start/Stop Characters ABCD Programming Guide 1/31/18 P1099958-001

98 ZPL Commands 98 ^BL ^BL – LOGMARS Bar Code The ^BL command is a special applicatio n of Code 39 used by the Depart ment of Defense. LOGMARS is an acronym ions of Automated M arking and Reading Symbols. for Logistics Applicat • ^BL supports a print rati o of 2.0:1 to 3.0:1. • Field data ( ^FD Lowercase ) is limited to the width (or le ngth, if rotated) of the label. string are converted to the supported uppercase LOGMARS ^FD letters in the characters. d, go to Important • If additional information about the LOGMARS bar code is require www.aimglobal.org . Format: ^BLo,h,g Parameters Details o = orientation Values: normal N = R = rotated 90 degrees (clockwise) inverted 180 degrees I = B = read from bottom up, 270 degrees value Default: current ^FW h = bar code height 32000 Values: 1 to (in dots) Default: value set by ^BY g = print Values: no N = interpretation Y = yes line above code Default: N This is an example of a LOGMARS bar code: Example: LOGMARS BAR CODE ZPL II CODE ^XA ^FO100,75^BY3 ^BLN,100,N ^FD12AB^FS ^XZ LOGMARS BAR CODE CHARACTERS 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ -.$/+% SPACE P1099958-001 Programming Guide 1/31/18

99 ZPL Commands 99 ^BL check digit using mandatory The LOGMARS bar code produces a Comments Mod 43 calculations. For further information on the Mod 43 chec k digit, see Mod 10 Check Digit onpage1349 . P1099958-001 Programming Guide 1/31/18

100 ZPL Commands 100 ^BM ^BM – MSI Bar Code The ^BM command is a pulse-width modul ated, continuous , non-self- chec king symbology. It is a ^BP ). variant of the Plessey bar code ( is composed of eight element Each character in the MSI bar code s: four bars and four adjacent spaces. • ^BM o of 2.0:1 to 3.0:1. supports a print rati • For the bar code to be valid, field data ( ^FD ) is limited to 1 to 14 digits when , plus a A e is B , C , or D . ^FD is limited to 1 to 13 digits when parameter e is parameter quiet zone. Important • If additional information about the MSI bar code is required, g o to www.aimglobal.org . Format: ^BMo,e,h,f,g,e2 Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) inverted 180 degrees I = read from bottom up, 270 degrees B = Default: current ^FW value check digit e = Values: A = no check digits selection B = 1 Mod 10 C = 2 Mod 10 1 Mod 11 and 1 Mod 10 D = B Default: bar code height h = Values: 1 to 32000 (in dots) Default: value set by ^BY f = print Values: N = no interpretation Y = yes line Default: Y g = print Values: N = no interpretation Y = yes line above code Default: N e2 = inserts check Values: no N = digit into the Y = yes interpretation line Default: N Programming Guide P1099958-001 1/31/18

101 ZPL Commands 101 ^BM This is an example of a MSI bar code: Example: MSI BAR CODE ZPL II CODE ^XA ^FO100,100^BY3 ^BMN,B,100,Y,N,N ^FD123456^FS ^XZ MSI BAR CODE CHARACTERS 123456789 Programming Guide 1/31/18 P1099958-001

102 ZPL Commands 102 ^BO Aztec Bar Code Parameters ^BO – The command creates a two-dimensio nal matrix symbology made up of square modules ^BO arranged around a bulls-eye pattern at the center. V50.13.2 or later. Note • The Aztec bar code works with f irmware version V60.13.0.11A and Format: ^BOa,b,c,d,e,f,g Details Parameters a = orientation Values: N = normal R = rotated I = inverted 180 degrees read from bottom up, 270 degrees B = Default: current value ^FW magnification b = 1 to 10 Values: factor Default: 1 on 150 dpi printers 2 200 dpi printers on 3 on 300 dpi printers 6 on 600 dpi printers extended channel c = Values: if data contains ECICs Y = interpretation N = if data does not contain ECICs. code indicator N Default: error control and d = Values: rrection level default error co 0 = symbol size/type 01 to 99 = error correction pe rcentage (minimum) indicator 101 to 104 = 1 to 4-layer compact symbol 201 to 232 = 1 to 32-layer full-range symbol 300 = a simple Aztec “Rune” Default: 0 menu symbol e = Values: Y = if this symbol is to be a menu ( bar code reader initialization) symbol indicator N = if it is not a menu symbol Default: N f = number of symbols Values: 1 through 26 for structured Default: 1 append ng with 24-character maximum The ID field is a text stri g = optional ID field for structured no ID Default: append P1099958-001 Programming Guide 1/31/18

103 ZPL Commands 103 ^BO command: ^B0 This is an example of the Example: ZPL II CODE GENERATED LABEL ^XA ^B0R,7,N,0,N,1,0 ^FD 7. This is testing label 7^FS ^XZ P1099958-001 Programming Guide 1/31/18

104 ZPL Commands 104 ^BP Plessey Bar Code ^BP – The command is a pulse-width modul ated, continuous , non-self- chec king symbology. ^BP Each character in the Plessey ba r code is composed of eight ele ments: four bars and four adjacent spaces. • ^BP supports a print rati o of 2.0:1 to 3.0:1. ngth, if rotated) of the label. ^FD ) is limited to the width (or le • Field data ( If additional information about the Plessey bar code is require d, go to Important • www.aimglobal.org . Format: ^BPo,e,h,f,g Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) inverted 180 degrees I = B = read from bottom up, 270 degrees Default: ^FW value current e = print check digit Values: N = no Y = yes Default: N h = bar code height Values: N = no (in dots) Y = yes Default: N print f = Values: N = no interpretation yes Y = line Default: Y g = print Values: no N = interpretation yes Y = line above code N Default: Programming Guide P1099958-001 1/31/18

105 ZPL Commands 105 ^BP This is an example of a Plessey bar code: Example: ZPL II CODE PLESSEY BAR CODE ^XA ^FO100,100^BY3 ^BPN,N,100,Y,N ^FD12345^FS ^XZ PLESSEY BAR CODE CHARACTERS 0123456789 ABCDEF Programming Guide 1/31/18 P1099958-001

106 ZPL Commands 106 ^BQ ^BQ – QR Code Bar Code The ^BQ command produces a matrix symbology consisting of an array of nominally square modules arranged in an overall s quare pattern. A unique pattern at three of the symbol’s four bar code size, position, and inc corners assists in determining lination. A wide range of symbol sizes is possible, along with four level s of error correction. User-specified module dimensions provide a wide variety of symbol production t echniques. QR Code Model 1 is the original s pecification, while QR Code Mo del 2 is an enhanced form of the symbology. Model 2 provides additional features and can be auto matically differentiated from Model 1. l and should normally be used. Model 2 is the recommended mode ^FD string. This bar code is printed using field data specified in a subseq uent a, 8-bit byte data, and Kanji Encodable character sets inclu de numeric data, alphanumeric dat characters. Important • If additional information about the QR Code bar code is require d, go to www.aimglobal.org . Format: ^BQa,b,c,d,e Parameters Details a = field orientation has no effect on rotation) Values: normal ( ^FW model b = Values: 2 (enhanced – recommended) 1 (original) and Default: 2 c = magnification Values: 1 to 10 factor Default: on 150 dpi printers 1 on 200 dpi printers 2 on 300 3 dpi printers 6 600 dpi printers on d = error correction Values: H = ultra-high reliability level Q = high reliability level M = standard level L = high density level Default: Q = if empty M = invalid values e = mask value - Values: 0 7 Default: 7 Programming Guide P1099958-001 1/31/18

107 ZPL Commands 107 ^BQ This is an example of a QR Code bar code: Example 1: QR CODE BAR CODE ZPL II CODE ^XA ^FO100,100 ^BQN,2,10 ^FDMM,AAC-42^FS ^XZ On the pages that follo he ^BQ command with the w are specific comm ^FD ands for formatting t statements that contain t he information to be coded. QR Switches (formatted into the ^FD field data) There are 4 switch fields that are allowed, some with associate d parameters and some without. Two onal, and one’s n the value of ent, one is opti of these fields are always pres presence depends o placed in a fixed order. The f our switches, in order are: another. The switches are always Mixed mode iijjxx,Optional (no te that this switch ends with a comma “,”) Error correction level Mandatory Data input ,Mandatory (note comma “,”) that this switch ends with a ditional (present if data inp ut is M) Character Mode Con Mixed mode (Optional) = D - allows mixing of different types of character modes in on e code. ii = code No. – a 2 digit number in the range 01 to 16 Value = subtracted fro m the Nth number of the divided code (mus t be two digits). in the range 02 to 16 jj = No. of divis ions – a 2 digit number Number of divisions (must be two digits). 00 to FF ecimal character in the range xx = parity data – a 2 digit hexad (the original i calculating at the input data nput data before Parity data value is obtained by divided byte-by-byte through the EX-OR operation). omma present, is terminated with a c , = the mixed mode switch, when Error correction level (Required) = H, Q, M, or L H = ultra-high reliability level Q = high reliability level M = standard level (default) L = high density level 1/31/18 Programming Guide P1099958-001

108 ZPL Commands 108 ^BQ Data input (Required) = A or M followed by a comma A = Automatic Input (default). Ch aracter Mode is not specified. t, Shift JIS. When the input mode is Automatic Input, the binary codes Data character string JIS8 uni and 0xE0 to 0xFF cannot be set. of 0x80 to 0x9F M = Manual Input. Characte r Mode must be specified. Two types of data input mode exi st: Automatic (A) and Manual (M ). If A is specified, the character mode does not need to be specifie d. If M is specified , the character mode must be specified. d when data input = M) Character Mode (Require = N, A, Bxxxx, or K N = numeric: digits 0 – 9 A = alphanumeric: digits 0 – 9, u pper case letters A – Z, space , and $%*+-./:) (45 characters) Bxxxx = 8-bit byte m ode. The ‘xxxx’ is the number of characters and must be exactly 4 decimal digits. This handles the 8-bi t Latin/Kana character set in accordance w ith JIS X 0201 (character values 0x00 to 0xFF). based on JIS X e Shift JIS system haracters in accordance with th K = Kanji — handles only Kanji c 0208. This means that all paramet should be 16-bit characters. If ers after the character mode K there are any 8-bit characters (such as ASCII code), an error o ccurs. The data to be encoded follows immediately af ter the last switc h. Considerations for ^FD When Using the QR Code: ^FD field data) QR Switches (formatted into the mixed mode of character modes in one code D = allows mixing of different types . code No. <01 16> = subtracted from the Nth number of the divided code (must be two digits). Value No. of divisions <02 16> Number of divisions (must be two digits). parity data <1 byte> Parity data value is obtained by calculating at the input data (the original input data before divided byte-by-byte th rough the EX-OR operation). error correction level H = ultra-high reliability level Q = high reliability level standard level (default) M = high density level L = Programming Guide P1099958-001 1/31/18

109 ZPL Commands 109 ^BQ character Mode N = numeric A = alphanumeric 8-bit byte mode. This handles the 8-bit Latin/Kana character se Bxxxx = t in accordance with JIS X 0201 (character values 0x00 to 0xFF). = number of data characters is represented by two bytes of BCD co de. xxxx K = Kanji — handles only Kanji charac ters in accordance with the Sh ift JIS system based on JIS X 0208. This means that all parameters after the charact K should be 16-bit er mode characters. If there are any 8-b it characters (such as ASCII co de), an error occurs. data character string Follows character mode or it is the last switch in the ^FD statement. data input A = Automatic Input (default). Data character string JIS8 unit, Shi ft JIS. When the input xE0 to 0xFF cannot be ry codes of 0x80 to 0x9F and 0 mode is Automatic Input, the bina set. Manual Input M = Two types of data input mode exi st: Automatic (A) and Manual (M ). If A is specified, the character to be specified. If M be specified. is specified, the char acter mode must mode does not need ^FD Field Data (Normal Mode) Automatic Data Input (A) with Switches ^FD A, ^FS QR Code, normal mode with automatic data input. Example 1: ^XA ^FO20,20^BQ,2,10^FDQA,0123456789ABCD 2D code^FS ^XZ 2 3 1 Q = error correction level 1 A, = automatic setting 2 data string character 3 Manual Data Input (M) with Switches ^FD M, ^FS Programming Guide 1/31/18 P1099958-001

110 ZPL Commands 110 ^BQ Example 1: QR Code, normal mode with manual data input: ZPL II CODE GENERATED LABEL ^XA ^FO20,20^BQ,2,10 ^FDHM,N123456789012345^FS ^XZ 4 1 3 2 H = error correction level (ultra-high reliability level 1 M, = input mode (manual input) 2 N = character mode (numeric data) 3 data character string 4 Example 2: QR Code, normal mode with standa rd reliability and manual data input: ZPL II CODE GENERATED LABEL ^XA ^FO20,20^BQ,2,10^FDMM,AAC-42^FS ^XZ 4 3 2 1 M = error correction level (standard-high reliability level 1 M, = manual input 2 A = alphanumeric data 3 AC-42 = data character string 4 1/31/18 Programming Guide P1099958-001

111 ZPL Commands 111 ^BQ ^FD Field Data (Mixed Mode – requires more switches) Automatic Data Input (A) with Switches ^FD , A, , , < : >, ^FS Manual Data Input (M) with Switches ^FD , M, , , < : > < : >, ^FS n** up to 200 in mixed mode QR Code, mixed mode with manual data input: Example: GENERATED LABEL ZPL II CODE ^XA ^FO,20,20^BQ,2,10 ^FDD03048F,LM,N0123456789,A12AABB,B0006qrcode^FS ^XZ (mixed) D M (code number) (divisions) D (0x0C) M ‘ L (high-density level) (manual input) M ‘ N (numeric data) Programming Guide 1/31/18 P1099958-001

112 ZPL Commands 112 ^BQ 0123456789 ‘ A (alphanumeric data) 12AABB ‘ (8-bit byte data) B 0006 (number of bytes) qrcode This is an example of QR Code, mix Example: ed mode with automatic data i nput: ^XA ^FO20,20^BQ,2,10 ^FDD03040C,LA,012345678912AABBqrcode^FS ^XZ D (mixed) D M 03 (code number) D 04 (divisions) M 0C (0x0C) L L (high-density level) A (automatic input) A 012345678912AABBqrcode For proper functionality, when encoding Kanji characters in ^CI28-30 (Unicode) be sure JIS.DAT table is loaded on the printer and specified. the Example: This is a Unicode example: GENERATED LABEL ZPL II CODE Programming Guide P1099958-001 1/31/18

113 ZPL Commands 113 ^BR GS1 Databar ^BR – (formerly Reduced Space Symbology) The ^BR command is bar code types for s pace-constrained identification from EAN International and the Uniform Code Council, Inc. Format: ^BRa,b,c,d,e,f Details Parameters orientation a = Values: N = Normal R = Rotated I = Inverted B = Bottom-up Default: R b = symbology type in Values: 1 = GS1 DataBar Omnidirectional the GS1 DataBar 2 = GS1 DataBar Truncated family 3 = GS1 DataBar Stacked 4 = GS1 DataBar Stacked Omnidirectional 5 = GS1 DataBar Limited 6 = GS1 DataBar Expanded 7 = UPC-A 8 = UPC-E 9 = EAN-13 10 = EAN-8 UCC/EAN-128 and CC-A/B 11 = UCC/EAN-128 and CC-C 12 = Default: 1 magnification c = Values: to 10 1 factor Default: 24 dot = 6 , 12 dot is 3 , 8 dot and lower is 2 8 12 dot , > 8 dot is 3 , = 6 dot and less is 2 d = separator height Values: 1 2 or 1 Default: The bar code height only affects the linear porti on of the bar code. Only UCC/EAN e = bar code height and CC-A/B/C. Values: 1 to 32000 dots Default: 25 f = the segment width , even numbers only, in segments per line 2 22 Values: to (GS1 DataBar Default: 22 Expanded only) Programming Guide 1/31/18 P1099958-001

114 ZPL Commands 114 ^BR Example 1: This is an example of Symbology Type 7 - UPC-A: ZPL II CODE GENERATED LABEL ^XA ^FO10,10^BRN,7,5,2,100 ^FD12345678901|this is composite info^FS ^XZ Example 2: ional: This is an example of Symbology Type 1 - GS1 DataBar Omnidirect ZPL II CODE GENERATED LABEL ^XA ^FO10,10^BRN,1,5,2,100 ^FD12345678901|this is composite info^FS ^XZ P1099958-001 1/31/18 Programming Guide

115 ZPL Commands 115 ^BS UPC/EAN Extensions ^BS – ^BS command is the two-digit and fi ve-digit add-on used primarily by publishers to create bar The codes for ISBNs (International Standard Book Numbers). These ex tensions are handled as separate bar codes. ^BS command is designed to be used with the UPC-A bar code ( ^BU ) and the UPC-E bar code The ^B9 ). ( • ^BS supports a fixed print ratio. • Field data ( ^FD ) is limited to exactly two or f ive characters. ZPL II automati cally truncates or pads on the left with zeros to achieve the require d number of characters. Important • If additional information about the UPC/EAN bar code is require d, go to www.aimglobal.org . Format: ^BSo,h,f,g Details Parameters orientation o = Values: normal N = R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees Default: current ^FW value h = bar code height Values: 1 to 32000 (in dots) Default: value set by ^BY print f = Values: N = no interpretation yes Y = line Default: Y g = print Values: no N = interpretation yes Y = line above code Y Default: Programming Guide 1/31/18 P1099958-001

116 ZPL Commands 116 ^BS C/EAN Two-digit bar code: Example 1: This is an example of a UP ZPL II CODE UPC/EAN 2-DIGIT BAR CODE ^XA ^FO100,100^BY3 ^BSN,100,Y,N ^FD12^FS ^XZ UPC/EAN 2-DIGIT BAR CODE CHARACTERS 0123456789 Example 2: This is an example of a UPC/ EAN Five-digit bar code: ZPL II CODE UPC/EAN 5-DIGIT BAR CODE ^XA ^FO100,100^BY3 ^BSN,100,Y,N ^FD12345^FS ^XZ UPC/EAN 5-DIGIT BAR CODE CHARACTERS 0123456789 respect to the ing the UPC/EAN extension with Care should be taken in position resulting compos specification. ithin the UPC ite code is w UPC-A or UPC-E code to ensure the (default), the field origin of fsets for the extension are: 2 For UPC codes, with a module width of This is an example of a UPC-A: Example 3: Adjustment Supplement Origin Y - Offset X - Offset 209 Dots 21 Dots Normal 209 Dots 0 Rotated This is an example of a UPC-E: Supplement Origin Adjustment Y - Offset X - Offset 21 Dots 122 Dots Normal 122 Dots Rotated 0 1/31/18 P1099958-001 Programming Guide

117 ZPL Commands 117 ^BS Additionally, the bar code height for the extension should be 2 7 dots (0.135 inches) shorter than that of the primary code. A primary U PC code height of 183 dots (0.9 00 inches) requir es an extension height of 155 dots (0.765 inches). create a normal UPC-A bar code This example illustrates how to for the value Example 4: 7000002198 with an extension equal to 04414: UPC-A BAR CODE WITH EXTENSION ZPL II CODE ^XA ^FO100,100^BY3 ^BUN,137 ^FD07000002198^FS ^FO400,121 ^BSN,117 ^FD04414^FS ^XZ Programming Guide 1/31/18 P1099958-001

118 ZPL Commands 118 ^BT ^BT – TLC39 Bar Code The ^BT bar code is the stand ard for the TCIF can tag telecommunicatio ns equipment. The TCIF CLEI code, wh ich is the MicroPDF417 bar code, is alway s four columns. The firmware must determine what m rs to be encoded. ode to use based on the number of characte Format: ^BTo,w1,r1,h1,w2,h2 Parameters Details o = orientation Values: normal N = rotated R = I = inverted B = bottom up w1 = width of the Values: (in dots): 1 10 to Code 39 bar code Default: (600 dpi printers): 4 Default: (200- and 300 dpi printer): 2 r1 = wide to narrow 2.0 to 3.0(increments of 0.1) Values: bar width ratio Default: 2.0 the Code 39 bar code h1 = height of the Values: (in dots): 1 to 9999 Code 39 bar code Default: (600 dpi printer): 120 Default: (300 dpi printer): 60 Default: (200 dpi printer): 40 h2 = row height of to 1 255 (in dots): Values: the MicroPDF417 Default: (600 dpi printer): 8 bar code (200- and 300 dpi Default: 4 printers): w2 = narrow bar width 10 1 to (in dots): Values: of the 4 Default: (600 dpi printer): MicroPDF417 bar 2 printers): (200- and 300 dpi Default: code P1099958-001 Programming Guide 1/31/18

119 ZPL Commands 119 ^BT Example: TLC39 Bar Code This is an example on how to p rint TLC39 bar code. The callouts identify the key components and led description below: are followed by a detai Use the command defaults to get r esults that are in compliance with TCIF industry standards; regardless of pri nthead density. 1 2 3 ECI Number. If the seventh character is not a comma, only Code 39 prints. This means if 1 Code 39 prints for the first si more than 6 digits are present, x digits (and no Micro-PDF symbol is printed). • Must be 6 digits. Firmware generates invalid character error if the firmware sees anything but • 6 digits. • This number is not padded. Serial number. The serial number can contain up to 25 characters and is variab le length. 2 The serial number is stored in the Micro-PDF symbol. If a comma follows the serial number, then additional data is used below. If present, must be alphanumeric (letters and numbers, no punct uation). • This value is used if a co mma follows the ECI number. Additional data. If present, it is used for thin gs such as a c ountry code. 3 Data cannot exceed 150 bytes. Thi s includes serial number comma s. • Additional data is stored in the Micro-PDF symbol and appended after the serial number. A comma must exist between each maximum of 25 ch aracters in the additio nal fields. • Additional data fields can contain up to 25 alphanumeric charac ters per field. The result is: ZPL II CODE GENERATED LABEL ^XA^FO100, 100^BT^FD123456, ABCd12345678901234, 5551212, 88899 ^FS^XZ Programming Guide P1099958-001 1/31/18

120 ZPL Commands 120 ^BU ^BU – UPC-A Bar Code The ^BU command produces a fixed length, numeric symbology. It is prim arily used in the retail industry for labeling packages. Th e UPC-A bar code has 11 data characters. The 6 dot/mm, 12 dot/mm, and 24 dot/mm printheads produce the UPC-A bar code (UP C/EAN symbologies) at 100 AN symbologies at a percent size. However, an 8 dot/m m printhead produces the UPC/E magnification factor of 77 percent. ^BU supports a fixed print ratio. • ) is limited to exactly 11 chara ^FD ncates or cters. ZPL II automatically tru • Field data ( pads on the left with zeros to a chieve required number of chara cters. Important • If additional information about the UPC-A bar code is required, go to www.aimglobal.org . Format: ^BUo,h,f,g,e Parameters Details orientation o = Values: N = normal R = rotated 90 degrees (clockwise) inverted 180 degrees I = B = read from bottom up, 270 degrees current ^FW value Default: bar code height h = Values: 9999 to 1 (in dots) Default: ^BY value set by f = print Values: N = no interpretation yes Y = line Default: Y g = print Values: no N = interpretation yes Y = line above code N Default: print check digit e = Values: N = no Y = yes Default: Y s (width of narrow bar) selected in tation line depends on the modulu The font style of the interpre ^BY : Zero is not allowed. Note • 6 dot/mm printer: • a modulus of 2 dots or greater p rints with an OCR-B interpreta tion line; a modulus of 1 dot prints font A. • rints with an OCR-B interpretat a modulus of 3 dots or greater p 8 dot/mm printer: ion line; a dots prints font A. modulus of 1 or 2 P1099958-001 1/31/18 Programming Guide

121 ZPL Commands 121 ^BU • 12 dot/mm printer: a modulus of 5 dots or greater prints with an OCR-B interpreta tion line; a 4 dots prints font A. modulus of 1, 2, 3, or • 24 dot/mm printer: a modulus of 9 dots or greater prints with an OCR-B interpreta tion line; a modulus of 1 to 8 dots prints font A. Example: This is an example of a UPC -A bar code with extension: UPC-A BAR CODE WITH EXTENSION ZPL II CODE ^XA ^FO100,100^BY3 ^BUN,137 ^FD07000002198^FS ^FO400,121 ^BSN,117 ^FD04414^FS ^XZ Comments 10 check digit scheme for error checking. For The UPC-A bar code uses the Mod . onpage1349 Mod 10 Check Digit further information on Mod 10, see 1/31/18 Programming Guide P1099958-001

122 ZPL Commands 122 ^BX ^BX – Data Matrix Bar Code The ^BX command creates a two-dimensio nal matrix symbology made up of square modules arranged within a perimeter finder pattern. Format: ^BXo,h,s,c,r,f,g,a Parameters Details o = orientation Values: N = normal R = rotated 90 degrees (clockwise) I = inverted 180 degrees B = read from bottom up, 270 degrees Default: ^FW value current h = dimensional Values: 1 to the width of the label The individual elements are square oth — this parameter specifies b height of , the h module and row height. If this pa rameter is zero (or not given) individual symbol elements ^BY is used as the approximate symbol height. parameter (bar height) in s = quality level 140 200 , Values: 0 , 50 , 80 , 100 , Default: 0 refers to the amount of data tha t is added to the symbol for e rror Quality . ECC 50, ECC correction. The AIM specification refers to it as the ECC value 80, ECC 100, and ECC 140 use conv olution encoding; ECC 200 uses Reed- Solomon encoding. For new applic ations, ECC 200 is recommended. ECC 000-140 should be used le party only in closed applications where a sing controls both the production and reading of the symbols and is responsible for overall system performance. c = columns to encode Values: 9 to 49 Odd values only for quality 0 to 140 (10 to 144); even values o nly for quality 200. Odd values only for quality 0 to 140 (10 to 144); even values o nly for and columns in the symbol is quality 200. The number of rows automatically determined. You might want to force the number of rows and columns to a larger value to achieve uniform symbol size. I n the current implementation, quality 0 to 140 symbols are square, so the larger of the rows or columns supplied are used to force a symbol to t hat size. If you attempt to force the data into too small of a symbol, no sy mbol is printed. If a value greater than 49 is entered, the rows or col umns value is set to zero and the size is determined normally. If an even val ue is entered, it generates INVALID-P (invalid parameter). If a value less than 9 but not 0, or if the data is too large for the forced size, no symbol prints; if ^CV is active, INVALID-L prints. r = rows to encode 9 to 49 Values: Programming Guide P1099958-001 1/31/18

123 ZPL Commands 123 ^BX Details Parameters format ID (0 to f = Values: 1 = field data is nu meric + space (0..9,”) – No \&’’ 6) — not used field data is uppercase alphanumeric + space (A..Z,’’) – No \&’ ’ 2 = with quality set at 200 3 = sh, field data is uppercase alphanum eric + space, period, comma, da and slash (0..9,A..Z,“.-/”) 4 = field data is upper-case alpha numeric + space (0..9,A..Z,’’) – no \&’’ 5 = field data is full 128 ASCII 7-bit set field data is full 256 ISO 8-bit set 6 = 6 Default: escape sequence g = Values: any character control (tilde) Default: ~ character This parameter is used only if quality 200 is specified. It is the escape ontrol sequences within the fi eld data. character for embedding special c A value must always be speci Important • fied when using the escape is ignored. sequence control character. If no value is entered, the command g _ ) for anyone with parmeter will continue to be underscore ( The firmware version: V60.13.0.12, V60.13.0.12Z, V60.13.0.12B, V60.13.0.12ZB, or later. a = aspect ratio Values: 1 = square 2 = rectangular Default: 1 a parameter is only The supported in V60.16.5Z and V53.16.5Z or later. Table 11 • ECC ID=6 ID=5 ID=3 ID=2 ID=4 ID=1 LEVEL 271 310 413 394 452 596 0 200 228 305 291 333 457 50 176 201 268 256 293 402 80 131 150 200 190 218 300 100 63 72 96 91 105 144 140 Maximum Field Sizes 1/31/18 Programming Guide P1099958-001

124 ZPL Commands 124 ^BX Example 1: This is an example of a square Data Matrix bar code: DATA MATRIX BAR CODE ZPL II CODE ^ XA ^FO100,100 ^BXN,10,200 ^FDZEBRA TECHNOLOGIES CORPORATION 333 CORPORATE WOODS PARKWAY VERNON HILLS, IL 60061-3109^FS ^XZ angle Data Matrix bar code: This is an example of a rect Example 2: DATA MATRIX BAR CODE ZPL II CODE ^XA ^FO100,100 ^BXN,10,200,,,,,2 ^FDZEBRA TECHNOLOGIES CORPORATION 333 CORPORATE WOODS PARKWAY ^FS ^XZ a1 on ^BY Effects of ^BX w = module width (no effect) r = ratio (no effect) h = height of symbol ed in the command, mbol elements are not specifi If the dimensions of individual sy ^BY the height of symbol value is divided by the required rows/colu mns, rounded, limited to a symbol elements. minimum value of one, and used a s the dimensions of individual Field Data ( ^FD ) for ^BX Quality 000 to 140 can be used to insert carriage returns, line feeds, and the ba •The || and \& ckslash, similar to the . PDF417. Other characters in the control characte r range can be inserted only by using ^FH Field data is limited to 596 characters for quality to . Excess field data causes no symbol to 0 140 a user-specified The field data must correspond to is active, INVALID-L prints. ^CV print; if format ID or no symbol prints; if ^CV is active, INVALID-C prints. parameter. to • The maximum field sizes for quality 0 140 symbols are shown in the table in the g Quality 200 cated to 3072 bytes. This limits the • If more than 3072 bytes are suppl ied as field data, it is trun atrix symbol to l maximum size of a numeric Data M ess than the 3 116 numeric characters that ould allow. The maximum alphanumeric capacit y is 2335 and the maximum the specification w 8-bit byte capacity is 1556. P1099958-001 1/31/18 Programming Guide

125 ZPL Commands 125 ^BX ^FH ssing takes place before the e scape sequence •If is used, field hexadecimal proce processing described below. • The underscore is the default escape sequence control characte r for quality 200 field data. A ^BX using paramete r g in the character can be different escape sequence control selected by command. The information that follows app lies to firmware version: V60.1 3.0.12, V60.13.0.12Z, V60.13.0.12B, be embedded in qual V60.13.0.12ZB, or later. The inp ut string escape sequences can ity 200 field data using the ASCII 95 underscore cter entered in parameter character ( _ ) or the chara g : • is the shift character for control characters (e.g., [email protected]=NUL,_G=BEL,_0 is PAD ) _X • _1 to _3 for FNC characters 1 to 3 (exp licit FNC4, upper shift, is not allowed) • FNC2 (Structured Append) must be followed by nine digits, comp osed of three-digit numbers ce and file identifier (for with values between 1 a nd 254, that repres ent the symbol sequen ) _2214001001 with file ID 1001 is represented by example, symbol 3 of 7 ue (for example, Code Page • 5NNN is code page NNN where NNN is a three-digit code page val _5009 ) 9 is represented by • _dNNN creates ASCII decimal value NNN for a code word (must be three digits) • _ in data is encoded by __ (two underscores) The information that f irmware. The input string escape ollows applies to all other versions of f sequences can be embedde d in quality 200 field data using the A SCII 7E tilde character (~) or the g : character entered in parameter • control characters (e.g., [email protected]=NUL,~G=BEL,~0 is PAD ~X is the shift character for ) licit FNC4, upper shift, is not • to ~3 for FNC characters 1 to 3 (exp ~1 allowed) • FNC2 (Structured Append) must be followed by nine digits, comp osed of three-digit numbers nd 254, that repres with values between 1 a ent the symbol sequen ce and file identifier (for example, symbol 3 of 7 with file ID 1001 is represented by ~2214001001 ) • 5NNN is code page NNN where NNN is a three-digit code page val ue (for example, Code Page 9 is represented by ~5009 ) digits) for a code word (must be three • ~dNNN creates ASCII decimal value NNN • ~ in data is encoded by a ~ (tilde) 1/31/18 Programming Guide P1099958-001

126 ZPL Commands 126 ^BY ^BY – Bar Code Field Default ault values for the module wi dth (in dots), the wide bar The ^BY command is used to change the def can be used as often as necessary he bar code height (in dots). It to narrow bar width ratio and t within a label format. Format: ^BYw,r,h Details Parameters module width (in w = Values: to 10 1 dots) 2 Initial Value at Power Up: wide bar to r = , in 0.1 increments Values: to 3.0 2.0 This parameter has no effe ct on fixed-ratio bar codes. narrow bar width ratio Default: 3.0 h = bar code height Initial Value at Power Up: 10 (in dots) r , the actual ratio generated is a , w s in parameter number of dot function of the For parameter Table 12 on page 126 module width. See ) can be changed at h and w . Module width and height ( command, regard anytime with the ^BY less of the symbology selected. ) to 9 and the ratio ( w he narrow bar is 9 dots Set module width ( ) to 2.4. The width of t Example: r , or 21.6 dots. However, since the printer rounds out to the nearest wide and the wide bar is 9 by 2.4 This produces dot, the wide bar is actually pri nted at 22 dots. a bar code with a ra tio of 2.44 (22 divided by 9). This ratio is as close to 2.4 as possible, since only full dots are printed. e Width Ratios in Dots Table 12 • Shows Modul Ratio Module Width in Dots (w) Selected (r) 12345678910 2.0 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2:1 2.1 2:1 2:1 2:1 2.1:1 2:1 2:1 2:1 2:1 2:1 2:1 2.2 2:1 2.16:1 2:1 2:1 2:1 2.1:1 2.2:1 2.1:1 2.12:1 2.2:1 2.3 2.3:1 2.16:1 2.25:1 2.2:1 2:1 2:1 2.3:1 2.25:1 2.2:1 2.28:1 2.4 2:1 2.37:1 2.4:1 2.3:1 2.28:1 2.3:1 2.4:1 2.25:1 2.3:1 2:1 2.5 2.5:1 2.4:1 2:1 2.5:1 2.3:1 2.5:1 2.4:1 2.5:1 2.4:1 2.5:1 2.6 2.5:1 2.6:1 2:1 2.5:1 2.3:1 2.5:1 2.6:1 2.5:1 2.57:1 2.5:1 2.7 2:1 2.6:1 2.6:1 2.7:1 2.65:1 2.5:1 2.6:1 2.5:1 2.6:1 2.57:1 2.8 2.75:1 2.7:1 2:1 2.5:1 2.8:1 2.75:1 2.8:1 2.6:1 2.7:1 2.6:1 2.9 2.9:1 2.8:1 2:1 2.5:1 2.6:1 2.75:1 2.8:1 2.8:1 2.85:1 2.87:1 3.0 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1 3:1 il Once a ^BY command is entered into a label format, it stays in effect unt Comments ^BY command is encountered. another 1/31/18 Programming Guide P1099958-001

127 ZPL Commands 127 ^BZ ^BZ – POSTAL Bar Code The POSTAL bar code is used to automate the handl ing of mail. P OSTAL codes use a series of tall and short bars to rep resent the digits. • ^BZ supports a print rati o of 2.0:1 to 3.0:1. • Field data ( ^FD ) is limited to the width (or le ngth, if rotated) of the label and by the bar code specification. Format: ^BZo,h,f,g,t Important • is required, go If additional information about the POSTAL and PLANET bar code www.aimglobal.org , or contact the United States Postal Service http://pe.usps.gov . If to additional information about the INTELLIGENT MAIL bar code is r equired, see: http://ribbs.usps.gov/OneCodeSolution . Parameters Details Values: o = orientation N = normal R = rotated 90 degrees (clockwise) inverted 180 degrees I = read from bottom up, 270 degrees B = ^FW value current Default: h = bar code height 1 Values: to 32000 (in dots) Default: value set by ^BY Values: f = print no N = interpretation Y = yes line Default: N Values: g = print no N = interpretation yes Y = line above code Default: N Values: t = Postal code type 0 = Postnet bar code 1 = Plant Bar Code 2 = Reserved 3 = USPS Intelligent Mail bar code Default: 0 Programming Guide 1/31/18 P1099958-001

128 ZPL Commands 128 ^BZ Example 1: This is an example of a POSTNET bar code: ZPL II CODE POSTNET BAR CODE ^XA ^FO100,100^BY3 ^BZN,40,Y,N ^FD12345^FS ^XZ POSTNET BAR CODE CHARACTERS 0123456789 Intelligent Mail bar code: Example 2: This is an example of a USPS ZPL II CODE USPS INTELLIGENT MAIL BAR CODE ^XA ^FO100,040^BZ,40,,,3 ^FD00123123456123456789^FS ^XZ Programming Guide 1/31/18 P1099958-001

129 ZPL Commands 129 ^CC ~CC ^CC ~CC – Change Caret The ^CC command is used to change the format command prefix. The defaul t prefix is the caret ( ^ ). Format: ^CCx or ~CCx Parameters Details x = caret character Values: any ASCII character change t character rameter is not entered, the nex a parameter is required. If a pa Default: received is the new prefix character. Example: This is an example of how to chan ge the format prefix to / from a :: ^XA ^CC/ /XZ ) is set at the new prefix. Note the The forward slash (/ ending tag uses the new designated /XZ prefix character (/). : Example: This is an example of how to c hange the format prefix from ~ to a / ~CC/ /XA/JUS/XZ Programming Guide 1/31/18 P1099958-001

130 ZPL Commands 130 ^CD ~CD ^CD ~CD – Change Delimiter The ^CD ~CD commands are used to change the delimiter character. This char acter is used to and separate parameter values associ ated with several ZPL II comman ds. The default d elimiter is a comma (,). Format: ^CDa or ~CDa Parameters Details a = delimiter Values: any ASCII character character change rameter is not entered, the nex a parameter is required. If a pa t character Default: received is the new prefix character. iter to a semi-colo Example: This shows how to chan ge the character delim n ( ;) : ^XA ^FO10,10 ^GB10,10,3 ^XZ ^XA ^CD; ^FO10;10 ^GB10;10;3 ^XZ JUS : • To save, the JUS command is required. Her e is an example using ~CD; ^XA^JUS^XZ Programming Guide P1099958-001 1/31/18

131 ZPL Commands 131 ^CF ^CF – Change Alphanumeric Default Font command to The ^CF command sets the def ault font used in your printer. You can us e the ^CF simplify your programs. Format: ^CFf,h,w Parameters Details f = specified default Z Values: A through and 0 to 9 font A Initial Value at Power Up: h = individual 32000 Values: 0 to character height Initial Value at Power Up: 9 (in dots) individual w = 0 Values: to 32000 character width or last permanent saved value 5 Initial Value at Power Up: (in dots) f is the default height eter h specifies the default font for every alphanumeric field. Param Parameter dth value for every alphanumeric field. for every alphanumeric field, and parameter w is the default wi The default alphanumeric font is A. If you do not change the al phanumeric default font and do not use any alphanumeric field command ( data you specify lid font value, any ) or enter an inva ^AF prints in font A. Defining only the height or width forces the magnification to b e proportional to the parameter defined. If neither value is defined, the last values given or the default ^CF ^CF values for height and width are used. ^CF This is an example of Example: code and the result of the code: ZPL II CODE GENERATED LABEL ^XA ^CF0,89 ^FO20,50 ^FDA GUIDE TO^FS ^FO20,150 ^FDTHE ZPL II^FS ^FO20,250 ^FDPROGRAMMING^FS ^FO20,350 ^FDLANGUAGE^FS ^XZ Any font in the printer, includi Comments ed fonts, and ng downloaded fonts, EPROM stor . ^CW fonts A through Z and 0 to 9 , can also be selected with Programming Guide 1/31/18 P1099958-001

132 ZPL Commands 132 ^CI ^CI – Change International Font/Encoding Zebra printers can print fonts us ing internationa l character se ts: U.S.A.1, U.S.A.2, UK, Holland, ermany, France 1, France 2, It aly, Spain, and several other Denmark/Norway, Sweden/Finland, G sets, including the Unicode character set. ^CI command enables you to call up the international character set you want to use for printing. The You can mix character sets on a label. A character within a font can be remapped to a different numeri cal position. later, this command allows char acter remapping when In x.14 version of firmware and a = 0-13. parameter Format: ^CIa,s1,d1,s2,d2,... Parameters Details Accepted values are are Zebra Code Page 850 12 - 0 with specific character desired character a = on page 134 International Character Sets replacements. For details, see and/or set Zebra Code Page 850 — Latin Character Set . on page 1317 Values: 0 = Single Byte Encoding - U.S.A. 1 Character Set 1 = Single Byte Encoding - U.S.A. 2 Character Set 2 = Single Byte Encoding - U.K. Character Set 3 = Single Byte Encoding - Holland Character Set Single Byte Encoding - Denmark/Norway Character Set 4 = 5 = Single Byte Encoding - Sweden/Finland Character Set 6 = Single Byte Encoding - Germany Character Set Single Byte Encoding - France 1 Character Set 7 = Single Byte Encoding - France 2 Character Set 8 = Note • These 9 = Single Byte Encoding - Italy Character Set parameters are only valid when 10 = Single Byte Encoding - Spain Character Set parameter (parameter details con tinued on next page) 1 - 13 a = c. resent for the conversion to ). The correct table must be p *.DAT The encoding is controlled by the conversion table ( function. The table generated by ZTools™ is the TrueType fonts internal encoding (Unicode). . This table must be present for JIS.DAT the JIS conversion in Shift-JIS encoding converts Shift-JIS to JIS and then looks up d. Shift-JIS to function. e. Supports ASCII transparency for Asian encodings. 7F and less ar e treated as single byte characters. 80 to FE is treated as the first byte of a 2 byte character 8000 to FEFF in the encoding t able for Unicode. The f. and ^CI17 command has been deprecated, along with the ^F8 ^F16 commands that are required for the ^CI17 command to function. The recommended replacement is the commands. ^CI28-30 Programming Guide 1/31/18 P1099958-001

133 ZPL Commands 133 ^CI Parameters Details 11 = Single Byte Encoding - Miscellaneous Character Set a = desired character set 12 = Set Single Byte Encoding - Japan (ASCII with Yen symbol) Character (continued) Zebra Code Page 850 (see page1317 ) 13 = c 14 = Double Byte Asian Encodings d 15 = Shift-JIS c 16 = EUC-JP and EUC-CN f Deprecated - UCS-2 Big Endian 17 = 23 to 18 = Reserved c 24 = Single Byte Asian Encodings Reserved 25 = c e 26 = Multibyte Asian Encodings with ASCII Transparency and page1322 ) Zebra Code Page 1252 (see 27 = Unicode (UTF-8 encoding) - Unicode Character Set 28 = 29 = Unicode (UTF-16 Big-Endian enc oding) - Unicode Character Set Values 28 to 30 are only 30 = Unicode (UTF-16 Little-Endian en coding) - Unicode Character Set supported in firmware ) is supported for scalable page1320 31 = Zebra Code Page 1250 (see version V60.14.x, V50.14.x, fonts, such as Font 0, or a down loaded TrueType font. Bitmapped or later. fonts (including fonts A-H) do not fully support Zebra Code Page 1250. This value is supported onl y on Zebra G-Series™ printers. Code Page 1251 33 = 34 = Code page 1253 35 = Code Page 1254 36 = Code Page 1255 0 Initial Value at Power Up: Values 31 to 36 are only supported in firmware version x.16.x or later. source 1 s1 = Values: decimals 0 to 255 (character output image) d1 = destination 1 255 Values: decimals 0 to (character input) source 2 s2 = 255 Values: decimals to 0 (character output image) d2 = destination 2 Values: to 0 255 decimals (character input) c. The encoding is controlled by the conversion table ( *.DAT ). The correct table must be p resent for the conversion to function. The table generated by ZTools™ is the TrueType fonts internal encoding (Unicode). d. Shift-JIS encoding converts Shift-JIS to JIS and then looks up the JIS conversion in JIS.DAT . This table must be present for Shift-JIS to function. e treated as single byte characters. 80 to FE is treated as the Supports ASCII transparency for Asian encodings. 7F and less ar e. 8000 to FEFF in the encoding t able for Unicode. first byte of a 2 byte character command has been deprecated, along with the f. The ^CI17 ^F8 ^CI17 and ^F16 commands that are required for the command to function. The recommended replacement is the commands. ^CI28-30 Programming Guide P1099958-001 1/31/18

134 ZPL Commands 134 ^CI Details Parameters ommand. red in this c Up to 256 source and destination pairs can be ente = ... continuation of pattern c. The encoding is controlled by the conversion table ( *.DAT ). The correct table must be p resent for the conversion to function. The table generated by ZTools™ is the TrueType fonts internal encoding (Unicode). d. the JIS conversion in Shift-JIS encoding converts Shift-JIS to JIS and then looks up JIS.DAT . This table must be present for Shift-JIS to function. e. Supports ASCII transparency for Asian encodings. 7F and less ar e treated as single byte characters. 80 to FE is treated as the able for Unicode. first byte of a 2 byte character 8000 to FEFF in the encoding t ^CI17 required for the f. The ^CI17 command has been deprecated, along with the ^F8 and ^F16 commands that are command to function. The recommended replacement is the ^CI28-30 commands. command can also be used to ^CI26 d byte in GB18030. The 80 to FF could mean qua GB18030.DAT CS encodings. The GB 18030 use s the support the GB 18030 and Big5 HKS BIG5HK.DAT encoding table. encoding table and BIG5 HKSCS uses the ^CI17 The command has been deprecated, along with the ^F8 and ^F16 commands that are commended replacement is the ^CI28-30 command to function. The re ^CI17 required for the commands. command (or Unicode BOM) is included at the beginning of each We recommend that a ^CI ZPL script. This is important wh ncodings are being sent to a en ZPL scripts with different e single printer. To assist in the interleaving of encoding schem es, the printer maintains two - 30 28 ). It automatically acknowledges when it should - ^CI0 ^CI29 and encoding states ( ^CI switch encoding states, allowing it to distinguish between enco dings, and maintains a for each, but endianess is shared. Example: sign value (36) decimal. This example remaps the Euro symbol (21) decimal to the dollar he printer, the Euro haracter is sent to t When the dollar sign c symbol prints: GENERATED LABEL ZPL II CODE ^XA ^CI0,21,36 ^FO100,200^A0N50,50^FD$0123^FS ^XZ rmines the shape and resolution of the pr inted symbol. The font selected dete International Character Sets P1099958-001 1/31/18 Programming Guide

135 ZPL Commands 135 ^CI Note • US keyboard ^CI 13 = The space character cannot be remapped for any font. Comments P1099958-001 Programming Guide 1/31/18

136 ZPL Commands 136 ^CM ^CM – Change Memory Letter Designation The command allows you to reassign tion to the pri nter’s memory devices. If a a letter designa ^CM e corresponding you can reassign the memory device to th format already exists, letter without forcing, altering, or recr eating the format itself. Using this command affects every subsequent command that refers to specific memory locations. Format: ^CMa,b,c,d Parameters Details a = memory alias for , and A: , NONE , E: , B: Values: R: B: Default: B: b = memory alias for Values: A: , NONE , and R: , E: , B: E: E: Default: memory alias for c = , NONE , and , R: A: E: , Values: B: R: Default: R: memory alias for d = Values: B: NONE , and A: , R: , E: , A: Default: A: e = multiple alias Values: M , or no value Default: no value • This parameter is supported on X i4 and ZM400/ZM600 printers us ing firmware V53.17.7Z or later. • This parameter is supported on G -Series printers using firmwar e versions v56.17.7Z and v61. 17.7Z or later. • This parameter is supported on printers using firmware V60.17. 7Z or later. Comments Unless the e (multiple alias) parameter is u sed, when two or more parameter s set to their default values. specify the same lette r designator, all letter designators are is entered to save changes to ^JUS It is recommended that after entering the ^CM command, entered will reset the letter designations back to the default. EEPROM. Any duplicate parameters of specification, the command If any of the parameters are out is ignored. Example 1: This example designates letter E: to point to the B: memory de vice, and the letter B: to point to the E:memory device. ^XA ^CME,B,R,A ^JUS ^XZ Example 2: This example designates that content sent to, or read from the B: or E: memory locations will be sent to or rea d from the E: memory location. ^XA ^CME,E,R,A,M ^JUS ^XZ Programming Guide 1/31/18 P1099958-001

137 ZPL Commands 137 ^CM Example 3: This example designates that content sent to, or read from the A: or E: memory locations will be sent to or rea d from the E: memory location. ^XA ^CMB,E,R,E,M ^JUS ^XZ A:, B: or E: This example designates that content sent to, or read from the Example 4: memory locations will be sent to or read from the E: memory loc ation. ^XA ^CME,E,R,E,M ^JUS ^XZ re the only valid use as parameter. s of the multiple ali Examples 2, 3 and 4 a Note • Programming Guide 1/31/18 P1099958-001

138 ZPL Commands 138 ^CN ^CN – Cut Now ^CN causes the printer to cycle the media cutter. The Important • This command works only when the printer is in Print Mode Kiosk ( ^MMk ). and has no effect. See using this comm ^MM ode Kiosk, then If the printer is not in Print M onpage275 . Supported Devices •KR403 Format: ^CNa Parameters Details Cut Mode Override = a Values: ^KV 0 = Use the “kiosk cut amount” setting from 1 = Ignore “kiosk cut amount” from ^KV and do a full cut none Default: The command is ignored if parameters are missing or invalid. Programming Guide 1/31/18 P1099958-001

139 ZPL Commands 139 ^CO Cache On ^CO – command is used to change the si ze of the character cache. By definition, a character ^CO The ion of the DRAM reserved for s toring scalable characters. All (referred to as cache) is a port cache printers have a default 40K cache that is always turned on. The maximum single character size that can be stored, without ots by 450 dots. changing the size of the cache, is 450 d ed in Zebra printers: bitmapped and scalable. Letters, numbers, and There are two types of fonts us a fixed size (fo r example: 10 points, 12 points, 14 points). By symbols in a bitmapped font have comparison, scalable fonts are not fixed in size. Because their size i s fixed, bitmapped fonts can be moved quick contrast, scalable ly to the label. In h character is built on an as- needed basis before it is moved to fonts are much slower because eac the label. By storing a cache, they can be recalled at a much faster speed. scaled characters in The number of characters that c an be stored in the cache depend s on two factors: the size of the cache (memory) and the size of the character (in points) being saved. The larger the point size, the more space in the cache it uses. The default cache stores every scalable character that is requested for use on a label. If the same c haracter, with the same rotati on and size is used again, it is quickly retrieved from cache. It is possible that after a while the print cache could become full. Once the cache is full, space for cache. Existing from the print an existing character new characters is obt ained by eliminating characters are eliminated by det ermining how often they have be en used. This is done Q that was used only once woul d be a good candidate for automatically. For example, a 28-point elimination from the cache. Maximum size of a sing le print cache chara cter is 1500 dots by 1500 dots. This would require a cache of 274K. When the cache is too small for the desired styl e, smaller characters might appear but larger characters do not. If the cache. possible, increase the size of Format: ^COa,b,c Parameters Details a = cache on Values: N = no yes Y = Default: Y b = amount of 9999 to 1 Values: additional Default: 40 memory to be added to cache (in K) c = cache type Values: 0 = cache buffer (normal fonts) 1 = internal buffer (recomm ended for Asian fonts) Default: 0 Example: To resize the print cache to 62K , assuming a 22K e xisting cache : ^COY,40 e: , assuming a 22K existing cach To resize the print cache to 100K ^COY,78 Programming Guide 1/31/18 P1099958-001

140 ZPL Commands 140 ^CO Print Cache Performance For printing large characters, me mory added to the cache by the ^CO command is not physically added to the 22K cache already in the printer. In the second ex ample above, the resulting 100K cache is actually two separate blocks of memory, 22K and 78K. Because large characters need c ontiguous blocks of memory, a ch aracter requiring a cache of 90K would not be completely stored because neither portion of the 1 00K cache is big enough. Therefore, ^CO command should reflect the ac tual size of the cache you if large characters are needed, the need. inting scalable fonts. However, the improves the performance in pr Increasing the size of the cache performance decreases if the size d contains too many characters. of the cache becomes large an The performance gained is lost bec ause of the time involved sea rching the cache for each character. Comments The cache can be resized as often as needed. Any characters in the cache when it is resized are lost. Memory used for the cache reduces the s pace available for label bitmaps, graphic, and fonts. Some Asian fonts require an internal working buffer that is muc h larger than the normal cache. Since most fonts do not requi r, it is now a selec table configuration option. Printing with re this larger buffe the Asian fonts greatly reduces the printer memory available fo r labels, graphics, fonts, formats, and label bitmaps. Note • If you have firmware x.12 or grea ter this command is not requir ed because the printer haracter cache as needed. the size of the c firmware automatically expands Programming Guide P1099958-001 1/31/18

141 ZPL Commands 141 ^CP ^CP – Remove Label presenter area in one of The ^CP command causes the printer to m ove a printed l abel out of the several ways. Supported Devices •KR403 Format: ^CPa Details Parameters a = kiosk present Values: = 0 Eject presented page mode 1 = Retracts presented page 2 = Takes the action defined b y c parameter of ^KV command. none Default: The command is ignored if parameters are missing or invalid. Programming Guide 1/31/18 P1099958-001

142 ZPL Commands 142 ^CT ~CT ^CT ~CT – Change Tilde fault prefix is ontrol command prefix. The de The ^CT and ~CT commands are used to change the c the tilde (~). Format: ^CTa or ~CTa Parameters Details a = change control Values: any ASCII character command Default: a parameter is required. If a pa rameter is not entered, the nex t character character received is the new cont rol command character. Example: : + This is an example of how to c hange the control command prefix from a ^ to a ^XA ^CT+ ^XZ +HS P1099958-001 Programming Guide 1/31/18

143 ZPL Commands 143 ^CV ^CV – Code Validation The ^CV command acts as a switch to tur n the code validation function on and off. When this ror conditions: command is turned on, all bar code data is checked for these er • character not in character set • check-digit incorrect • data field too long (too many characters) • data field too short (too few characters) issing parameter • parameter string contains inc orrect data or m When invalid data is detected, an error message and code is pri nted in reverse image in place of the is one of these error codes: where INVALID - X X bar code. The message reads character not in character set C = E = check-digit incorrect L = data field too long S = data field too short P = parameter string contains incorrect data (occurs only on select bar codes) Once turned on, the ^CV command remains active from for mat to format until turned off by another ^CV nently saved. command or the printer is tur ned off. The comm and is not perma Format: ^CVa Parameters Details Values: a = code validation N = no yes Y = N Default: Programming Guide 1/31/18 P1099958-001

144 ZPL Commands 144 ^CV ^CVY generates when incorrect field data is The examples below sho Example: w the error labels e letter following the previous page. to the listing on INVALID – entered. Compare th GENERATED LABEL ZPL II CODE ^XA C ^ VY ^FO50,50 ^BEN,100,Y,N ^FD97823456 890^FS ^XZ ^XA VY C ^ ^FO50,50 ^BEN,100,Y,N ^FD9782345678907^FS ^XZ ^XA ^ C VY ^FO50,50 ^BEN,100,Y,N ^FD97823456789081^FS ^XZ ^XA C VY ^ ^FO50,50 ^BEN,100,Y,N ^FD97823456789^FS ^XZ ^XA VY C ^ ^FO50,50 ^BQN2,3 C ^FDHM,BQR ODE-22^FS ^XZ Comments If more than one error exists, the first error detected is the one displayed. ^CV The sed for (or to command tests the integrity of the data encoded i nto the bar c ode. It is not u y of an image or bar ng the scan-integrit be confused with) testi code. P1099958-001 1/31/18 Programming Guide

145 ZPL Commands 145 ^CW Font Identifier ^CW – ier. The ^CW command assigns a single All built-in fonts are referenced using a one-character identif t stored in DRAM, memory card, E PROM, or Flash. alphanumeric character to a fon If the assigned character is the same as that of a built-in fon t, the downloaded font is used in place of the built-in font. The new font i s printed on the label whereve r the format calls for th e built-in font. If used in place of a built-in font, the change is in effect only until power is turned off. If the assigned character is dif ferent, the downloaded font is used as an additional font. The assignment remains in effect unt il a new command is issued or t he printer is turned off. Format: ^CWa,d:o.x Parameters Details a = letter of to 0 9 and Z through A Values: existing font to Default: a one-character entry is required be substituted, or new font to be added d = device to store , and A: B: Values: R: , E: , font in Default: R: (optional) o = name of the any name up to 8 characters Values: downloaded font Default: if a name is not specified, UNKNOWN is used to be substituted for the built-in, or as an additional font x = extension Values: Font .FNT = TrueType Font .TTF = TrueType Extension .TTE = is only supported in .TTE firmware version V60.14.x, V50.14.x, or later. Programming Guide P1099958-001 1/31/18

146 ZPL Commands 146 ^CW Example: These examples show how to use: • MYFONT.FNT stored in DRAM whenever a format calls for Font A: ^XA ^CWA,R:MYFONT.FNT ^XZ • stored in DRAM additionally as Font Q: MYFONT.FNT ^XA ^CWQ,R:MYFONT.FNT ^XZ NEWFONT.FNT • stored in DRAM whenever a format calls for font F: ^XA ^CWF,R:NEWFONT.FNT ^XZ Label Listing After Assignm Label Listing Before Assignment ent Programming Guide P1099958-001 1/31/18

147 ZPL Commands 147 ~DB Download Bitmap Font ~DB – command sets the printer to receive a downloaded bitmap font a nd defines native cell size, The ~DB baseline, space size, and copyright. This command consists of two portions, a ZPL II command definin structured data g the font and a segment that defines eac h character of the font. Format: ~DBd:o.x,a,h,w,base,space,#char,©,data Details Parameters drive to store d = B: Values: , E: A: R: , and , font Default: R: o = name of font Values: 1 to 8 alphanumeric characters if a name is not specified, UNKNOWN is used Default: extension x = Format: .FNT orientation of a = Fixed Value: normal native font h = maximum height of 32000 Values: 1 to cell (in dots) a value must be specified Default: w = maximum width of 32000 Values: 1 to cell (in dots) Default: a value must be specified base = dots from top 1 32000 to Values: of cell to Default: a value must be specified character baseline space = width of to 1 Values: 32000 space or Default: a value must be specified non-existent characters #char = number of (must match the charac ters being downloaded) Values: 1 to 256 characters in Default: a value must be specified font © = copyright holder alphanumeric characters Values: 1 to 63 a value must be specified Default: The # symbol signifies character code parameters, which are sep arated with data = structured periods. The character code is for large international from 1 to 4 characters to allow ASCII data that character sets to be downloaded to the printer. defines each The data structure is: character in the #xxxx.h.w.x.y.i.data font #xxxx = character code h = bitmap height (in dot rows) w = bitmap width (in dot rows) x = x-offset (in dots) y = y-offset (in dots) i = typesetting motion displacement (width, including aracter in the font) inter character g ap of a particular ch data = hexadecimal bitmap description Programming Guide P1099958-001 1/31/18

148 ZPL Commands 148 ~DB rst two characters of command. It shows the fi Example: This is an example of how to use the ~DB a font being downloaded to DRAM. ~DBR:TIMES.FNT,N,5,24,3,10,2,ZEBRA 1992, #0025.5.16.2.5.18. OOFF OOFF FFOO FFOO FFFF #0037.4.24.3.6.26. OOFFOO OFOOFO OFOOFO OOFFOO Programming Guide P1099958-001 1/31/18

149 ZPL Commands 149 ~DE Download Encoding ~DE – The standard encoding for TrueType Windows® fonts is always Uni code. The ZPL II field data must printer understands. The required be converted from some other encoding to Unicode that the Zebra translation tables are provided with font packs. Some tables ca n be downloaded from www.zebra.com . Format: ~DEd:o.x,s,data Parameters Details location of table d = E: A: R: Values: , and B: , , R: Default: o = name of table Values: any valid name, up to 8 characters Default: if a name is not specified, UNKNOWN is used x = extension Format: .DAT table size s = Values: the number of memory bytes requ ble ired to hold the Zebra downloada format of the font Default: if an incorrect value or no valu e is entered, the command is ig nored data = data string Values: a string of ASCII hexadecimal values if no data is entered, the command is ignored Default: This is an example of how to do table: ed translation Example: wnload the requir ~DER:JIS.DAT,27848,300021213001... (27848 two-digit hexadecimal values) Comments For more information on ZTools or ZebraNet Bridge, see the prog ram documentation included with the software. .DAT tables, ZebraNet Bridge includes a For assistance with editing or adding mappings to .DAT table editor in the font wizard. four character and the encoding t to the printer is the second Encoding scheme for the data sen file. The data must be ordered by .DAT scheme for the font is the first four characters throughout the rs (the encoding table). the second four characte This is an example of a Example: .DAT ample identifies the elements: table. The table below the ex ~DEE:EXAMPLE.DAT,16, 00310041 1 00320042 2 00330043 3 00340044 4 Programming Guide P1099958-001 1/31/18

150 ZPL Commands 150 ~DE will be mapped to 0041 Input stream with 1 0031. The printer prints "1". 0042 Input stream with will be mapped to 2 0032. The printer prints "2". Input stream with will be mapped to 0043 3 0033. The printer prints "3". will be mapped to 0044 Input stream with 4 0034. The printer prints "4". rder. Multiple pa Data must have 0041, 0042, 0043, and 0044 in o irs can be on the same line. P1099958-001 Programming Guide 1/31/18

151 ZPL Commands 151 ^DF ^DF – Download Format with ^DF command saves ZPL II format commands as text strings to be lat er merged using ^XF The ) commands to be referenced variable data. The format to be stored might contain field numb er ( ^FN when recalled. While use of stored formats reduc tting time is saved—this command es transmission time, no forma formatted at print time. saves ZPL II as text strings ^DF stored format command immediately after the ^XA command, then enter the format Enter the commands to be saved. Format: ^DFd:o.x Details Parameters device to store d = , and R: E: Values: , A: B: , image Default: R: image name o = of 1 to 3 alph 1 to 16 alphanumeric characters Values: with a file type anumeric characters separ ated by a "." Default: if a name is not specified, UNKNOWN is used. x = extension Format: .ZPL and ^XF and ^DF ^DF command, see ^XF — Download format and xample of the For a complete e . on page 38 recall format This example is generated using the Example: ^XF command to reca ll this format: ZPL II CODE GENERATED LABEL ^XA ^DFR:STOREFMT.ZPL^FS ^FO25,25 ^AD,36,20^FN1^FS ^FO165,25 ^AD,36,20^FN2^FS ^FO25,75 ^AB,22,14^FDBUILT BY^FS ^FO25,125 ^AE,28,15^FN1 ^XZ ^XA ^XFR:STOREFMT.ZPL^FS ^FN1^FDZEBRA^FS ^XZ Programming Guide P1099958-001 1/31/18

152 ZPL Commands 152 ~DG ~DG – Download Graphics ~DG command downloads an ASCII Hex representation of a graphic ima ge. If The is not the .GRF specified file extension, .GRF is automatically appended. For more saving and loading optio . on page 159 ns when downloading files, see ~DY Format: ~DGd:o.x,t,w,data Parameters Details device to store d = , , and Values: A: B: , E: R: image Default: R: o = image name alphanumeric characters 8 Values: 1 to Default: if a name is not specified, UNKNOWN is used extension x = Format: .GRF See the formula in th e examples below. total number of t = bytes in graphic e examples below. See the formula in th number of bytes w = per row The data string defines the image and is an ASCII hexadecimal r epresentation of data = ASCII ents a horizontal nibble of fou the image. Each character repres r dots. hexadecimal string defining image This is the key for the examples that follow: x = width of the graphic in millimeters height of the graphic in millimeters = y print density of the printer being programmed z dots/mm = = bits/byte = 8 P1099958-001 1/31/18 Programming Guide

153 ZPL Commands 153 ~DG command: ~DG Examples: These are some example related to the To determine the t parameter use this formula: xz - ---- × totalbytes yz = 8 t density of 8 6 mm high, and a prin eter for a graphic 8 mm wide, 1 To determine the correct t param dots/mm, use this formula: × 1024 = 8 128 = t 1024 Raise any portion of a byte to the next whole byte. of bytes per row) use this formu la: parameter (the width in terms w To determine the xz row ---- - totalbytes () () ⁄ = 8 w = 8 To determine the correct s/mm, use w parameter for a graphic 8 mm wide and a print density of 8 dot this formula: 88 × bytes = ----------- -8 8 = w 8 Raise any portion of a byte to the next whole byte. w t calculation. is the first value in the Parameter representation of the graphic The data parameter is a string o f hexadecimal numbers sent as a image. Each hexadecimal character represents a horizontal nibbl e of four dots. For example, if the r black, the dot-by-d first four dots of t he graphic image are wh ite and the next fou ot binary code is 00001111. The hexadecimal repres binary value i s 0F. The entire graphic image is entation of this e continuous string coded in this way, and the com plete graphic image is sent as on of hexadecimal values. This is an example of using the ~DG command to load a checkerboard pattern into DRAM. The name : used to store the graphic is SAMPLE.GRF ZPL II CODE GENERATED LABEL ~DGR:SAMPLE.GRF,00080,010, FFFFFFFFFFFFFFFFFFFF 8000FFFF0000FFFF0001 8000FFFF0000FFFF0001 8000FFFF0000FFFF0001 FFFF0000FFFF0000FFFF FFFF0000FFFF0000FFFF FFFF0000FFFF0000FFFF FFFFFFFFFFFFFFFFFFFF ^XA ^FO20,20^XGR:SAMPLE.GRF,1,1^FS ^XZ Programming Guide P1099958-001 1/31/18

154 ZPL Commands 154 ~DG use different Do not use spaces or periods when naming your graphics. Always Comments names for different graphics. If two graphics with the same nam e are sent to the printer, the first graphic is erased and replaced by the second graphic. 1/31/18 Programming Guide P1099958-001

155 ZPL Commands 155 ~DN Abort Download Graphic ~DN – command, the printer After decoding and printing the number of bytes in parameter t of the ~DG normal printer operation resumed returns to normal Print Mode. Graphics Mode can be aborted and ~DN command. by using the Format: ~DN Comments If you need to stop a graphic from downloading, you should abor t the ~DN ~DG command, however, you must send a transmission from the host device. To clear the command. Programming Guide 1/31/18 P1099958-001

156 ZPL Commands 156 ~DS Download Intellifont (Scalable Font) ~DS – ~DS command is used to set the printer to receive a downloadable s The calable font and defines the size of the font in bytes. The rting a vendor-supplied font ~DS command, and its associated parameters, is the result of conve utility. for use on a Zebra printer. To convert this font use the ZTools Format: ~DSd:o.x,s,data Parameters Details d = device to store B: A: , and , Values: R: , E: image Default: R: image name o = Values: 1 8 alphanumeric characters to if a name is not specified, UNKNOWN is used Default: x = extension Fixed Value: .FNT this number is generated by ZTools and should s = size of font in Fixed Value: bytes not be changed this number is generated by ZTools and should Fixed Value: data = ASCII not be changed hexadecimal string that defines font t was converted using the Example: This example shows the first three lines of a scalable font tha ZTools program and is ready to be downloaded to the printer. If necessary, the destination and object name can be changed. ~DSB:CGTIMES.FNT,37080, OOFFOOFFOOFFOOFF FFOAECB28FFFOOFF Downloaded scalable fonts are not checked for integrity. If the y are corrupt, Comments they cause unpredictable results at the printer. ~DT , ~DU , and ~DY . To determine If you are using a TrueType font use these commands: when to use the noted commands, see ~DT onpage157 , ~DU onpage158 , and ~DY onpage159 . Programming Guide 1/31/18 P1099958-001

157 ZPL Commands 157 ~DT Download Bounded TrueType Font ~DT – font to a Zebra-downloadable f ormat. that has less than 256 Use ZTools to convert a TrueType font that has more than 256 char acters, see characters in it. To convert a onpage158 . ZTools ~DU ~DT command. For information on converting and creates a downloadable file that includes a . downloading Intellifont information, see ~DS on page 156 Format: ~DTd:o.x,s,data Details Parameters d = font location Values: R: , E: , B: , and A: R: Default: o = font name Values: , up to 8 characters any valid TrueType name Default: if a name is not specified, UNKNOWN is used x = extension Fixed Value: .DAT s = font size Values: the number of memory bytes requ ired to hold the Zebra-downloada ble format of the font if an incorrect value or no valu e is entered, the command is ig Default: nored data string data = hexadecimal digits/by Values: a string of ASCII hex adecimal values (two te). The total number of two-digit val ues must match parameter s . Default: if no data is entered, the command is ignored download a true type font: Example: This is an example of how to ~DTR:FONT,52010,00AF01B0C65E... (52010 two-digit hexadecimal values) Programming Guide 1/31/18 P1099958-001

158 ZPL Commands 158 ~DU ~DU – Download Unbounded TrueType Font Some international fonts, such a s Asian fonts, have more than 256 printable characters. Thes e fonts are supported as large TrueType fonts and are downloaded to ebra- ~DU command. Use ZTools to convert the large TrueType fonts to a Z the printer with the downloadable format. The Field Block ( ^FB ) command cannot support the large TrueType fonts. Format: ~DUd:o.x,s,data Details Parameters font location d = E: , R: Values: A: , and B: , R: Default: o = font name 1 to 8 alphanumeric characters Values: if a name is not specified, UNKNOWN is used Default: x = extension Format: .FNT s = font size ble ired to hold the Zebra-downloada the number of memory bytes requ Values: format of the font if no data is entered, the command is ignored Default: data string data = te). The adecimal values (two hexadecimal digits/by a string of ASCII hex Values: total number of two-digit val ues must match parameter s . if no data is entered, the command is ignored Default: wnload an unbounded true type fo Example: This is an example of how to do nt: ~DUR:KANJI,86753,60CA017B0CE7... (86753 two-digit hexadecimal values) on page 156 . ~DY , and For similar co mmands, see ~DS on page 157 , ~DT on page 159 P1099958-001 1/31/18 Programming Guide

159 ZPL Commands 159 ~DY Download Objects ~DY – ~DY command downloads to the printer graphic objects or fonts in a ny supported format. This The for more saving and loading options. ~DY is the preferred command can be used in place of ~DG . ~DU ter than X.13. It is faster than command to download TrueType fonts on printers with firmware la ~DY command also supports downloading wireless certif icate files. The Note • When using certificate files, your printer supports: • Using Privacy Enhanced Mail (PEM ) formatted certificate files. • Using the client certificate and private key as two files, each downloaded separately. • Using exportable PAC files for EAP-FAST. • Zebra recommends using Linear st yle memory devices for storing larger objects. Format: ~DYd:f,b,x,t,w,data Parameters Details d = file location R: A: , and B: , E: , Values: R: Default: .NRD files reside .PAC and on E: in firmware versions V60.15.x, V50.15.x, or later. f = file name Values: 1 to 8 alphanumeric characters Default: if a name is not specified, UNKNOWN is used format downloaded b = Values: A = uncompressed (ZB64, ASCII) in data field , , binary) .TTF .TTE uncompressed ( B = ® C = v5) AR-compressed (used only by Zebra’s BAR-ONE ) - ZB64 encoded .PNG portable network graphic ( P = .TTE .TTF are only and Default: a value must be specified supported in firmware versions V60.14.x, V50.14.x, or later. extension of x = Values: B = bitmap stored file E = TrueType Extension ( .TTE ) G = raw bitmap ( .GRF ) .PNG store as compressed ( P = ) .OTF ) ) or OpenType ( .TTF TrueType ( T = .TTE .OTF are only and supported in firmware ) .PCX Paintbrush ( X = versions V60.14.x, V50.14.x, Non Readable File ( NRD = .NRD ) or later. Protected Access Credential ( .PAC ) PAC = enu file (WML) User defined m C = page file (HTM) User defined web F = H = Printer feedback file (GET) are only .NRD and .PAC Default: .GRF pted values defaults to a value other than the acce supported in firmware versions V60.15.x, V50.15.x, or later. Programming Guide P1099958-001 1/31/18

160 ZPL Commands 160 ~DY Parameters Details total number of t = Values: .BMP bytes in file This parameter refers to the act mount of ual size of the file, not the a disk space. .GRF images: the size after decompression into memory mount of This parameter refers to the act ual size of the file, not the a disk space. .PCX This parameter refers to the act ual size of the file, not the a mount of disk space. images: .PNG ual size of the file, not the a mount of This parameter refers to the act disk space. .TTF is only supported in .TTE This parameter refers to the act ual size of the file, not the a mount of firmware versions V60.14.x, disk space. V50.14.x, or later. .TTE mount of This parameter refers to the act ual size of the file, not the a disk space. total number of w = Values: images: number of bytes per row .GRF bytes per row images: value ignored .PNG images: value ignored .TTF images: value ignored .TTE is only supported in .TTE .NRD images: value ignored firmware version V60.14.x, images: value ignored .PAC V50.14.x, or later. files are .PAC and .NRD supported in firmware version V60.15.x, V50.15.x, or later. 64, or binary data, depending on b . ASCII hexadecimal encoding, ZB data = data A, P = ASCII hexadecimal or ZB64 B, C = binary ntrol prefixes and flow control characters are ignored When binary data is sent, all co eeded for the graphic format i s received. until the total number of bytes n Note • When transmitting fonts or graphics, the ~DY command and the binary content can be sent ~DY command and data content are sent as two separate data streams. In cases where the separately, the connection to the til both the comm and and data printer must be maintained un content have been sent. If the co mmand and data content are sen t separately, the data light on the ~DY command. The download will or in the printer will remain lit until it r eceives all the data called f ~DY command have been be considered complete when the number of bytes called out in t he received. For best results, graphic files hite) or dithered. must be monochrome (black and w P1099958-001 Programming Guide 1/31/18

161 ZPL Commands 161 ~DY le of Size bytes using load a binary TrueType Font fi This is an example of how to down Example: the name fontfile.ttf and storing it to permanent flash memory on the printer: ~DYE:FONTFILE.TTF,B,T,SIZE,, Examples: These examples show: ^FO command is used with the ^IM command (see ^IM ^IM command, the • that when the on the label. he 0,0 position file from a storage area to t logo.png ) moves the on page 220 This is the ZPL code: ^XA ^FO0,0^IMR:LOGO.PNG^FS ^XZ ^IL on page 219 ^IL ) is used at the beginning of a label format, it • that when the command (see ) of a format and merges it with additional data. It is loads a stored image ( logo.png command. ^FO automatically positio oes not require the ned at the 0,0 position of the label and d This is the ZPL code: ^XA ^ILR:LOGO.PNG ^XZ coding and compression, see Comments For more information on ZB64 en . ZB64 Encoding and Compression onpage1365 to know about this command in f irmware version These are some important things V60.14.x, V50.14.x, or later: h this command. • ZebraNet Bridge can be used to download fonts and graphics wit ith this • OpenType tables are only supported when downloading the font w command .OTF ) are supported if they are downloaded as a TrueType font. In • OpenType fonts ( extension. fonts have the .TTF .OTF the printer Programming Guide P1099958-001 1/31/18

162 ZPL Commands 162 ~EG Erase Download Graphics ~EG – See ^ID on page 217 . 1/31/18 Programming Guide P1099958-001

163 ZPL Commands 163 ^FB Field Block ^FB – ^FB command allows you to pr int text into a defined block type format. This command formats The ^FD an ^SN string into a block o f text using the origin, font, and rotati on specified for the text or ^FB command also contains an automatic word-wrap function. string. The Format: ^FBa,b,c,d,e Parameters Details a = width of text Values: 0 to the width of the label block line (in Default: 0 dots) If the value is less than font width or not specified, text doe s not print. b = maximum number of Values: 1 to 9999 lines in text Default: 1 block of lines overwrites the last Text exceeding the maximum number line. Changing the font size automatically incre the block. ases or decreases the size of c = add or delete 9999 to Values: -9999 space between Default: 0 lines (in dots) Numbers are considered to be positive unles s preceded by a minu s sign. Positive values add space; negative values delete space. d = text Values: left L = justification C = center R = right J = justified Default: L If J is used the last line is left-justified. e = hanging indent 9999 to Values: 0 (in dots) of the Default: 0 second and remaining lines Programming Guide 1/31/18 P1099958-001

164 ZPL Commands 164 ^FB ^FB command affects field data. Example: These are examples of how the ZPL II CODE GENERATED LABEL ^XA ^CF0,30,30^FO25,50 ^FB250,4,, ^FDFD command that IS\& preceded by an FB \&command. ^FS ^XZ ^XA ^CF0,30,30^FO25,50 ^FDFD command that IS NOT preceded by an FB command.^FS ^XZ Comments This scheme can be used to facilitate special functions: carriage return/line feed \& = \(*) = soft hyphen (word break with a dash) backslash (\) \\ = must be selected to p Item 1: rint a backslash (\). ^CI13 ine, the hyphen is printed. If it If a soft hyphen escape sequence is placed near the end of a l Item 2: of the line, it is ignored. is not placed near the end (*) = any alphanumeric character • If a word is too long to print on one line by itself (and no s oft hyphen is specified), a hyphen is automatically placed in the wor d at the right e dge of the block . The remainder of the word is on h, not a syllable boundary. Use ition of the hyphen depends on word lengt the next line. The pos curs. control where the hyphenation oc a soft hyphen within a word to • Maximum data-string length is 3K, including control characters , carriage returns, and line feeds. word spaces at line breaks are discarded. • Normal carriage returns, line feeds, and e last possible line of text. uses the baseline origin of th ^FT (Field Typeset), ^FT • When using ize from bottom to top. This could the text block to Increasing the font size causes increase in s cause a label to print past its top margin. ^FO (Field Origin), increasing the font size causes the text block to increase in size • When using from top to bottom. command. ^FB • ^FS terminates an command. Each block requires its own ^FB ^FB stification of the text tification parameter that defines the ju command has a text jus While the ^FT within the block, it also interac that define the justification of ts with the justification of ^FO and the origin. ^FB k point. However, soft phens as a potential line brea command does not support soft hy The inted as if they were a hyphen. hyphen characters are always pr The ^TB t, use text. For complex text suppor command does not support complex ^FB . 1/31/18 Programming Guide P1099958-001

165 ZPL Commands 165 ^FB 1/31/18 Programming Guide P1099958-001

166 ZPL Commands 166 ^FC ^FC – Field Clock The ^FC command is used to set the clo ck-indicators (delimiters) and t he clock mode for use with the Real-Time Clock hardware. T hin each label field command his command must be included wit string each time the Real-Time Clock values are required within the field. Format: ^FCa,b,c Details Parameters = primary clock a any ASCII character Values: indicator % Default: character b = secondary clock Values: any ASCII character indicator none—this value cannot be the same as c or a Default: character c = third clock any ASCII character Values: indicator b Default: none—this value cannot be the same as or a character Entering these ZPL commands sets the primary clock indicator to %, the secondary clock Example: indicator to {, and the third cl ock indicator to #. The results are printed on a label with Primary, Secondary, and Third as field data. ZPL II CODE GENERATED LABEL ^XA ^FO10,100^A0N,50,50 ^FC%,{,# ^FDPrimary: %m/%d/%y^FS ^FO10,200^A0N,50,50 ^FC%,{,# ^FDSecondary: {m/{d/{y^FS ^FO10,300^A0N,50,50 ^FC%,{,# ^FDThird: #m/#d/#y^FS ^XZ ot present. As Real Time Clock hardware is n The ^FC command is ignored if the Comments ^FC ) functions with ( ) capabilities. ^SN of V60.13.0.10, ( e Real Time Clock, see Real Time Clock on page 1375 . For more details on th P1099958-001 1/31/18 Programming Guide

167 ZPL Commands 167 ^FD ^FD – Field Data The ^FD command defines the data string for a fiel d. The field data ca n be any printable character and except those used as command prefixes ( ^ ). ~ used to specify passwords to w rite to tags. In RFID printers, it can also be Format: ^FDa Parameters Details a = any data string up to 3072 bytes Values: • data to be printed (all Default: none—a string of characters must be entered printers), or • a password to be written to a RFID tag (rfid printers) characters can be printed by changing the prefix characters—se e Comments The ^ and ~ ^CD ~CD . The new prefix characters cannot be printed. and ^CT ~CT onpage142 onpage130 and Characters with codes above 127, or the ^ and ~ ^FD ^FH characters, can be printed using the commands. ^CI13 • must be selected to pr int a backslash (\). . on page 164 Comments on the ^FB command For information on using soft hyphens, see P1099958-001 Programming Guide 1/31/18

168 ZPL Commands 168 ^FH ^FH – Field Hexadecimal Indicator The command allows you to enter the hexadecimal value for any char acter directly into the ^FD ^FH statement. The ^FH command must precede each ^FD command that uses hexadecimals in its field. ^FD statement, the hexadecimal indi cator must precede each hexadec imal value. The Within the default hexadecimal indicator is _ (underscore). There must be a minimum of two characters a parameter can be added when a different hexadecimal designated to follow the underscore. The indicator is needed. This command can be used with an ld data (that is y of the commands that have fie ^FD (Field ^FV , Variable), and ^SN (Serialized Data)). Valid hexadecimal characters are: 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f Format: ^FHa Parameters Details a = hexadecimal by default) Values: any character except current format and control prefix (^ and ~ indicator Default: _ (underscore) statement: Example: This is an example of how to en ter a hexadecimal value directly into a ^FD . ^CI0 This is an example f or ascii data using Programming Guide P1099958-001 1/31/18

169 ZPL Commands 169 ^FH works with UTF These are examples of how Examples: -8 and UTF-16BE: ^FH UTF-8 ZPL II CODE GENERATED LABEL ^XA ^CI28 ^LL500 ^FO100,100 ^AA,20,20 ^FH^FDU+00A1 in UTF8 = _C2_A1^FS ^XZ UTF-16BE ZPL II CODE GENERATED LABEL ^XA ^CI29 ^LL500 ^FO100,100 ^AA,20,20 ^FH^FDU+00A1 in UTF16BE = _00_A1^FS ^XZ 1/31/18 P1099958-001 Programming Guide

170 ZPL Commands 170 ^FL ^FL – Font Linking The command provides the ability to link any TrueType font, includ ing private char acter fonts, to ^FL associated fonts. er, the printer looks to the linked fonts ot have a glyph for the required charact If the base font does n for the glyph. The font links ar e user-definable. The font link ing remains until the link is broken or the ntly save the font linking, us e the ^JUS command. printer is turned off. To permane Note • For assistance in se tting up the font lin ks, use the font wizar d in ZebraNet Bridge. Format: ^FL,, Details Parameters This is the fully-qualified filena me of the extension. This fil e name does not accept wildcards. or this parameter are: The supported extensions f .TTF . The format for .TTE and this parameter is the memory dev ice followed by the font name w ith the extension, as follows: E:SWISS721.TTF any of the following font(s). The base font can be This is the filename of the base types: .FNT .TTF or .TTE TTE . or . .TTF ou can only link to a From these font types y The name of the base f ont can be expressed as a wild card; doin g so will define multiple base fonts. The result will be that all base font file s so defined will be linked parameter. to the file defined in the ave to match a file t The filename does not h hat is currently de fined on the printer. A specification of e printer currently .TTF font files loaded on th results in all * *.TTF font extension. specified ked with the or in the future to be lin This is an indicator linked with the base, or that determines if the extension is to be unlinked from the base, as follows: Values: n ) from the file(s) specified i is to be unlinked (disassociated 0 = is to be linked (associated) with the file(s) specified by 1 = Default: lue or it is ignored must be an accepted va A font can have up to five fonts linked to it. The printer resi dent font, 0.FNT is Comments always the last font in the list of font links, but is not incl uded in the five link maximum. It can also be placed anywhere in the font links list. be found in any of The default glyph prin ts when a glyph cannot the fonts in the link list. The ^PA fault determines if the default glyph is a space character or the de advanced layout command glyph of the base f ont, which is typically a hollow box. command. ^HT command or retrieved with the ^LF be printed by using the The list of font links can Programming Guide 1/31/18 P1099958-001

171 ZPL Commands 171 ^FL for font linking: output for no font linking and These examples show the code and Examples: No Font Linking the Asian glyphs, which is why , the Swiss721 font does not have In the no font linking example Asian glyphs do not print. ZPL II CODE GENERATED LABEL Font Linking In the font linking exam ANMDJ.TTF font to ple, this code is sent down to link the SWISS721.TTF font: ^XA ^FLE:ANMDJ.TTF,E:SWISS721.TTF,1^FS ^XZ When the label reprints, the Asian characters are printed using the ANMDJ.TTF font, rather than font. SWISS721.TTF the ZPL II CODE GENERATED LABEL P1099958-001 Programming Guide 1/31/18

172 ZPL Commands 172 ^FM ^FM – Multiple Field Origin Locations The ^FM command allows you to control t he placement of bar code symbol s. ^B7 ) bar codes when the ^BF ) and MicroPDF417 ( It designates field locations for the PDF417 ( structured append capabilities are used. This allows printing m ultiple bar codes from the same set of text information. The structured append capability is a way of extending the text printing capacity of both bar codes. If a string extends beyond what the data limitations of the bar co de are, it can be printed as a series: 1 of 3, 2 of 3, 3 of 3. Scanners read the information and reconci le it into the original, unsegmented text. The ^FM command triggers multiple bar c ode printing on the same label with ^B7 and ^BF only. When used with any other commands, it is ignored. Format: ^FMx1,y1,x2,y2,... Parameters Details x1 = x-axis location Values: 0 32000 to of first symbol e = exclude this bar code from printing (in dots) Default: a value must be specified y1 = y-axis location Values: 0 to 32000 of first symbol e = exclude this bar code from printing (in dots) Default: a value must be specified x-axis location x2 = Values: 0 to 32000 of second symbol e = exclude this bar code from printing (in dots) Default: a value must be specified y2 = y-axis location Values: 32000 to 0 of second symbol e = exclude this bar code from printing (in dots) a value must be specified Default: Maximum number of pairs: 60 ... = continuation of X,Y pairs 1/31/18 Programming Guide P1099958-001

173 ZPL Commands 173 ^FM Example: This example shows you how to gen erate three bar codes with the text “Zebra Technologies Corporation strives to be...” would need to be repea ted seven times , which includes : ^FS and ^FD including spaces) between 2870 characters of data ( ZPL II CODE GENERATED LABEL ^XA ^FM100,100,100,600,100,1200 ^BY2,3 ^B7N,5,5,9,83,N ^FDZebra Technologies Corporation strives to be the expert supplier of innovative solutions to specialty demand labeling and ticketing problems of business and government. We will attract and retain the best people who will understand our customer's needs and provide them with systems, hardware, software, consumables and service offering the best value, high quality, and reliable performance, all delivered in a timely manner ... ^FS^XZ 1 needs to be repeated t of the code. It indicates that the text The ellipse is not par 1 seven times, as mentioned in the example description. P1099958-001 Programming Guide 1/31/18

174 ZPL Commands 174 ^FM e 2 of 3 omitted: bar codes, with bar cod a maximum of three This example assumes Example: ZPL II CODE GENERATED LABEL ^XA ^FM100,100,e,e,100,1200 ^BY2,3 ^B7N,5,5,9,83,N ^FDZebra Technologies Corporation strives to be the expert supplier of innovative solutions to specialty demand labeling and ticketing problems of business and government. We will attract and retain the best people who will understand our customer's needs and provide them with systems, hardware, software, consumables and service offering the best value, high quality, and reliable performance, all delivered in a timely manner ... ^FS^XZ 1 The ellipse is not par needs to be repeated t of the code. It indicates that the text 1 seven times, as mentioned in the example description. Comments Subsequent bar codes print once the data limitations of the pre vious bar code of 3 has reached the have been exceeded. For example, bar code 2 of 3 prints once 1 s not ensure that three bar maximum amount of data it can ho ld. Specifying three fields doe codes print; enough field data t o fill three bar code fields ha s to be provided. x,y f too few The number of the bar codes generated. However, i pairs can exceed the number of are designated, no symbols print. 1/31/18 Programming Guide P1099958-001

175 ZPL Commands 175 ^FN Field Number ^FN – The ^FN command numbers the data fields. This command is used in both ^DF (Store Format) and ^XF (Recall Format) commands. In a stored format, use the ^FN command where you would normally use the ^FD (Field Data) ^FD in conjunction with the ^FN command. command. In recalling the stored format, use The optional "a" parameter can be used with the KDU Plus to cause prompts to be displayed on the KDU unit. Also, when the Print on Label link is selected on the Directory page of ZebraLink enabled printers the field prompt displays. n the available printer The number of fields and data that can be stored is dependent i memory. commands that can be used depends on the amount of data ^FN The maximum number of Note • use 400 or fewer fields. that is placed in the fields on the label. It is recommended to Format: ^FN#"a" Details Parameters # = number to be 9999 Values: 0 to assigned to the Default: 0 field "a" = optional Values: 255 alphanumeric characters maximum (a-z,A-Z,1-9 and space) parameter* optional parameter Default: * This parameter is only available on printers with firmware V5 V60.13.0.1, or 0.13.2, V53.15.5Z, and command, see ^DF and ^XF ^DF ^XF — Download format ete example of the later. For a compl . on page 38 and recall format Comments • The same ^FN value can be stored with se veral different fields. • If a label format contains a field with and ^FN ^FD , the data in that field prints for any other field ^FN value. containing the same • For the "a" parameter must parameter to function as a prom pt the characters used in the "a" quotes (see example). be surrounded by double Example: The ^FN1"Name" would result in "Name" being used as the prompt on the KDU unit. P1099958-001 Programming Guide 1/31/18

176 ZPL Commands 176 ^FO ^FO – Field Origin ^FO command sets a field origin The ^LH ) position. ^FO sets the upper- , relative to the label home ( left corner of the field area by defining points along the x-ax is and y-axis independent of the rotation. Format: ^FOx,y,z Parameters Details x = x-axis location 0 32000 to Values: (in dots) Default: 0 y-axis location y = 0 32000 Values: to (in dots) 0 Default: justification z = Values: 0 = left justification 1 = right justification auto justification (script dependent) 2 = z parameter is only The ^FW ^FW default value or Default: last accepted supported in firmware versions V60.14.x, V50.14.x, or later. x parameter is too high, it could position the or y If the value entered for the Comments field origin completely off the label. he field direction parameter of ^FP and with the rotation parameter of This command interacts with t Field Interactions ^A . For output and examples, see onpage1369 . The auto justification option mi ght cause unexpected results if variable fields or ^FO . For the best results with bidirectional text and/or bidirectional text are used with ion. variable fields, use either the left of right justification opt Programming Guide 1/31/18 P1099958-001

177 ZPL Commands 177 ^FP ^FP – Field Parameter The ^FP command allows vertical and reve rse formatting o f the font fie ld, commonly used for printing Asian fonts. Format: ^FPd,g . Parameters Details d = direction Values: H = horizontal printing (left to right) V = vertical printing (top to bottom) (right to left) R = reverse printing Default: H g = additional 9999 to Values: 0 inter-character Default: 0 if no value is entered gap (in dots) Example: plement reverse and vertical pri This is an example of how to im nt: For vertical and reverse printing directions, combining semanti c clusters are used to place characters. This command interacts with the justification parameters of ^FO and ^FT and with the rotation . Field Interactions onpage1369 . For output and examples, see ^A parameter of Programming Guide 1/31/18 P1099958-001

178 ZPL Commands 178 ^FR ^FR – Field Reverse Print The ^FR command allows a field to appear as white over black or black over white. When printing a command has been used, ^FR field and the of its background. put is the reverse the color of the out Format: ^FR allowing the printing to appear command creates areas of black ^GB In this example, the Example: white: ZPL II CODE GENERATED LABEL ^XA ^PR1 ^FO100,100 ^GB70,70,70,,3^FS ^FO200,100 ^GB70,70,70,,3^FS ^FO300,100 ^GB70,70,70,,3^FS ^FO400,100 ^GB70,70,70,,3^FS ^FO107,110^ F0,70,93 C ^FR^FDREVERSE^FS ^XZ time. Comments The ^FR command applies to only one fiel d and has to be specified each ^FR use the commands are going to be used, it might be more convenient to When multiple command. ^LR Programming Guide 1/31/18 P1099958-001

179 ZPL Commands 179 ^FS ^FS – Field Separator , command denotes the end command can also be The ^FS ^FS of the field defini tion. Alternatively issued as a single ASC II control code SI (C ontrol-O, hexadecima l 0F). Format: ^FS P1099958-001 Programming Guide 1/31/18

180 ZPL Commands 180 ^FT ^FT – Field Typeset The ^FT command sets the field position, relative to the home position of the label designated by the ^LH command. The typesetting origin of the field is fixed with res pect to the contents of the field and does not change with rotation. command is capable of con cantination of fields. ^FT The Note • Format: ^FTx,y,z Parameters Details x = x-axis location to 0 32000 Values: (in dots) ormatted text field Default: position after last f y = y-axis location Values: 0 to 32000 (in dots) ormatted text field Default: position after last f z = justification Values: left justification 0 = right justification 1 = 2 = auto justification (script dependent) Default: default last accepted ^FW value or ^FW parameter is only The z cause unexpected results if v ariable fields or The auto justification option may supported in firmware ^FT directional text and/or . For best results with bi bidirectional text are used with version V60.14.x, V50.14.x, ft of right justification opt variable fields, use either the le ions. or later. Table 13 • Typeset Justification . For examples, see Field Interactions on page 1369 Text Bar Codes f bar code, at left edge Origin is base o tom-left corner of the box Graphic Boxes Origin is bot Left Justified Images Origin is bottom-le ft corner of the image area . Text For examples, see Field Interactions on page 1369 Bar Codes Origin is base of bar code, at right edge m-right corner of the box Origin is botto Graphic Boxes Right Justified Origin is bottom-righ Images t corner of the image area Programming Guide 1/31/18 P1099958-001

181 ZPL Commands 181 ^FT Example: This is an example of the ^FT command and concatenation: When a coordinate is m issing, the position following the last f ormatted field is assumed. This remembering simplifies field positioning with respect to other fields. Onc e the first field is positioned, other fields follo w automatically. There are several instances where using the y and parameters ^FT command without specifying x is not recommended: • when positioning the first field in a label format • at any time with the ^FN (Field Number) command (Serialization Data) command • following an ^SN • variable data • bidirectional text The right typeset justified is available only for printers with firmware version V60.14.x, V50.14.x, or later. This command interacts with the field direction parameters of ^FP and with the rotation parameter onpage1369 Field Interactions ode examples, see . For output and c ^A of Programming Guide 1/31/18 P1099958-001

182 ZPL Commands 182 ^FV ^FV – Field Variable ble. ^FV replaces the ^FD (field data) command in a label format when the field is varia Format: ^FVa Details Parameters a = variable field byte string 3072 to 0 Values: data to be Default: if no data is entered, the command is ignored printed of how to use the command: ^FV Example: This is an example and ^MC ZPL II CODE GENERATED LABEL ^XA ^FO40,40 ^GB300,203,8^FS F0,25 ^FO55,60^ C ^FVVARIABLE DATA #1^FS ^FO80,150 ^FDFIXED DATA^FS N C ^M ^XZ ^XA C ^ F0,25 ^FO55,60 ^FVVARIABLE DATA #2^FS ^M C Y ^XZ fields are not ^FD fields are always cleared after the label is printed. Comments ^FV cleared. P1099958-001 1/31/18 Programming Guide

183 ZPL Commands 183 ^FW ^FW – Field Orientation The ^FW command sets the def ault orientation for all command fields th at have an orientation (rotation) parameter (and in x.1 4 sets the defaul t justificatio n for all commands with a justification parameter). Fields can be rotat ed 0, 90, 180, or 270 degrees cl ockwise by using this command. In be left, right, or auto. x.14, justification can command, the command affects only fields tha t follow it. Once you have issu ed a ^FW ^FW The setting is retained until you tu rn off the printer or send a ne w ^FW command to the printer. Format: ^FWr,z Parameters Details rotate field r = Values: N = normal R = rotated 90 degrees I = inverted 180 degrees read from bottom up bottom-up 270 degrees, B = N Initial Value at Power Up: justification z = Values: 0 = left justification 1 = right justification auto justification (script dependent) 2 = z parameter is available The Default: and left for all other commands ^TB auto for only with printers with firmware version V60.14.x, V50.14.x, or later. This example shows how Example: rotation works in conjunction with . In this example, ^FO ^FW note that: the fields using A0N print the field in normal rotation • command ^FW used in the the fields with no rotation indicated (A0) follow the rotation • ^FWR ). ( GENERATED LABEL ZPL II CODE ^XA ^FWR ^FO150,90^A0N,25,20^FDZebra Technologies^FS ^FO115,75^A0,25,20^FD0123456789^FS ^FO150,115^A0N,25,20^FD333 Corporate Woods Parkway^FS ^FO400,75^A0,25,20^FDXXXXXXXXX^FS ^XZ ^FW affects only the orientation in commands where the rotation pa rameter Comments tion parameter, that value is has not been specifica lly set. If a command has a specific rota used. 1/31/18 P1099958-001 Programming Guide

184 ZPL Commands 184 ^FW has not been set. If a in commands where the parameter affects only the justification ^FW command has a specific justifica tion parameter that value is us ed . 1/31/18 Programming Guide P1099958-001

185 ZPL Commands 185 ^FX ^FX – Comment The ^FX command is useful w hen you want to add non-printing informational comments or statements within a label format. Any data after the ^FX command up to the next caret (^) or tilde (~) t on the label format. Therefore , you should avoid using the caret command does not have any effec ^FX statement. mmands within the (^) or tilde (~) co Format: ^FXc Parameters Details table comment. Creates a non-prin non printing c = comment This is an example command effectively: ^FX of how to use the Example: ZPL II CODE GENERATED LABEL ^XA ^LH100,100^FS ^FXSHIPPING LABEL^FS ^FO10,10^GB470,280,4^FS ^FO10,190^GB470,4,4^FS ^FO10,80^GB240,2,2^FS ^FO250,10^GB2,100,2^FS ^FO250,110^GB226,2,2^FS ^FO250,60^GB226,2,2^FS ^FO156,190^GB2,95,2^FS ^FO312,190^GB2,95,2^FS ^XZ Correct usage of the Comments lowing it with the ^FS command includes fol ^FX command. Programming Guide P1099958-001 1/31/18

186 ZPL Commands 186 ^GB ^GB – Graphic Box mat. Boxes and lines are The ^GB command is used to draw boxes and lines as part of a label for used to highlight impor tant information, divide labels into dis tinct areas, or to improve the appearance of a label. The same f ormat command is used for draw ing either boxes or lines. Format: ^GBw,h,t,c,r Details Parameters w = box width (in 32000 Values: value of to t dots) Default: value used for thickness (t) or 1 box height (in h = Values: t value of to 32000 dots) Default: value used for thickness (t) or 1 border thickness t = Values: 32000 to 1 (in dots) Default: 1 line color c = Values: B = black white W = B Default: degree of corner- r = 0 (no rounding) to (heaviest rounding) 8 Values: rounding Default: 0 12, or and h parameters, keep in mind that pr inters have a def ault of 6, 8, w For the 24 dots/millimeter. This comes ou t to 153, 203, 300, or 600 dot s per inch. To determine the values for w and h, calculate the dimens ions in millimeters and multip ly by 6, 8, 12, or 24. with its width and height as specified by If the width and height are not s pecified, you get a solid box value . t each box. Formula: The roundness-index is used to determine a rounding-radius for rounding-radius = (rounding-inde x / 8) * (shorter side / 2) where the shorter side is the lesser of the width and height (a fter adjusting for minimum and default values). P1099958-001 Programming Guide 1/31/18

187 ZPL Commands 187 ^GB Examples: Here are a few examples of graphic boxes: Width: 1.5 inch; Height: 1 inch; Thickness: 10; Color: default; Rounding: default ZPL II CODE GENERATED LABEL ^XA ^FO50,50 ^GB300,200,10^FS ^XZ hickness: 20; Color: default; R ounding: default: Width: 0 inch; Height: 1 inch; T ZPL II CODE GENERATED LABEL ^XA ^FO50,50 ^GB0,203,20^FS ^XZ Width: 1 inch; Height: 0 inch; T hickness: 30; Color: default; R ounding: default ZPL II CODE GENERATED LABEL ^XA ^FO50,50 ^GB203,0,20^FS ^XZ Width: 1.5 inch; Height: 1 inch; Thickness: 10; Color: default; Rounding: 5 ZPL II CODE GENERATED LABEL ^XA ^FO50,50 ^GB300,200,10,,5^FS ^XZ 1/31/18 Programming Guide P1099958-001

188 ZPL Commands 188 ^GC ^GC – Graphic Circle The ^GC command produces a circle on t he printed label. The command pa rameters specify the diameter (width) of the circle, outline thickness, and color. T hickness extends inward from the outline. ^GCd,t, c Format: Parameters Details circle diameter d = e replaced with 4095) 4095 Values: 3 to (larger values ar (in dots) 3 Default: border thickness t = to Values: 2 4095 (in dots) Default: 1 c = line color Values: B = black W = white Default: B el: Example: This is an example of how to creat e a circle on the printed lab ZPL II CODE GENERATED LABEL ^XA ^FO50,50 ^GC250,10,B^FS ^XZ Programming Guide P1099958-001 1/31/18

189 ZPL Commands 189 ^GD Graphic Diagonal Line ^GD – ^GD command produces a straight diagonal line on a label. This can be used in conjunction with The other graphic commands to crea te a more complex figure. Format: ^GDw,h,t,c,o Parameters Details w = box width (in 3 to Values: 32000 dots) value of t (thickness) or 3 Default: h = box height (in 32000 Values: 3 to dots) 3 Default: value of t (thickness) or t = border thickness 1 to 32000 Values: (in dots) Default: 1 c = line color Values: B = black W = white Default: B orientation o = Values: R (or /) = right-leaning diagonal (direction of L (or \) = left-leaning diagonal the diagonal) Default: R Example: This is an example of how to create a diagonal line connecting one corner with the on a printed label: opposite corner of a box ZPL II CODE GENERATED LABEL ^XA ^FO150,100 ^GB350,203,10^FS ^FO155,110 ^GD330,183,10,,R^FS ^XZ Programming Guide 1/31/18 P1099958-001

190 ZPL Commands 190 ^GE Graphic Ellipse ^GE – ^GE command produces an ellipse in the label format. The Format: ^GEw,h,t,c Parameters Details w = ellipse width (in Values: 3 to 4095 (larger values are replaced with 4095) dots) value used for thickness ( t ) or 1 Default: ellipse height h = Values: 3 to 4095 (in dots) value used for thickness ( 1 ) or Default: t border thickness t = Values: 2 to 4095 (in dots) Default: 1 c = line color Values: B = black W = white Default: B l: Example: This is an example of how to cr eate a ellipse on a printed labe ZPL II CODE GENERATED LABEL ^XA ^FO100,100 ^GE300,100,10,B^FS ^XZ Programming Guide P1099958-001 1/31/18

191 ZPL Commands 191 ^GF Graphic Field ^GF – ^GF command allows you to download graphic field data directly int o the printer’s bitmap The storage area. This command follows the conventions for any othe r field, meaning a field orientation c field data can be placed at any locati on within the bitmap space. is included. The graphi Format: ^GFa,b,c,d,data Parameters Details compression type a = Values: ASCII hexadecimal (follows the format for other download A = commands) B = binary (data sent after the c parameter is strictly binary) parameter is in C = compressed binary (data sent after the c compressed binary format. The data is compressed on the host si de orithm. The data is then using Zebra’s compression alg decompressed and placed directly into the bitmap.) Default: A binary byte count b = 1 to 99999 Values: This is the total number of bytes to be transmitted for the tot al image or the total d . For ASCII download, the parameter number of bytes that f ollow parameter should match parameter c . Out-of-range values are set to the nearest limit. Default: command is ignored if a v alue is not specified graphic field c = 1 to 99999 Values: (width x height), comprising the graphic format This is the total number of bytes count which is sent as parameter d . Count divided by bytes per row gives the number r represents the size of the i mage, not of lines in the image. This numbe d ). necessarily the size of the data stream (see Default: command is ignored if a v alue is not specified d = bytes per row Values: 1 to 99999 This is the number of bytes in the downloaded data that compris e one row of the image. Default: command is ignored if a v alue is not specified data = data Values: FF 00 to ASCII hexadecimal data: A string of ASCII hexadecimal n s per image byt e. CR and LF umbers, two digit can be inserted as needed for readability. The number of two-di git number pairs must match the above c ount. Any numbers sen t after count is sat isfied are 00 ignored. A comma in the data pads the current line with (white space), or any caret or tilde char acter prematurely aborts ~DN minimizing the data sent. the download. Binary data: Strictly binary data is sent from the host. All control prefix es are ignored until the total number of bytes needed for the graphic format is sent. This example downloads 8,000 total bytes of data and places the graphic data at location Example: 100,100 of the bitmap. The data sent to the printer is in ASCII form. ^FO100,100^GFA,8000,8000,80,ASCII data 1/31/18 Programming Guide P1099958-001

192 ZPL Commands 192 ^GF graphic data at location This example downloads 8,000 total bytes of data and places the Example: 100,100 of the bitmap. The data sent to the printer is in binar y form. ^FO100,100^GFB,8000,8000,80,Binary data 1/31/18 Programming Guide P1099958-001

193 ZPL Commands 193 ^GS ^GS – Graphic Symbol The ^GS command enables you to generate the registered trademark, copy right symbol, and other symbols. Format: ^GSo,h,w Parameters Details o = field orientation Values: normal N = rotate 90 degrees clockwise R = I = inverted 180 degrees B = bottom-up, 270 degrees N or last Default: ^FW value h = character height Values: 0 to 32000 proportional to value ^CF last Default: width (in dots) = character width w Values: 0 to 32000 proportional to last value Default: ^CF height (in dots) ^GS haracter (A through E) Example: Use the and the appropriate c command followed by ^FD ate the desired character: within the field data to gener ZPL II CODE GENERATED LABEL ^XA^CFD ^FO50,50 ^FDZEBRA PROGRAMMING^FS ^FO50,75 ^FDLANGUAGE II (ZPL II )^FS ^FO280,75 ^GS^FDC^FS ^XZ Programming Guide 1/31/18 P1099958-001

194 ZPL Commands 194 ~HB ~HB – Battery Status When the ~HB command is sent to the printer, a data string is sent back to the host. The string starts with an control code control code sequence and terminates by an sequence. Important • This command only responds to mobile printers. Format: ~HB Parameters: when the printer receives t he command, it returns: bb.bb,hh.hh,bt = ASCII start-of-text character ing to the nearest 1/4 volt bb.bb = current battery voltage read hh.hh = current head voltage reading to the nearest 1/4 volt battery temperature in Celsius bt = = ASCII end-of-text character ASCII carriage return = ASCII line feed character = Comments r and should This command is used for the power-supply battery of the printe battery backed-up RAM. not be confused with the P1099958-001 Programming Guide 1/31/18

195 ZPL Commands 195 ~HD ~HD – Head Diagnostic ~HD wer supply and head command echoes printer status information that includes the po The temperature using th e terminal emulator. Format: ~HD Example: This is an example of the ~HD command: P1099958-001 Programming Guide 1/31/18

196 ZPL Commands 196 ^HF Host Format ^HF – command sends stored formats to the host. The ^HF Format: ^HFd,o,x Details Parameters d = device to recall Values: R: , E: , B: , and A: image Default: R: o = image name alphanumeric characters 8 to Values: 1 if a name is not specified, UNKNOWN is used Default: Fixed Value: .ZPL x = extension Example: This example shows the sequence and results. r: Using a terminal emulator, you do wnload this code to the printe ^XA ^DFB:FILE1.ZPL ^FO100,100^A0,100 ^FDTEST^FS ^XZ Then you send this co de to the printer: ^XA ^HFB:FILE1.ZPL ^XZ The terminal emulator returns this code: ^XA^DFFILE1, ^FO100,100^A0,100^FDTEST^FS ^XZ Programming Guide P1099958-001 1/31/18

197 ZPL Commands 197 ^HG ^HG – Host Graphic age can be stored for The ^HG command is used to upload gr aphics to the host. The graphic im future use, or it can be down loaded to any Zebra printer. Format: ^HGd:o.x Details Parameters device d = E: , and A: B: , , R: Values: location of Default: search priority object o = object name 1 Values: 8 alphanumeric characters to if a name is not specified, UNKNOWN is used Default: x = Fixed Value: .GRF extension ^HY Comments . onpage215 For more information on uploading graphics, see 1/31/18 Programming Guide P1099958-001

198 ZPL Commands 198 ^HH ^HH – Configuration Label Return command echoes printer configu ^HH terminal emulator. The ration back to the host, using a Format: ^HH Example: This is an example of what is returned to the host when ^XA^HH^XZ is sent to the printer: 1/31/18 Programming Guide P1099958-001

199 ZPL Commands 199 ~HI ~HI – Host Identification command is designed to be sent f ter to retrieve information. The ~HI rom the host to the Zebra prin Upon receipt, the printer responds with information on the mode l, software version, dots-per- millimeter setting, memory size , and any detec ted options. Format: ~HI When the printer receives th is command, it returns: XXXXXX,V1.0.0,dpm,000KB,X XXXXXX = model of Zebra printer = version of software V1.0.0 dpm = dots/mm 6, 8, 12, or 24 dots/mm printheads 000KB = memory 512KB = 1/2 MB 1024KB = 1 MB 2048KB = 2 MB 4096KB = 4 MB 8 MB 8192KB = x = recognizable options only options specific to printer are shown (cutter, options, et cetera.) Programming Guide 1/31/18 P1099958-001

200 ZPL Commands 200 ~HM ~HM – Host RAM Status Sending ~HM to the printer immediately retu rns a memory sta tus message to the host. Use this command whenever you need to know the printer’s RAM status. When ation on the t ~HM is sent to the Zebra printer, a line of data containing inform otal amount, ount of memory is sent back to the host. maximum amount, and available am Format: ~HM Example: This example shows when the ~HM is sent to the printer, a lin e of data containing three to the host. Each set of numbers is ident numbers are sent back ified and explained in the table that follows: 2 1 1024,0780,0780 3 The total amount of RAM (in kiloby . In this tes) installed in the printer 1 example, the pri nter has 1024K RAM installed. The maximum amount of RAM (in k ilobytes) available to the user. In 2 a maximum of 780K RAM available. this example, the printer has r. In The amount of RAM (in kilobytes) currently available to the use 3 this example, there is 780K of R AM in the printer currently ava ilable to the user. Comments Memory taken up by bitmaps is in le memory cluded in the currently availab ). ^MCN value (due to only the amount of s, or saving a bitmap affects Downloading a graphic image, font RAM. The total t of RAM does not change after t amount of RAM and maximum amoun he printer is turned on. 1/31/18 Programming Guide P1099958-001

201 ZPL Commands 201 ~HQ Host Query ~HQ – ~HQ command group causes the printe r to send information back to th e host. The Supported Devices • Xi4, RXi4 • ZM400/ZM600 with v53.17.1Z or later, RZ400/RZ600 • S4M with v53. 17.1Z or later • G-Series with v56.16.5 or later or G-Series with v6 1.16.5 or later Format: ~HQquery-type Parameter Details For detailed examples of these parameters, see query-type . ~HQ Examples on page 202 Values: Table14 onpage201 requests the printer’s status - see ES = Table 15 and onpage202 HA = hardware address of the int ernal wired print server requests a summary of the prin JT = ter’s printhead test results MA = maintenance alert settings MI = maintenance information OD = odometer printhead life history PH = printer’s Plug and Play string PP = SN = printer’s serial number UI = C release version USB product ID and BD must be an accepted valu Default: e or the command is ignored command starts with STX, a CR LF is inserted between The response to the ~HQ Comments onse ends with ETX. each line, and the resp Table 14 • Error Flags (~HQES) Group 1 (X = Value can be F]) any hexadecimal number [0-9, A- Group 2 Flag Error Flags Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibbles16-9 6 3 5 8 4 2 7 1 No Error 00000000000000000 Error Present 100000000XXXXXXXX Printhead Thermistor Open100000000XXXXX2XX Invalid Firmware Config.100000000XXXXX1XX Printhead Detection Error100000000XXXXXX8X Bad Printhead Element 100000000XXXXXX4X Motor Over Temperature100000000XXXXXX2X Printhead Over Temperature100000000XXXXXX1X g. This error flag is supported only on KR403 printers. Programming Guide 1/31/18 P1099958-001

202 ZPL Commands 202 ~HQ Table 14 • Error Flags (~HQES) F]) any hexadecimal number [0-9, A- Group 1 (X = Value can be Group 2 Flag Error Flags Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibbles16-9 1 6 3 7 4 8 2 5 100000000XXXXXXX8 Cutter Fault Head Open 100000000XXXXXXX4 Ribbon Out 100000000XXXXXXX2 100000000XXXXXXX1 Media Out g g g XXX 1 00000000XXXX8 Clear Paper Path Failed g g g XXX 1 00000000XXXX4 Paper Feed Error g g g XXX 1 00000000XXXX2 Presenter Not Running g g g 00000000XXXX1 XXX 1 Paper Jam during Retract g g g 1 XXXX 00000000 X X X 8 Black Mark not Found g g g 1 XXXX 00000000 X X X 4 Black Mark Calabrate Error g g g 1 00000000 X X X 2 XXXX Retract Function timed out g g g XXXX 1 00000000 X X X 1 Paused This error flag is supported only on KR403 printers. g. Table 15 • Warning Flags (~HQES) Group 2 Group 1 (X = Value can be any hexadecimal number [0-9, A- F]) Flag Error Flags Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibbles16-9 5 7 4 8 3 6 2 1 No Warning 00000000000000000 Warning Present 100000000XXXXXXXX h h h Paper-near-end Sensor 1 00000000XXXXXXX8 Replace Printhead 100000000XXXXXXX4 Clean Printhead 100000000XXXXXXX2 Need to Calibrate Media 100000000XXXXXXX1 h h 1 00000000XXXXXX1 X Sensor 1 (Paper before head) h h h h Sensor 2 (Black mark) 1 00000000XXXXXX2 X h h h 00000000XXXXXX4 1 X Sensor 3 (Paper after head) h h h 1 00000000XXXXXX8 X Sensor 4 (loop ready) h h h 1 XX 00000000XXXXX1 Sensor 5 (presenter) h h h 1 00000000XXXXX2 XX Sensor 6 (retract ready) h h h 1 00000000XXXXX4 XX Sensor 7 (in retract) h h h Sensor 8 (at bin) XX 00000000XXXXX8 1 This error flag is supported only on KR403 printers. h. ~HQ Examples This section provides detail examples of all the available para meters. P1099958-001 Programming Guide 1/31/18

203 ZPL Commands 203 ~HQ This example shows how to request the printer’s status. Example 1: a. To request the printer’s status, type ~HQES The printer responds wit h data similar to this: PRINTER STATUS ERRORS: 1 00000000 00000005 WARNINGS: 1 00000000 00000002 s: tus resolves to these condition In this example, the Printer Sta is open (value = 4). The cover/printhead • to the printer • Media is out or not loaded in (value = 1). The printhead needs to • be cleaned (value = 2). dded together (4 + 1). the error status values are a • Error nibble 1 is equal to 5 when printer status This illustration identifies the definitions: 3 5 1 PRINTER STATUS ERRORS: 1 00000000 00000005 WARNINGS: 1 00000000 00000002 4 2 6 Flag 1 Nibble 16-9 2 Nibble 8-4 3 Nibble 3 4 Nibble 2 5 Nibble 1 6 Example 2: This example shows how the printer responds when the printer re ceives the command: ~HQES ~HQES To see how the printer responds, type a. The printer responds with data similar to this: PRINTER STATUS ERRORS: 1 00000000 0000000B WARNINGS: 0 00000000 00000000 onditions: tus resolves to the following c In this example, the printer sta The cutter has a fault (value = 8 ). • • Ribbon is out or not loaded in to the printer (value = 2 ). • ). Media is out or not loaded 1 into the printer (value = when the error status values are added together B Error byte 1 is equal to • 8 + 2 + 1 = hexadecimal B ). ( P1099958-001 Programming Guide 1/31/18

204 ZPL Commands 204 ~HQ Example 3: This is an example of how to retrieve the hardware address of t he internal wired print server. ~HQHA type a. To get the hardware address of t he internal wired print server, The printer responds with data similar to this: MAC ADDRESS 00:07:4d:2c:e0:7a printhead test Example 4: This is an example of how to request a summary of the printer’s results. et the element interval, and s The ^JT command is used to initiate pri nthead testing, s et the testing range to be tested. For more details see, . on page 248 ^JT a. To request a summary of the printer’s printhead test, type ~HQJT The printer responds with data similar to this: PRINT HEAD TEST RESULTS 0,A,0000,0000,0000 When the printer has printed enough labels to trigger a printhe ad test, the initial data changes. To request a summary of the printer’s printhead test, type b. ~HQJT The printer responds with data similar to this: PRINT HEAD TEST RESULTS: 0,A,0015,0367,0000 ns: This illustration identifies the printhead test field definitio 0,A,0000,0000,0000 1 5 2 3 4 Element failure 1 Manual (M) or automatic (A) range 2 First test element 3 Last test element 4 Failure count 5 Programming Guide 1/31/18 P1099958-001

205 ZPL Commands 205 ~HQ Example 5: This is an example of how to use the maintenance alert query fo r the ~HQ command. a. To get the current settings, type ~HQMA The printer responds wit h data similar to this: ~HQMA MAINTENANCE ALERT SETTINGS HEAD REPLACEMENT INTERVAL: 1 km HEAD REPLACEMENT FREQUENCY: 0 M HEAD CLEANING INTERVAL: 0 M HEAD CLEANING FREQUENCY: 0 M PRINT REPLACEMENT ALERT: NO PRINT CLEANING ALERT: NO UNITS: C ~HQ ery for the Example 6: This is an example of how to use the maintenance information qu ^MI command. command. Note that the message is controlled by the ~HQMI a. To get the current settings, type The printer responds wit h data similar to this: MAINTENANCE ALERT MESSAGES CLEAN: PLEASE CLEAN PRINT HEAD REPLACE: PLEASE REPLACE PRINT HEAD Example 7: This is an example of how to use the odometer query for the ~HQ command. Note ^MA command. Also, if the "Early Warning that the units of measur e are controlled by the Maintenance State" is turned "ON" the printer response would al so list LAST CLEANED and CURRENT PRINTHEAD LIFE counters. ~HQOD a. To get the current settings, type The printer responds with data similar to this: PRINT METERS TOTAL NONRESETTABLE: 8560 " USER RESETTABLE CNTR1: 9 " USER RESETTABLE CNTR2: 8560 " The units of measure are set to inches. To change the units of measure to centimeters, type: b. ^XA^MA,,,,C ^XZ The units of measure are set to centimeters. c. To check the settings, type ~HQOD h data similar to this: The printer responds wit PRINT METERS TOTAL NONRESETTABLE: 21744 cm USER RESETTABLE CNTR1: 24 cm USER RESETTABLE CNTR2: 21744 cm Programming Guide 1/31/18 P1099958-001

206 ZPL Commands 206 ~HQ command. Example 8: This is an example of how to use the printhead life query for t he ~HQ ^MA command. Note that the units of measure are controlled by the a. To get the current settings, type ~HQPH h data similar to this: The printer responds wit LAST CLEANED: 257 " HEAD LIFE HISTORY # DISTANCE 1: 257 " 2: 1489 " 3: 7070 " The current life of the print head. 1 Line items 2 through 10 (the exa mple only shows 2 through 3) 2 tracks the measurement for each time the print head is changed. Example 9: This is an example of how to re quest the printer’s Plug and Pla y string. ~HQPP a. To request the printer’s Plug and Play string, type h data similar to this: The printer responds wit PLUG AND PLAY MESSAGES MFG: Zebra Technologies CMD: ZPL MDL: GX420t This is an example of how to retrieve the printer’s serial numb Example 10: er. ~HQSN To get the printer’s serial number, type a. h data similar to this: The printer responds wit SERIAL NUMBER 41A06440023 1 rieve the printer’s USB product Example 11: This is an example of how to ret ID and BCD 2 release version. ID and BCD release version, ty ~HQUI a. pe To get the printer’s USB product The printer responds wit h data similar to this: USB INFORMATION PID: 0085 RELEASE VERSION: 15.01 1/31/18 Programming Guide P1099958-001

207 ZPL Commands 207 ~HS Host Status Return ~HS – ~HS to the printer, the printer sends three data strings back. Eac h string starts When the host sends STX > control code and is with an < ETX >< CR >< LF > control code sequence. To terminated by an < avoid confusion, the host prints each stri ng on a separate line . st if the printer Note • When a ~HS command is sent the printer will not send a response to the ho is in one of these conditions: • MEDIA OUT • RIBBON OUT • HEAD OPEN • REWINDER FULL HEAD OVER-TEMPERATURE • aaa,b,c,dddd,eee,f,g,h,iii,j,k,l String 1 a = communication (interface) settings aaa paper out) = = paper out flag (1 b = pause flag (1 = pause active) c = label length (value in number of dots) dddd = number of formats in receive buffer eee receive buffer full) = buffer full flag (1 = f = communications diagnostic mode flag (1 = diagnostic mode active) g = partial format in progress) = partial format flag (1 h = unused (always 000) iii flag (1 configuration data lost) = corrupt RAM = j under temperature) = temperature range (1 = k = = temperature range (1 over temperature) l its, number of stop bits, parity i. This string specifies the printer’s baud rate, number of data b This value is a three-digit d setting, and type of handshaking. ecimal representation of an eight- e decimal number to a binary his parameter, first convert th bit binary number. To evaluate t number. The nine-digit binary number is read according to this table: 1/31/18 Programming Guide P1099958-001

208 ZPL Commands 208 ~HS 876543210 aaa=aaaaaaaaa 78210 = Handshake a a a a a = Baud 0 = Xon/Xoff 1 = DTR 0000=110 0 001 = 300 6 a = Parity Odd/Even 0 010 = 600 0 = Odd 0 011 = 1200 1 = Even 0 100 = 2400 5 0 101 = 4800 a = Disable/Enable 0 110 = 9600 0 = Disable 0 111 = 19200 1 = Enable 1 000 = 28800 rinter models) p (available only on certain 4 a p =Sto Bits 1 001 = 38400 rinter models) p (available only on certain 0 = 2 Bits 1 010 = 57600 p (available only on certain rinter models) 1=1Bit 1 011 = 14400 3 a = Data Bits 0 = 7 Bits 1 = 8 Bits String 2 mmm,n,o,p,q,r,s,t,uuuuuuuu,v,www j = function settings mmm n = unused head in up position) = flag (1 = o head up ribbon out flag (1 = ribbon out) p = = Thermal Transfer Mode selected) = thermal transfer mode flag (1 q r = Print Mode Rewind 0 = 1 = Peel-Off Tear-Off 2 = Cutter 3 = Values 4 to 5 are only 4 = Applicator supported in firmware Delayed cut 5 = version V60.14.x, 6 = Linerless Peel . 15.x, or V50.14.x, V53 Linerless Rewind 7 = later. 8 = Partial Cutter 9 = RFID K = Kiosk S = Stream = print width mode s label waiting in Peel-off Mode) = flag (1 label waiting = t = labels remaining in batch uuuuuuuu v = format while printing flag (always 1) ges stored in memory www = number of graphic ima j. This string specifies the printer’s media type, sensor profile status, and communication diagnostics status. As in String 1, this is a three-digit decimal represent ation of an eight-bit binary number. First, convert the decimal number to a binary number. ZM600, and RZ400/RZ600 printers. These values are only supported on the ZE500, Xi4, RXi4, ZM400/ k. The eight-digit binary number is read according to this table: 1/31/18 Programming Guide P1099958-001

209 ZPL Commands 209 ~HS mmm=m7m6m5m4m3m2m1m0 p m4 m3 m2 m1 = Unused = Media Ty e m7 0=Off 0 = Die-Cut 1=On 1 = Continuous = Print Mode = Sensor Profile m0 m6 0 = Direct Thermal 0=Off 1 = Thermal Transfer = Communications Diagnostics m5 0=Off 1=On xxxx,y String 3 xxxx = password y = 0 (static RAM not installed) 1 (static RAM installed) P1099958-001 1/31/18 Programming Guide

210 ZPL Commands 210 ^HT ^HT – Host Linked Fonts List on V60.14.x, V50.14.x, or This command is available only for printers with firmware versi later. list of font links over a commun ication port. command receives the complete The ^HT ANMDJ.TTF is the base font, is the first linked font, and Example: The SWISS.721.TTF MSGOTHIC.TTF is the second linked font: ZPL II CODE DATA RETURNED LIST OF FONT LINKS ^XA E:SWISS721.TTF ^HT E:ANMDJ.TTF ^XZ E:MSGOTHIC.TTF the font links: to establish This is the code that was used ^XA ^FLE:ANMDJ.TTF,E:SWISS721.TTF,1^FS ^FLE:MSGOTHIC.TTF,E:SWISS721.TTF,1^FS ^XZ Programming Guide P1099958-001 1/31/18

211 ZPL Commands 211 ~HU ~HU – Return ZebraNet Alert Configuration This command returns the table o f configured ZebraNet Alert set tings to the host. Format: ~HU Example: If the t to go to e-mail command is sent to the printer with existing Alert messages se ~HU information below. See and SNMP traps, the data return ed would look something like the ^SX for complete information on the individual parameter settings. on page 324 B,C,Y,Y,[email protected],0 J,F,Y,Y,,0 C,F,Y,Y,,0 D,F,Y,Y,,0 E,F,Y,N,,0 F,F,Y,N,,0 H,C,Y,N,[email protected],0 N,C,Y,Y,[email protected],0 O,C,Y,Y,[email protected],0 P,C,Y,Y,[email protected],0 (alerts) set, the printer will not respond to the ~HU If there are no Important • ^SX command. ndition B (ribbon out) is route d to destination C (e-mail address). The first line indicates that co The next two characters, Y and Y, indicate that the condition set and condition clear options have yes . been set to the destination that the Alert e-mail sh ould be sent to; in this example it is The following entry is [email protected] . The last figure seen in the first line is 0 , which is the port number. Alert condition as defined in the ttings for a different Each line shows the se ^SX command. P1099958-001 Programming Guide 1/31/18

212 ZPL Commands 212 ^HV Host Verification ^HV – Use this command to return data f rom specified fields, along wi I header, to the th an optional ASCI host computer. You can use this command with any field that has been assigned a number with the ^FN ^RT command or with the commands. and ^RF Format: ^HV#,n,h,t,a Parameters Details The value assigned to this para meter should be the same as the # = field number one used in another command. specified with 9999 to Values: 0 another command 0 Default: n = number of bytes to Values: 1 256 to be returned Default: 64 he string. This field is Field Delimiter characters terminate t Hex = header to be h ) capable. ^FH ( returned with 0 to 3072 bytes Values: the data Default: no header This field is Field Hex ( ^FH ) capable. t = termination Values: 0 to 3072 characters ^PQ is greater than 1 or if a v oid label occurs, send one When = command applies a response for a label format or one for every label printed. to Values: F =Format L =Label F Default: Example: The following code: ^XA . . . ^FH_^HV0,8,EPC[,]_0D_0A,L^FS ^PQ2 ^XZ Would return data similar to this: EPC[12345678] EPC[55554444] 1/31/18 P1099958-001 Programming Guide

213 ZPL Commands 213 ^HW ^HW – Host Directory List ic memory area (storage device) back ^HW is used to transmit a directory listing of objects in a specif ng of object names to the host. to the host device. This command returns a formatted ASCII stri Each object is listed on a line and has a fixed length. The tot al length of a line is also fixed. Each line listing an object begins with the asterisk (*) followed by a bl ank space. There are eight spaces for the s for the exte object name, followed by a peri od and three space nsion. The extension is followed by ces, and three spaces for option flags two blank spaces, six spaces for the object size, two blank spa (reserved for future use). T he format loo ks like this: DIR R: *Name.ext(2sp.)(6 obj. sz.)(2sp.)(3 option flags) *Name.ext(2sp.)(6 obj. sz.)(2sp.)(3 option flags) -xxxxxxx bytes free = start of text = carriage return/line feed = end on text The command might be used in a stand-alone file to be issued to the printer at any time. The printer soon as possible , based on oth er tasks it might be performing when returns the directory listing as the command is received. commands, is processed in the order that it is r eceived by the This command, like all ^ (caret) printer. Format: ^HWd:o.x Parameters Details d = location to Z: and A: , B: Values: R: , E: , retrieve object R: Default: listing object name o = 1 to 8 alphanumeric characters Values: asterisk ( * Default: ? ) can also be used. ). A question mark ( x = extension Values: any extension conforming to Zebra conventions ) can also be used. ? ). A question mark ( Default: asterisk ( * f = format Values: c = column format default format d = d Default: parameter is only The f supported in firmware version V60.16.0Z and V53.16.0Z or later. Example: R: command to retrieve from information Listed is an e xample of the ^HW ^XA ^HWR:*.* ^XZ Programming Guide P1099958-001 1/31/18

214 ZPL Commands 214 ^HW -DIR R:*.* ting: ation as the Host Directory Lis Example: The printer returned this inform *R:ARIALN1.FNT 49140 *R:ARIALN2.FNT 49140 *R:ARIALN3.FNT 49140 *R:ARIALN4.FNT 49140 *R:ARIALN.FNT 49140 *R:ZEBRA.GRF 8420 -794292 bytes free R: RAM Programming Guide P1099958-001 1/31/18

215 ZPL Commands 215 ^HY ^HY – Upload Graphics ^HY command is an extension of the ^HG command. ^HY is used to upload graphic objects from The the printer in any supported format. Format: ^HYd:o.x Parameters Details location of d = E: , R: B: Values: A: , and , object search priority Default: object name o = Values: 1 alphanumeric characters 8 to t be specified Default: an object name mus x = extension Values: G = .GRF (raw bitmap format) P = .PNG (compressed bitmap format) format of stored image Default: Comments The image is uploaded in the form of a ~DY command. The data field of the ~DY command is always encoded in the ZB64 format. returned 1/31/18 Programming Guide P1099958-001

216 ZPL Commands 216 ^HZ Display Description Information ^HZ – command is used for returning printer description information ^HZ The in XML format. The printer ndividual object data n format parameters, object directories, i returns information o , and print status information. Format: ^HZb Parameters Details b = display Values: a = display all information description to f = display printer format setting information return l = display object directory listing information o = display individual object data information r = display printer st atus information Default: if the value is missing or in valid, the command is ignored Format: ^HZO,d:o.x,l Details Parameters location of d = Values: R: , E: A: B: , and , stored object Default: R: o = object name . l s based on parameter Values: 1 to 8 , or 1 to 16 alphanumeric character Default: if a name is not specified, is used. UNKNOWN Supported extensions for o ) include: objects (parameter extension x = .FNT — font .GRF — graphic .PNG — compressed graphic .ZPL — stored format .DAT — encoding table .ZOB — downloadable object .STO — Alert data file l = long filename Values: Yes Y = support If Y , the object data stores the filename as 16 characters. The dat a is only compatible with firmware version V60.13.0.5, or later. N = No , the object data stores is N the filename as 8 characters. The data If forward and backward compatible with all versions of firmware. Default: N Example: This example shows the object data information for the object SAMPLE.GRF located on . R: ^XA ^HZO,R:SAMPLE.GRF ^XZ Programming Guide P1099958-001 1/31/18

217 ZPL Commands 217 ^ID Object Delete ^ID – ^ID command deletes objects, gra phics, fonts, and stored formats f rom storage areas. Objects The groups. This command can be us can be deleted selectively or in ed within a printing format to delete objects before saving new ones, or in a stand-alone format to d elete objects. * ) as a wild card. This allows you to The image name and extension support the use of the asterisk ( easily delete a selected groups of objects. Format: ^IDd:o.x Parameters Details d = location of A: Values: R: , E: , B: , and stored object Default: R: o = object name 8 1 to character name Values: any Default: if a name is not specified, UNKNOWN is used x = extension to Zebra conventions Values: any extension conforming Default: .GRF Example 1: To delete stored formats from DRAM: ^XA ^IDR:*.ZPL^FS ^XZ To delete formats and images named SAMPLE from DRAM, regardless of the Example 2: extension: ^XA ^IDR:SAMPLE.*^FS ^XZ Example 3: To delete the image SAMPLE1.GRF prior to storing SAMPLE2.GRF : ^XA ^FO25,25^AD,18,10 ^FDDelete^FS ^FO25,45^AD,18,10 ^FDthen Save^FS ^IDR:SAMPLE1.GRF^FS ^ISR:SAMPLE2.GRF^FS^XZ In this the * is a wild card, i Example 4: extension are ndicating that all objects with the .GRF deleted: ^XA ^IDR:*.GRF^FS ^XZ P1099958-001 Programming Guide 1/31/18

218 ZPL Commands 218 ^ID When an object is deleted from , the object can no longer be used and Comments R: R: memory. With the other memory memory is available for stor age. This applies only to A: , B: , E: ) the deleted object is no longer available. The memory space r ecovers when types ( an automatic defragmentation or initialization occurs. pressed version of the object i command also frees up the uncom The n DRAM. ^ID If the name is specified as *.ZOB , all downloaded bar code fonts (o r other objects) are deleted. R: device, the A: ^ID , E: , B: , and If the named downloadable ob ject cannot be found in the command is ignored. Programming Guide P1099958-001 1/31/18

219 ZPL Commands 219 ^IL ^IL – Image Load command is used at the beginning of a label format to load a s tored image of a format and The ^IL merge it with additional t ^FO0,0 . data. The image is always positioned a onpage221 See . Important • ^IS data greatly on with variable ant informati he image of const Using this technique to overlay t increases the throughput of the label format. Format: ^ILd:o.x Parameters Details d = location of Values: R: , E: A: B: , and , stored object Default: R: o = object name alphanumeric characters 8 to Values: 1 if a name is not specified, UNKNOWN is used Default: .PNG x = extension Fixed Value: .GRF , This example recalls the stored image Example: SAMPLE2.GRF from DRAM and overlays it with ^IS command. For the stored label format, the additional data. The gr aphic was stored using the command. on page 221 see the ^IS ZPL II CODE GENERATED LABEL ^XA ^ILR:SAMPLE2.GRF^FS ^CFD,36,20 ^FO15,210 ^FD900123^FS ^FO218,210 ^FDLINE 12^FS ^FO15,360^AD ^FDZEBRA THERMAL^FS ^FO15,400^AD ^FDTRANSFER PRINTER^FS ^FO15,540 ^FD54321^FS ^FO220,530 ^FDZ58643^FS ^FO15,670^A0,27,18 ^FDTesting Stored Graphic^FS ^FO15,700^A0,27,18 ^FDLabel Formats!!^FS ^XZ Programming Guide 1/31/18 P1099958-001

220 ZPL Commands 220 ^IM ^IM – Image Move nto the bitmap. The The ^IM command performs a direct move of an image from storage area i command is identical to the ^XG command (Recall Graphic), except there are no si zing parameter s. Format: ^IMd:o.x Details Parameters d = location of , and Values: R: A: B: , E: , stored object Default: search priority object name o = to 1 8 Values: alphanumeric characters Default: if a name is not specified, UNKNOWN is used x = extension Fixed Value: .GRF , .PNG Example: This example moves the image SAMPLE.GRF from DRAM and prints it in several locations in its original size. ^XA ^FO100,100^IMR:SAMPLE.GRF^FS ^FO100,200^IMR:SAMPLE.GRF^FS ^FO100,300^IMR:SAMPLE.GRF^FS ^FO100,400^IMR:SAMPLE.GRF^FS ^FO100,500^IMR:SAMPLE.GRF^FS ^XZ Comments By using the ^FO command, the graphic image ca n be positioned anywhere on the label. : The difference between and therefore might require does not have magnification, ^IM ^IM ^XG and less formatting time. However, t o take advantage of this, the i mage must be at a 8 -, 16-, or 32-bit boundary. P1099958-001 Programming Guide 1/31/18

221 ZPL Commands 221 ^IS ^IS – Image Save command is used within a label f graphic image, rather than The ormat to save that format as a ^IS as a ZPL II script. It is typica lly used toward the end of a sc ript. The saved image can later be riable data to form a complete label. recalled with virtually no formatting time and overlaid with va he image of const Using this technique to overlay t on with the vari able data greatly ant informati increases the throughput of the label format. \ . See ^IL onpage219 Important • Format: ^ISd:o.x,p Parameters Details d = location of B: Values: A: , , and R: , E: stored object Default: R: o = object name Values: alphanumeric characters 1 to 8 if a name is not specified, UNKNOWN is used Default: x = extension Values: or .PNG .GRF Default: .GRF p = print image after Values: N = no storing Y = yes Default: Y Programming Guide P1099958-001 1/31/18

222 ZPL Commands 222 ^IS This is an example of using the ^IS Example: command to save a label format to DRAM. The . name used to stor e the graphic is SAMPLE2.GRF ZPL II CODE GENERATED LABEL ^XA FD,36 C ^LH10,15^FWN^BY3,3,85^ ^GB430,750,4^FS ^FO10,170^GB200,144,2^FS ^FO10,318^GB410,174,2^FS ^FO212,170^GB206,144,2^FS ^FO10,498^GB200,120,2^FSR ^FO212,498^GB209,120,2^FS ^FO4,150^GB422,10,10^FS ^FO135,20^A0,70,60 ^FDZEBRA^FS ^FO80,100^A0,40,30 ^FDTE C HNOLOGIES C ORP^FS FD,18,10^FS C ^ ^FO15,180 LE#^FS ^FDARTI C ^FO218,180 C ^FDLO ATION^FS ^FO15,328 RIPTION^FS C ^FDDES ^FO15,508 ^FDREQ.NO.^FS ^FO220,508 ^FDWORK NUMBER^FS ^FO15,630^AD,36,20 OMMENTS:^FS C ^FD ^ISR:SAMPLE2.GRF,Y ^XZ Programming Guide P1099958-001 1/31/18

223 ZPL Commands 223 ~JA ~JA – Cancel All The ~JA command cancels all format comm ands in the buffer. It also can cels any batches that are printing. rrent label is finished printing. are cleared of data All internal buffers The printer stops after the cu and the DATA LED turn off. etes only the data before the Submitting this command to the printer scans the buffer and del ~JA in ~JA commands. the input buffer — it does not scan the remainde r of the buffer for additional Format: ~JA Programming Guide 1/31/18 P1099958-001

224 ZPL Commands 224 ^JB ^JB – Initialize Flash Memory The ^JB command is used to initialize v arious types of Flash memory av ailable in the Zebra printers. Format: ^JBa Parameters Details device to a = Values: A = Option Flash memory initialize Flash card (PCMCIA) B = E = internal Flash memory a device must be specified Default: Example: This is an example of initializi ng the different types of flash memory: ^JBA – initializes initial Compact Flash memory when installed in the printer. ^JBB – initializes the optional Flash c ard when installed in the print er. ^JBE – initializes the optional Flash memory when installed in the pri nter. Initializing memory can take sev eral minutes. Be sure to allow sufficient time for the Note • plete before pow initialization to com er cycling the printer. Programming Guide P1099958-001 1/31/18

225 ZPL Commands 225 ~JB ~JB – Reset Optional Memory The ~JB command is used for these conditions: •The ~JB command must be sent to the prin ter if the battery supplying p ower to the battery a condition on battery dead powered memory card fails and is replaced. A bad battery shows the Printer Conf iguration Label. B: memory card. The the ~JB command can also be used to intentionally clear (reinitialize) •The card must not be write protected. Format: ~JB printer, the is command is not sent to the Comments If the battery is replaced and th memory card cannot function. Programming Guide 1/31/18 P1099958-001

226 ZPL Commands 226 ~JC ~JC – Set Media Sensor Calibration command is used to force a labe ~JC the media and ribbon The l length measurement and adjust sensor values. Format: ~JC Comments In Continuous Mode, only the media and ribbon sensors are calib rated. This command is ignored on the HC100™ printer. 1/31/18 Programming Guide P1099958-001

227 ZPL Commands 227 ~JD ~JD – Enable Communications Diagnostics ~JD ntout (using current label command initiates Diagnostic Mode, which produces an ASCII pri The length and full width of printer) of all characters received by the printer. This p rintout includes the ASCII characters, the hexadecimal value, and any communication errors. Format: ~JD P1099958-001 Programming Guide 1/31/18

228 ZPL Commands 228 ~JE Disable Diagnostics ~JE – The ~JE command cancels Diagnostic Mode and returns the printer to nor mal label printing. Format: ~JE 1/31/18 Programming Guide P1099958-001

229 ZPL Commands 229 ~JF Set Battery Condition ~JF – oltage levels sensed by the PA / PT400 ™ printers. When There are two low battery v battery voltage goes below the first level, the green LED begins flashing as a warning but printing continues. When this warning occurs, it is reco mmended to recharge the battery. green and orange As printing continues, a second lo w voltage level is reached. A t this point, both LEDs flash as a warning, and pr inting automatically pauses. ~JFY ) and the battery voltage level falls below the second low When pause on low voltage is active ( voltage level, printing pauses and an e rror condition is displayed as an indication that the printer FEED , printing continues on a label-by- should be plugged into the bat tery charger. By pressing label basis, but there is a high risk of losing label format in formation due to the continued decrease of battery voltage. When pause on low voltage is not active ( ~JFN ), and the battery voltage level falls below the second he battery voltage continues level, printing continues and the orange LED remains off. If t low voltage to decrease, label information could be lost and cause the prin ter to stop operat ing. This option should be selected only when the printer is connected to the Ca r Battery Adapter. From time to time tery voltage is below the first the printer might sense that bat low voltage level, but due to the continuous recharging o f the car battery, fu rther loss of batte ry voltage is not a c oncern and printing continues. to FEED If this option is not selected when using the Car Battery Adapt er, you might need to press e Mode and print each label. take the printer out of Paus Format: ~JFp Parameters Details p = pause on low Values: Y (pause on low voltage) or N (do not pause) N powered by the Car Battery Ad apter. is suggested when the printer is voltage Default: Y Programming Guide 1/31/18 P1099958-001

230 ZPL Commands 230 ~JG ~JG – Graphing Sensor Calibration lues. nsor profile) of the sensor va The ~JG command prints a graph (media se Format: ~JG Sending the Example: command to a printer configured for thermal transfer produces ~JG a series of labels resembling this image: GENERATED LABELS ration, but does pri s not perform a calib The HC100™ printer doe Comments nt a sensor profile label. Programming Guide P1099958-001 1/31/18

231 ZPL Commands 231 ^JH ^JH – Early Warning Settings The ^JH command configures the early war ning messages that appear on t he LCD. Supported Devices • ZE500 series Xi III, Xi III • , Xi4, RXi4 Plus • 3, PAX 4 PAX • ZM400, ZM600, RZ400, RZ600 •S4M • G-Series (“f” parameter only) Format: ^JHa,b,c,d,e,f,g,h,i,j Parameter Details 4 printers only. PAX 3, and PAX , Xi4, RXi4, Plus III Xi This parameter is for a = early warning media Values: E = enable supplies a = disable D = warning ( Xi4 and RXi4 Default: D printers ) only , 4 printers only. PAX PAX 3, and Plus This parameter is for Xi III b = labels per roll Values: 100 to 9999 Default: 900 3, and Xi 4 printers only. PAX , This parameter is for PAX III Plus media replaced c = Values: Y = yes N = no Default: N 1/31/18 Programming Guide P1099958-001

232 ZPL Commands 232 ^JH Parameter Details III Plus , PAX 3, PAX 4, and ZE500 printers only. This parameter is for Xi d = ribbon length Values: III series printers: Xi Plus N = 0M 0 = 4 = 100M 300M 5 = 350M 1 = 150M 6 = 400M 200M 2 = 250M 450M 3 = 7 = PAX series printers: 450M N = 0M 7 = 100M 10 = 600M 0 = 1 = 150M 11 = 650M 200M 12 = 700M 2 = 250M 3 = 750M 13 = 300M 14 = 4 = 800M 5 = 350M 15 = 850M 6 = 400M 16 = 900M ZE500 series printers: 300M N = 0M 4 = 0 = 100M 350M 5 = 150M 400M 1 = 6 = 2 = 200M 7 = 450M 250M 10 = 3 = 600M Default: 1 - for 96 Xi III Plus 7 - for all ot her printers 4 printers only. PAX 3, and This parameter is for Xi III Plus , PAX e = ribbon replaced Values: Y = yes N = no Default: N 4, ZM400, ZM600, RZ400, RZ600, and S4M PAX for Xi4, RXi4, This parameter is f = early warning printers only. maintenance Values: E = enabled D = disabled Default: D Important • On G-Series printers, this parameter must be enabled for ^MA driven system to work. the Programming Guide P1099958-001 1/31/18

233 ZPL Commands 233 ^JH Parameter Details Accepted value exceptions: accepted values for Xi III printer are 100M through g = head cleaning rough 150M; accepted 450M; accepted values for 600 dpi Xi III printers are 100M th interval values for PAX 4 series printers are up to 9 00M by increments of 50M; accepted rough 450M. values for ZM400/ZM600, RZ400/RZ 600, and S4M printers are 0M th Values: 100M 11 = 650M 0 = 1 = 150M 12 = 700M 2 = 200M 13 = 750M 3 = 250M 14 = 800M 300M 850M 15 = 4 = 5 = 16 = 900M 350M 6 = 400M 7 = 450M 8 = 500M 9 = 550M 10= 600M Default: 1 - for 96 Xi III Plus 7 - for all ot her printers head clean h = Values: N = No Y = Yes Default: N i = head life Values: 0 – 0 in or off threshold 100-3500000 in Default: 1000000 j = head replaced Values: N = no Y = yes N Default: ^XA^JUS^XZ . command, send ^JH Comments To permanently save the changes to the Programming Guide 1/31/18 P1099958-001

234 ZPL Commands 234 ^JI ^JI – Start ZBI (Zebra BASIC Interpreter) Identifies features that are available in printers with firmwar e version V60.16.2Z, V53.16.2Z, or later. command. Both commands are sent t works much like the o the printer to initialize t ^JI ~JI he Zebra BASIC Interpreter. In interactive mode, rallel, or can be sent through ^JI one of the communication ports (serial, pa Ethernet) to initialize the prin ter to receive ZBI commands. Th is command can be sent from one of the Zebra software utilities, such as ZTools, or from a termina l emulation program. When the command is received, t ZBI header back to the console, he printer responds by sending a is active. interpreter number. This indicates that the along with the program version Format: ^JId:o.x,b,c,d Details Parameters = location of d A: , and B: Values: , E: , R: program to Default: location must be specified run after initializatio n o = name of Values: any valid program name program to Default: name must be specified run after initializatio n x = extension of .BAE , Fixed Value: .BAS program to .BAE is only supported in firmware version run after V60.16.0Z or later initializatio n = console b Values: = console on Y control = console off N Y Default: = echoing c Values: Y = echo on control = echo off N Default: Y = memory d Values: 20K to 1024K allocation Default: 50K for ZBI * * This parameter is only available on printers with firmware V6 0.12.0.x or earlier. nd label formats. Comments When the printer is turned on, i t can receive ZPL II commands a ^JI However, for the printer to reco gnize ZBI commands and programs , it must be initialized using or . ~JI P1099958-001 1/31/18 Programming Guide

235 ZPL Commands 235 ^JI command is ~JI or Only one ZBI interpret er can be active in t he printer at a time . If a second ^JI received while the interpreter is running, the command is ignor ed. The interpreter is deactivated by enteri ng one of two commands: at the ZBI prompt ZPL ~JQ at an active ZPL port Programming Guide 1/31/18 P1099958-001

236 ZPL Commands 236 ~JI ~JI – Start ZBI (Zebra BASIC Interpreter) e version V60.16.2Z, V53.16.2Z, Identifies features that are available in printers with firmwar or later. ~JI works much like the command. Both commands are sent t o the printer to initialize t he ^JI Zebra BASIC Interpreter. In interactive mode, can be sent through one of the communication ports (serial, pa rallel, or ~JI ter to receive ZBI commands. Th is command can be sent from one of Ethernet) to initialize the prin the Zebra software utilities, such as ZTools, or from a standar d PC program, such as Hyper terminal. he printer responds by sending a ZBI header back to the console, When the command is received, t number. This indicates that the interpreter is active. along with the program version Format: ~JI Comments While receiving commands, the printer echoes the received charac ters back to the source. This can be toggled on an d off with the ZBI ECHO comman d. When the printer is turned on, i t can receive ZPL II commands a nd label formats. However, for the . ~JI ^JI or printer to recognize ZBI comman alized using ds and formats, it must be initi Only one ZBI interpret er can be active in t he printer at a time . If a second command is or ~JI ^JI is running, the command is ignor ed. received while the interpreter The interpreter is deactivated by enteri ng one of these command s: ZPL at the ZBI prompt ~JQ at an active ZPL port Programming Guide P1099958-001 1/31/18

237 ZPL Commands 237 ^JJ Set Auxiliary Port ^JJ – ^JJ command allows you to control an online ve rifier or applicator device. The Format: ^JJa,b,c,d,e,f Details Parameters operational mode a = Values: 0 = off for auxiliary 1 = reprint on error—the printer stops on a label with a verificati on error. port is set to reprint). ^JZ is pressed, the label reprints (if PAUSE When s out far If a bar code is near the upper edge of a label, the label feed enough for the bar code to be ve rified and then backfeeds to al low the next label to be printed and verified. 2 = maximum throughput—the printer stops when a verification error is detected. The printer starts printing the next label while the verifier m is still checking the previous l abel. This mode provides maximu throughput, but does not allow the printer to stop immediately on a label with a verification error. Default: 0 b = application mode Values: 0 = off and low only when the printer i s 1 = End Print signal normally high, moving the label forward. 2 = End Print signal normally low, a nd high only when the printer i s moving the label forward. End Print signal normally high, and low for 20 ms when a label has 3 = been printed and positioned. 4 = End Print signal normally low, a nd high for 20 ms when a label has been printed and positioned. Default: 0 The Set/Get/Do command device.applicator.end_print on page 621 Note • b parameter. controls the same setting as the c = application mode Values: an be Pulse Mode – Start Print signal must be de-asserted before it c p = start signal asserted for the next label. print l = Level Mode – Start Print signal does not need to be de-asserted to print the next label. As long as the Start Print signal is low and a label is formatted, a label prints. Default: 0 application label d = Values: signal (svce_req e = error mode—the printer asserts the Service Required error mode - pin 10) on the application port , enters into Pause Mode, and displays an error message on the LCD. Feed Mode—a blank label prints when the web is not found where f = expected to sync the printer to the media. f Default: Programming Guide 1/31/18 P1099958-001

238 ZPL Commands 238 ^JJ Parameters Details e = reprint mode Values: e = enabled—the last label reprints after the signal is asserted. I f a label is canceled, the label to be reprinted is also canceled. This m ode consumes more memory because the last printed label is not released until it reprints. disabled—printer ignores the Reprint signal. d = Default: d ribbon low mode f = Values: – printer warning issued when ribbon low. e = enabled d = disabled – printer warning not issued when ribbon low. Default: e Programming Guide P1099958-001 1/31/18

239 ZPL Commands 239 ~JL Set Label Length ~JL – The ~JL command is used to set the labe l length. Depending on the size of the label, the printer feeds one or more blank labels. Format: ~JL P1099958-001 Programming Guide 1/31/18

240 ZPL Commands 240 ^JM ^JM – Set Dots per Millimeter The command lowers the de nsity of the print—24 dots/mm becomes 12, 12 dots/mm becomes ^JM 6, 8 dots/mm becomes 4, and 6 dots/mm becomes 3. ^JM also affects the field origin ( ^FO ) placement on the label (see example below). ^JM command doubles the format size of the label. D epending on the When sent to the printer, the printhead, normal dot-per-millim eter capabilities for a Zebra p rinter are 12 dots/m m (304 dots/inch), 8 dots/mm (203 dots/inch) or 6 dots/mm (153 d ots/inch). command in a format. The effects of are ^JM ^FS ntered before the first This command must be e persistent. Format: ^JMn Parameters Details set dots per n = Values: 24 dots/mm, 12 dots/mm , 8 dots/mm or 6 dots/mm A = millimeter B = 12 dots/mm, 6 dots/mm, 4 dots/mm or 3 dots/mm Default: A f alternating the dots per millime This example of the affects o Example: ter: ZPL II CODE GENERATED LABEL ^XA ^JMA^FS ^FO100,100 ^B2N,50,Y,N,N ^FD1234567890^FS ^XZ ^XA ^JMB^FS ^FO100,100 ^B2N,50,Y,N,N ^FD1234567890^FS ^XZ ode becomes out of specificatio Comments If ^JMB is used, the UPS MaxiCode bar c n. 1/31/18 Programming Guide P1099958-001

241 ZPL Commands 241 ~JN Head Test Fatal ~JN – causes the printer to halt The ~JN command turns on the head te st option. When activated, ~JN ure is encountered. when a head test fail Once an error is encountered the printer remains in error mode until the head test is turned off ( ~JO ) or power is cycled. Format: ~JN o receive data. In Comments If the communications buffer is f ull, the printer is not able t ~JO command is not received by the printer. this condition, the Programming Guide 1/31/18 P1099958-001

242 ZPL Commands 242 ~JO ~JO – Head Test Non-Fatal The ~JO command configures the printer to run the head test with error reporting enabled. When ~JO will stop if t yed and printing he head test fails. The user can push is used an error will be displa ~JN (Head Test the PAUSE button on the printer to bypass the error. This comma nd differs from the Fatal) command in that a power cycle is not required in the eve nt of a head test failure. ~JO is the default print head test condition. This setting is chang ed when the printer receives a ~JN (Head Test Fatal) command. Format: ~JO Programming Guide P1099958-001 1/31/18

243 ZPL Commands 243 ~JP ~JP – Pause and Cancel Format ~JP command clears the format currently being processed and places the printer into Pause The Mode. The command clears the next forma t that would print, or the old est format from the buffer. Each subsequent ~JP DATA pty. The command clears the next buffer ed format until the buffer is em indicator turns off when the buf fer is empty and no data is bei ng transmitted. ~JP command is identical to using CANCEL on the printer, but the printer does not have Issuing the Mode first. to be in Pause Format: ~JP Programming Guide 1/31/18 P1099958-001

244 ZPL Commands 244 ~JQ ~JQ – Terminate Zebra BASIC Interpreter e version V60.16.2Z, V53.16.2Z, Identifies features that are available in printers with firmwar or later. The r is active. Sendin command is used when Zebra BASIC Interprete ~JQ g ~JQ to the printer terminates the ZBI session. Format: ~JQ Comments Entering ZPL at the command prompt also terminates a ZBI sessio n. 1/31/18 Programming Guide P1099958-001

245 ZPL Commands 245 ~JR ~JR – Power On Reset r’s internal sof s a power-on self-test tware, perform The ~JR command resets all of the printe rameters and default values. (POST), clears the buffer and DRA M, and resets communication pa on as a manual power-on reset. command performs the same functi ~JR Issuing a Format: ~JR Programming Guide 1/31/18 P1099958-001

246 ZPL Commands 246 ^JS Sensor Select ^JS – Format: ^JSa Note • This command is ignored on Zebra ZM400/ZM600 and RZ400/RZ600 pr inters. This Series printers (wit h the exception of the command is only for us e with the S4M and Z ZM400/ZM600/RZ400/RZ600). Parameters Details a = sensor selection Values: auto select A = R = reflective sensor T = transmissive sensor Default: = A Z series S4M = R Programming Guide P1099958-001 1/31/18

247 ZPL Commands 247 ~JS Change Backfeed Sequence ~JS – command is used to control the backfeed sequence. This command can be used on The ~JS -in cutters. or without built printers with ary applications: These are the prim • to allow programming of the rest point of the cut edge of continuous media. r peel-off when the printer is • provide immediate backfeed afte used in a print/apply application configuration. only until the printer is turned o ~JS command is sent, or the ff, a new This command stays in effect ~JS command is encountered, it overrides the control panel. When a setting is changed on the current control panel setting for the Backfeed Sequence. The most common way of eliminating backfeed is to operate in Re wind Mode. Rewind Mode does the next label is place not backfeed at all. After a labe l prints, the leading edge of d at the print line. ckfeed and does not introduce a n on printable area at the leading This eliminates the need to ba edge or bottom of the label. It also does not allow the label t o be taken from the printer because it is not fed out from und er the printhead. el to be removed and eliminates the Running in another mode with backfeed turned off allows the lab time-reduction of the backfeed sequence. Format: ~JSb Parameters Details b = backfeed order in Values: A = 100 percent backfeed after printing and cutting relation to printing and cutting, and B = 0 percent backfeed after printing 100 percent before printing the next label N = normal — 90 percent backfe ed after label is printed off — turn backfeed off completely O = 90 = to 10 percentage value The value entered must be a mult iple of 10. Values not divisibl e by 10 are ~JS55 is accepted rounded to the nearest acceptable value. For example, as 50 percent backfeed. Default: N When using a specific value, the difference between the value e ntered and 100 Comments mple, a value of 40 means 40 percent is calculated before the next label is printed. For exa percent of the backfeed takes pl ace after the label is cut or r emoved. The remaining 60 percent takes place before the next label is printed. The value for this command is also reflected in the Backfeed pa rameter on the printer configuration label. ~JSN For — the Backfeed parameter is listed as DEFAULT ~JSA — or 100% the Backfeed par ameter is listed as AFTER For — or 0% the Backfeed parameter is listed as BEFORE ~JSB For moved. The — 10% of the backfeed takes place after the label is cut or re ~JS10 For remaining 90% takes place befo re the next label is printed. This command is ignored on the HC100™ printer. P1099958-001 Programming Guide 1/31/18

248 ZPL Commands 248 ^JT ^JT – Head Test Interval The ^JT command allows you to change the printhead test interval from every 100 labels to any ^JT desired interval. With the a label. command, the printer is allowed to run the test after printing When a parameter is def ined, the printer run s the test after pr inting a set amo unt of labels. The printer’s default head test state is off. Parameters for ru nning the printhead test are defined by the user. Format: ^JT####,a,b,c Details Parameters #### = four-digit Values: 0000 to 9999 9999 is entered, it is ignored. If a value greater than number of labels printed between 0000 (off) Default: head tests manually select a = Values: N = no range of Y = yes elements to test Initial Value at Power Up: N b = first element to to 9999 Values: 0 check when 0 Initial Value at Power Up: parameter a is Y last element to c = 0 9999 to Values: check when Initial Value at Power Up: 9999 is Y a parameter command supports testing a range of print elements. The printe r The Comments ^JT automatically selects the test range by tracking which elements have been used since the previous test. specify the first and last ele ments for the head test. This ^JT also turns on Automatic Mode to specific area of the label or t he entire print width. makes it possible to select any If the last element selected is greater than the print width se lected, the test stops at the selected print width. Whenever the head test command is received, a head test is perf ormed on the next label unless the count is set t o 0 (zero). P1099958-001 Programming Guide 1/31/18

249 ZPL Commands 249 ^JU ^JU – Configuration Update command sets the active con figuration for the printer. The ^JU Format: ^JUa Parameters Details a = active Values: F = reload factory settings configuration reload factory ne twork settings N = These values are lost at pow er-off if not saved with ^JUS . R = recall last saved settings save current settings S = These values are used at power-on. Default: a value must be specified Programming Guide 1/31/18 P1099958-001

250 ZPL Commands 250 ^JW ^JW – Set Ribbon Tension ^JW the printer it is sent to. sets the ribbon tension for Format: ^JWt Details Parameters tension t = Values: L = low M = medium H = high a value must be specified Default: series printers. is used only for ^JW Comments PAX 1/31/18 Programming Guide P1099958-001

251 ZPL Commands 251 ~JX tially Input Format Cancel Current Par ~JX – command cancels a format currently being sent to the printer. The ~JX It does not affect any formats e sent. subsequent formats that might b currently being printed, or any Format: ~JX Programming Guide 1/31/18 P1099958-001

252 ZPL Commands 252 ^JZ ^JZ – Reprint After Error The ^JZ command reprints a partially printed label caused by a Ribbon Out , Media Out , or Head Open error condition. The label is rep rinted as soon as the error c ondition is corrected. This command remains a ctive until another inter or the printer is command is sent to the pr ^JZ turned off. Format: ^JZa Parameters Details a = reprint after Values: N = no error yes Y = Initial Value at Power Up: Y changes, only labels printed after ^JZ sets the error mode for the printer. If ^JZ Comments the change are affected. If the parameter is missing or i ncorrect, the command is ignore d. Programming Guide P1099958-001 1/31/18

253 ZPL Commands 253 ~KB ~KB – Kill Battery (Battery Discharge Mode) To maintain performanc e of the rechargeabl e battery in the port able printers, the battery must be fully discharged and recharged regularly. The ~KB command places the print er in battery discharge be drained without actually pr mode. This allows the battery to inting. Format: ~KB shes in groups Comments While the printer is in Discharg e Mode, the green power LED fla of three flashes. Discharge Mode might be terminated by sending a printing format to the printer or by pressing either of the control panel keys. echarged once the is automatically r If the battery charger is plug ged into the printer, the battery discharge process is completed. Programming Guide 1/31/18 P1099958-001

254 ZPL Commands 254 ^KD ^KD – Select Date and Time Format (for Real Time Clock) ^KD command selects the format that the Real-Time Clock’s date and time information presents The on label. This is also displayed on the Printer Idle LCD control panel display, and as on a configurati displayed while setting the date and time. Format: ^KDa Details Parameters value of date and a = Values: 0 = of firmware Version Number normal, displays time format 1 = MM/DD/YY (24-hour clock) 2 = MM/DD/YY (12-hour clock) 3 = DD/MM/YY (24-hour clock) 4 = DD/MM/YY (12-hour clock) 0 Default: If the Real-Time Clock hardware is not present, Display Mode is set to 0 (Version Comments Number). If Display Mode is set to 0 (Version Number) and the Real-Time Clock hardware is present, the date ion label is presented in form at 1. and time format on the configurat If Display Mode is set to 0 (Version Number) and the Real-Time Clock hardware is present, the date anel display is presented in fo and time format on the control p rmat 1. For more details on select date and time format for the Real Ti me Clock, see Real Time Clock . on page 1375 1/31/18 Programming Guide P1099958-001

255 ZPL Commands 255 ^KL ^KL – Define Language The ^KL command selects the language di splayed on the control panel. Format: ^KLa Parameters Details a = language Values: English 1 = 2 = Spanish 3 = French German 4 = 5 = Italian 6 = Norwegian 7 = Portuguese Swedish 8 = Danish 9 = 10 = Spanish2 11 = Dutch Finnish 12 = Japanese 13 = l 14 = Korean l Simplified Chinese 15 = l 16 = Traditional Chinese l 17 = Russian l 18 = Polish l Czech 19 = l 20 = Romanian Default: 1 and RZ400/RZ600 printers. es, Xi4, RXi4, ZM400/ ZM600, d on the ZT200 Series, ZE500 Seri l. These values are only supporte Programming Guide 1/31/18 P1099958-001

256 ZPL Commands 256 ^KN ^KN – Define Printer Name ^KN command. ^KN is designed to The printer’s network name and description can be set using the users to identify. The name th e administrator designates is listed make your Zebra printer easy for on the configuration label and on the Web page g enerated by the printer. Format: ^KNa,b Note • If you issue the command ^KN, (without the a and b parame ters) you are setting the printer name and descripti on to a blank string. ^KN command to be To cause the printer name and printer desc ription settings cont rolled by the ^JUS command. saved, you mu st issue the Parameters Details a = printer name Values: up to 16 alphanumeric characters Default: in a printer with a MAC address If no printer name is specified , the printer name • the MAC address xx is the last three octets of will default to "ZBRxxx," where x converted into ASCII text. entered, For printers wit hout a MAC address, if a value is not the current stored • value is erased. If more than 16 characters are entered, only the first 16 are u sed. b = printer up to 35 alphanumeric characters Values: description Default: red, the current stored value is erased if a value is not ente entered, only the first 35 are u sed. If more than 35 characters are yed on the printer’s Note • The value of this par ameter will be displa web page in parentheses. Example: This is an example of how to chan ge the printer’s network name and description: and after using this command: This shows how a configuration lo oks before using this command ^XA ^KNZebra1,desk_printer ^XZ Before using this command: After using this command: Programming Guide P1099958-001 1/31/18

257 ZPL Commands 257 ^KP ^KP – Define Password The ^KP command is used to define the password that must be entered to access the control panel CD Setup Mode. switches and L Format: ^KPa,b Details Parameters mandatory four- a = any four-digit numeric sequence Values: digit password 1234 Default: b = password level 1, 2, 3, 4 Values: 3 Default: applies only to the S4M printers. The b parameter Note • This example shows how to set a new control panel password: Example 1: ^XA ^KP5678 ^XZ Example 2: This example shows how to set a new control panel password (567 8) at a specific password level (level 2) (applic able to the S4M printer only): ^XA ^KP5678,2 ^XZ Comments If you forget your password, the printer can be returned to a d efault Setup Mode and the default password 1234 is valid again. Caution should be used, however — this also sets the printer configuration values back to their defaul ts. To return the printer to the defa ult factory settings using ZPL , send this: ^XA ^JUF ^XZ To return the printer to the defa control panel keys, see your printer’s ult factory settings using the User Guide for the procedure. P1099958-001 Programming Guide 1/31/18

258 ZPL Commands 258 ^KV ^KV – Kiosk Values command sets several parameters that affect the printers opera tion when The is set to K - ^KV ^MM Kiosk mode Supported Devices •KR403 Format: ^KVa,b,c,d,e Parameters Details a = kiosk cut amount Values: 0 = normal cut 10-60 = partial cut, value = mm of media left uncut Default: 0 This parameter is ignored if it i ent value of the s missing or invalid. The curr parameter remains unchanged. b = kiosk cut margin Values: 2 - 9 = mm of distance Default: 9 = mm of distance This parameter is ignored if it i s missing or invalid. The curr ent value of the parameter remains unchanged. c = kiosk present type Values: 0 = Eject page when new page is printed Retract page when n 1 = ew page is printed 2 = Do nothing when new page is printed Default: 0 This parameter is ignored if it i s missing or invalid. The curr ent value of the parameter remains unchanged. d = kiosk present timeout Values: 0–300 = If label is not taken, retract label when timeout expires. Timeout is in seconds. Zero (0) indicates that there is no timeout. The label will stay presented until removed manually or a new label is printed. Default: 0 This parameter is ignored if it i ent value of the s missing or invalid. The curr parameter remains unchanged. e = presenter loop length Values: 0 = paper is fed straight t hrough the presenter loop length in mm. 3-1023 = Default: 400 400= gives a loop of approximately 400mm This parameter is ignored if it i s missing or invalid. The curr ent value of the parameter remains unchanged. . If t his is greater than loop_len gth_max (see set equal to SGD media.present.loop_length_max ) then it will be loop_length_max. Programming Guide P1099958-001 1/31/18

259 ZPL Commands 259 ^KV Kiosk Printing Examples The following examples dem onstrate the use of the ^KV commands with 80mm ^CN , ^PN and ^CP , ^MMK ). wide continuous media and the printer set to Kiosk Mode ( In this example, the ^KV command is set to the following: Example 1: • Cut - Full Cut • Cut Margin - 9 mm • Present Type - Eject page w hen the next page is printed • Present Timeout - 6 seconds afte r printing, if the document is not taken, it will be retracted • Presenter Loop Length - No loop ^XA ^MMK ^KV0,9,0,6,0 ^FO50,50^A0N,50,50^FDZebra Technologies^FS ^CN1 ^PN0 ^XZ t is done. The ^PN0 The ^CN1 command (Cut Now) is in cluded to ensure that a full cu Note • (Present Now) command is included to ensure that the media is e jected when the user pulls on the leading edge of the media. In th is example, if the user does no t pull on the leading edge of the will be retracted. second document, it This example contains only one change from the Example 1 - the Presenter Loop Example 2: ments will be printed instead of one. Length is now 100mm, and two docu ^XA ^MMK ^KV0,9,2,6,100 ^FO50,50^A0N,50,50^FDZebra Technologies^FS ^CN1^PN0 ^PQ2 ^XZ Example 3: In this example, two documents will be printed, each one will b e ejected from the printer. ^XA ^MMK ^KV0,9,2,6,100 ^FO50,50^A0N,50,50^FDZebra Technologies^FS ^CN1^CP0 ^PQ2 ^XZ Programming Guide 1/31/18 P1099958-001

260 ZPL Commands 260 ^KV Example 4: In this example, two documents, with partial cuts, will be prin ted, and a third document, with a full cut, will be printed. ^XA ^MMK ^KV50,9,0,0,0 ^FO50,50^A0N,50,50^FDPartial Cut^FS ^CN0^PN0 ^PQ2 ^XZ ^XA ^MMK ^KV0,9,2,6,0 ^FO50,50^A0N,50,50^FDFull Cut^FS ^CN1^CP0 ^XZ Programming Guide P1099958-001 1/31/18

261 ZPL Commands 261 ^KV Example 5: In this example, four documents will be printed – three with a partial cut and the fourth with a full cut. Additiona lly, the document length is se t to 406 dots and the Media e third document contains us Media, Variable Length". Th Tracking mode is set to "Continuo de of the 406 dot length – howe ver, because the printer is set fields that are positioned outsi printer will automatically to “Continuous Media, Variable Length" Media Tracking mode, the adjust the document length to compensate. ^XA ^MMK ^LL406 ^KV20,9,0,0,0 ^FO50,50^A0N,50,50^FDPartial Cut^FS ^CN0^PN0 ^PQ2 ^XZ ^XA ^MMK ^MNV ^KV20,9,0,0,0 ^FO50,50^A0N,50,50^FDPartial Cut^FS ^FO50,150^A0N,50,50^FDPrinting Line 1^FS ^FO50,250^A0N,50,50^FDPrinting Line 2^FS ^FO50,350^A0N,50,50^FDPrinting Line 3^FS ^FO50,450^A0N,50,50^FDPrinting Line 4^FS ^FO50,550^A0N,50,50^FDPrinting Line 5^FS ^FO50,650^A0N,50,50^FDPrinting Line 6^FS ^FO50,750^A0N,50,50^FDPrinting Line 7^FS ^FO50,850^A0N,50,50^FDPrinting Line 8^FS ^FO50,950^A0N,50,50^FDPrinting Line 9^FS ^FO50,1050^A0N,50,50^FDPrinting Line 10^FS ^FO50,1150^A0N,50,50^FDPrinting Line 11^FS ^FO50,1250^A0N,50,50^FDPrinting Line 12^FS ^FO50,1350^A0N,50,50^FDPrinting Line 13^FS ^FO50,1450^A0N,50,50^FDPrinting Line 14^FS ^FO50,1550^A0N,50,50^FDPrinting Line 15^FS ^CN0^PN0 ^XZ ^XA ^MMK ^KV0,9,0,0,0 ^FO50,50^A0N,50,50^FDFull Cut^FS ^CN0^PN1^CP0 ^PQ1 ^XZ Programming Guide 1/31/18 P1099958-001

262 ZPL Commands 262 ^LF ^LF – List Font Links on V60.14.x, V50.14.x, or This command is available only for printers with firmware versi later. st of the linked fonts. command prints out a li The ^LF is the first ANMDJ.TTF is the based font. Example: This example shows that SWISS721.TTF ked extension: MSGOTHIC.TTF is the second lin linked font, and GENERATED LABEL ZPL II CODE ^XA ^LF ^XZ This is the code that es tablished the font links: ^XA ^FLE:ANMDJ.TTF,E:SWISS721.TTF,1^FS ^FLE:MSGOTHIC.TTF,E:SWISS721.TTF,1^FS ^XZ Programming Guide P1099958-001 1/31/18

263 ZPL Commands 263 ^LH ^LH – Label Home The ^LH command sets the label home position. The default home position of a l abel is the upper-left corner ( position 0,0 along the x and y axis). This abels. Any area below and to t he right of this point is available for is the axis reference point for l ^LH command changes this reference point. For instance, when worki ng with printing. The preprinted labels, use this comma nd to move the reference point below the preprinted area. ^LH as one of the first This command affects only fields that come after it. It is reco mmended to use commands in the label format. Format: ^LHx,y Details Parameters x = x-axis position 0 32000 Values: to (in dots) Initial Value at Power Up: 0 or last permanently saved value y = y-axis position 0 32000 to Values: (in dots) or last permanently saved value 0 Initial Value at Power Up: x and se when figuring the values for Depending on the printhead used in your printer, use one of the : y 6 dots = 1 mm, 152 dots = 1 inch 1 mm, 203 dots = = 1 inch 8 dots 1 inch 1 mm, 300 dots = = 11.8 dots = 1 mm, 608 dots = 1 inch 24 dots Comments To be compatible with existing printers, this command must come before the command, the setting is ^FS (Field Separator) command. Once you have issued an ^LH first ^LH command to the printer. retained until you turn off the printer or send a new P1099958-001 Programming Guide 1/31/18

264 ZPL Commands 264 ^LL Label Length ^LL – he label. This command is neces sary when using ^LL The command defines the length of t slots, or holes). s, spaces, notches, continuous media (media not divided into separate labels by gap e compatible with existing pri nters, To affect the current label and b ^LL must come before the first ^LL ^FS (Field Separator) command. Once you have issued , the setting is retained until you turn off ^LL command. the printer or send a new Format: ^LLy Details Parameters y-axis position y = Values: to ximum label size. 32000 , not to exceed the ma 1 While the printer acc s parameter, the amo unt of memory epts any value for thi (in dots) ximum length of the label. installed determines the ma the LCD (if applicable), or to the maximu typically set through Default: m label length capability of the printer. Comments o determine the value of y: These formulas can be used t 152.4 (dots/ Label length in inches x inch) = y For 6 dot/mm printheads... Label length in inches x 203.2 (dots/ inch) = y For 8 dot/mm printheads... 304.8 (dots/ Label length in inches x inch) = y For 12 dot/mm printheads... 609.6 (dots/ Label length in inches x inch) = y For 24 dot/mm printheads... . If the entered value for Values for y y depend on the memory size able limits, exceeds the accept the bottom of the label is cut from top to bottom. off. The label also shifts down If multiple commands are issued in the sa ^LL me label format, the last command affects the ^LL . next label unless it is prior to the first ^FS This command is ignored on the HC100™ printer. 1/31/18 Programming Guide P1099958-001

265 ZPL Commands 265 ^LR ^LR – Label Reverse Print The ^LR command reverses the printing of all fields in the label forma t. It allows a field to appear as white over black or black over white. Using the and subsequent fields. ^LR is identical to placing an ^FR command in all current Format: ^LRa Details Parameters reverse print all a = Values: no N = fields yes Y = Initial Value at Power Up: N or last permanently saved value ^GB inting white over black and bla ck over white. The Example: This is an example that shows pr command is used to create the black background. ZPL II CODE GENERATED LABEL ^XA^LRY ^FO100,50 ^GB195,203,195^FS ^FO180,110^CFG ^FDLABEL^FS ^FO130,170 ^FDREVERSE^FS ^XZ The or the printer is ^LR setting remains active unless turned off by Comments ^LRN turned off. . Note • ^GB needs to be used together with ^LR is command are affected. Only fields following th Programming Guide P1099958-001 1/31/18

266 ZPL Commands 266 ^LS ^LS – Label Shift The ^LS command allows for compatibility with Z-130 printer formats th at are set for less than full label width. It is used to shift all field positions to the lef t so the same commands used on a Z-130 or Z-220 Printer can be used on other Zebra printers. ^LS command, use this formula: To determine the value for the Z-130 and Z-220 values for ^LHx + ^FOx (distance from edge of label) = printer value for ^LSa If the print position is less than 0, set ^LS to 0. Format: ^LSa The ability to save the Important • command depends on the version of firmware. ^LS Details Parameters a = shift left value Values: to -9999 9999 (in dots) Initial Value at Power Up: 0 sign. The value is Comments When entering positive values, it is not necessary to use the + assumed to be positive unless preceded by a negative sign (-). existing Zebra printers, this command mus (Field ^FS t come before the first To be compatible with ^LS command, the setting is retained until you turn Separator) command. Once you have issued an off the printer or send a new command to the printer. ^LS 1/31/18 Programming Guide P1099958-001

267 ZPL Commands 267 ^LT Label Top ^LT – ^LT abel format a maximum of command moves the entire l The he label. A negative 120 dot rows up or down from its c urrent position, in relation to the top edge of t value moves the format away from e top of the label; a positive value moves the format towards th the top of the label. hed label without having to change This command can be used to fine- tune the position of the finis any of the existing parameters. Important • For some printer models, it is possible to request a negative v alue large enough to cause the media to backup into the printer and become unthre aded from the platen. This condition can result in a printe r error or unpredictable result s. Format: ^LTx Parameters Details label top (in dot x = Values: HC100: 0 to 120 rows) -240 to 240 XiIIIPlus 600dpi: All other Zebra printers: to 120 -120 a value must be specifie Default: d or the command is ignored might be smaller depending on the printer Comments The Accepted Value range for x platform. ront panel of the printer is The Label Top value shown on the f double the value used in the ZPL format. The command does not change th ^LT e media rest position. P1099958-001 Programming Guide 1/31/18

268 ZPL Commands 268 ^MA ^MA – Set Maintenance Alerts on V60.15.x, V50.15.x, or This command is available only for printers with firmware versi later. r issues printed maintenance al erts. Maintenance alerts The ^MA command controls how the printe are labels that print with a warn ad needs to be cleaned or changed. ing that indicates the printhe Supported Devices • Xi4, RXi4 • ZM400/ZM600, RZ400/RZ600 15.5Z or later • S4M with v53. •G-Series t the functionality of the Xi4 Supplies ^MA settings do not impact or effec Important • Warning system. Format: ^MAtype,print,printlabel_threshold,frequency,units Parameters Details type = type of Values: R = head replacement alert C = head cleaning Default: This parameter must be s pecified as R or C for print , will always units to be saved. However, printlabel_threshold , and frequency be set. print = determines Values: print a label Y = if the alert prints a N = do not print label label N Default: printlabel Values: ement for head is km with a ran head replacement (unit of measur ge R = threshold= of 0 to 150 km) distance where the C = e of 100 to 2000 meters. clean head with a rang first alert 0 = off (when set to 0, the selected alert is disabled; otherwise i t is occurs enabled. Default: R = 50 km (1,968,500 inches) and C = 0 (off). The unit of measurement is in meters. The range is 0 to 2000. T he range for G- frequency = 0 , the alert label is only printed Series printers is 0 or 5 to 2000 meters.When set to distance printer is reset. on power-up or when the before (print on power-up). Default: 0 reissuing the alert Programming Guide P1099958-001 1/31/18

269 ZPL Commands 269 ^MA Details Parameters The units parameter reports units maintenance of the odometer and printhead units = odometer ~WQPH . , ~HQOD,~HQPH,~WQOD commands, as follows: and printhead Values: maintenance C = centimeters (displays as: ) cm commands inches (displays as: I = ) " ) M meters (displays as: M = I Default: This example sets the printed h Example: ter five meters and to ead cleaning message to print af command is issued. repeat every one meter after that until a ~ROC maintenance alert system on the The Early Warning Maintenance setting must be ON. To enable the ^JH lso be the front panel can a command is used; on other Zebra printers G-Series™ pr inter the used. 1. : he need to clean the head, type to print out a label flagging t ^MA To set ^XA^MAC,Y,5,1^XZ When the threshold is met a labe e head needs to be clean. l will print indicating that th For this example, the message o 2. n the label looks like this: examples on For details resetti ng the units of me asure, see the ~HQ page 202 . ified range are ignored. Comments Any values outside the spec o print when th cause a label t The intent of this command is to e defined threshold is reached. 1/31/18 P1099958-001 Programming Guide

270 ZPL Commands 270 ^MC ^MC – Map Clear In normal operation, the bitmap is cleared after the format has been printed. The ^MC command is used to retain the current bitm ap. This applies to current and subsequent labels until cleared with . ^MCY Format: ^MCa . ^FV must be used with ^MC Important • To produce a label template, Details Parameters a = map clear Values: Y (do not clear bitmap) (clear bitmap) or N Y Initial Value at Power Up: g. It command retains the image of the current label after formattin ^MC Comments The appears in the background of the next label printed. 1/31/18 Programming Guide P1099958-001

271 ZPL Commands 271 ^MD ^MD – Media Darkness ^MD command adjusts the darkness re lative to the current darkness setting. The Format: ^MDa Parameters Details a = media darkness 30 to , depending on current value -30 Values: level Initial Value at Power Up: 0 If no value is entered, t his command is ignored. printer to different darkness l These examples show setting the evels: Example 1: ^MD-9 • If the current value (value on co nfiguration label) is 16, ente ring the command decreases the value to 7. increases ing the command ^MD15 • If the current value (value on c onfiguration label) is 1, enter the value to 16. ^MD10 nfiguration label) is 25, ente If the current value (value on co • ring the command increases s the maximum value allowed. only the value to 30, which i as printed on the ^MD command is treated separately in relation to the current value Each configuration label. Note • On Zebra G-Series™ printer s the value set with the ^MD command is persistent across power cycles. Plus Xi III , Xi4, and RXi4 is 0 to 30 in Important • The darkness setting range for the increments of 0.1. ^MD and ~SD commands (ZPL darkness commands) The firmware is setup so that the accepts that range of settings. These are examples of the Xi Example 2: , Xi4, and RXi4 Darkness Setting: Plus III ^MD8.3 ~SD8.3 ^MD commands were received: Example 3: For example, this is what would happen if two Assume the current value is 15. An command is received that changes the current value to 9. ^MD-6 Another command, t value changes to 17. , is received. The curren ^MD2 The two alue of 15. in relation to the current v commands are treated individually ^MD ^MD Comments The ~SD command value, if applicable, is added to the command. 1/31/18 Programming Guide P1099958-001

272 ZPL Commands 272 ^MF Media Feed ^MF – The ^MF o the media at power-up and at head-close after the command dictates what happens t error clears. Format: ^MFp,h Details Parameters feed action at p = Values: t web after sensor feed to the firs F = power-up C = (see ~JC definition) on page 226 L = definition) on page 239 ~JL (see N = no media feed m S = short calibration Default: C feed action after h = Values: F = feed to the firs t web after sensor closing definition) (see C = ~JC on page 226 printhead L = definition) on page 239 ~JL (see no media feed N = m short calibration S = C Default: m. , ZM400/ZM600, RZ400/RZ600, and S4M printers. PAX , Plus III Xi These values are supported only on Xi4, RXi4, setting, the printer Comments It is important to remember that if you choose the N ad are the same as before osition relative to the printhe assumes that the media and its p ^JU command to save changes. power was turned off or the pr inthead was opened. Use the P1099958-001 1/31/18 Programming Guide

273 ZPL Commands 273 ^MI ^MI – Set Maintenance Information Message This command is available only for printers with firmware versi on V60.15.x, V50.15.x, or later. command controls the content of ^MI ich are reminders The maintenance alert messages, wh t the operator to clean or rep printed by the printer to instruc lace the printhead. Supported Devices • Xi4, RXi4 • ZM400/ZM600m RZ400/RZ600 15.5Z or later • S4M with v53. •G-Series Format: ^MItype,message Parameters Details identifies type = Values: R = head replacement the type of alert head cleaning C = R Default: The maximum length of each message is 63 characters. All charac ters following the message = message (^ ) or carat ) define the message string. ~ comma and precedi ng the next tilde ( that prints Commas (,) are not allo wed in the message. on the label Default: when a HEAD CLEANING = please clean printhead maintenance alert occurs HEAD REPLACEMENT = please replace printhead Example: This example sets the printhead (head) replacement warning mess age. Printing of this message is controlled by the ^MA command. 1. To customize the text of this la bel, type something like this: ^XA^MIR,PRINT HEAD NEEDS REPLACEMENT - CALL EXT 1000^XZ The label prints whatever you program it to say. 2. For this example, the message o n the label looks like this: Programming Guide 1/31/18 P1099958-001

274 ZPL Commands 274 ^ML Maximum Label Length ^ML – The ^ML he maximum label length. command lets you adjust t y when in continuous mode. This command does not appl Note • Format: ^MLa Details Parameters maximum label a = Values: by two, up to the maximum len gth of label the dpi of the printer multiplied length (in dot last permanently saved value Default: rows) l length equal you must set the maximum labe For calibration to work properly, Comments to or greater than your actual label length. This command is ignored on the HC100™ printer 1/31/18 Programming Guide P1099958-001

275 ZPL Commands 275 ^MM ^MM – Print Mode The ^MM command determines the action t he printer takes after a label or group of labels has printed. Refer to the User Guide for your printer to determine which pri nt modes are supported by Note • your printer. Format: ^MMa,b Parameters Details a = desired mode Values: n Tear-off T = n S Peel-off (not available on P = -300) R = Rewind (depends on printer model) n A = Applicator (depends on printer model) C = Cutter (depends on printer model) n D = Delayed cutter n RFID F = n, o Reserved L = n, o Reserved U = p K = Kiosk Default: The values available for parameter r being used and depend on the printe a whether it supports the option. For RFID printers: A = R110PAX4 print engines other RFID printers F = prepeel select b = Values: N = no yes Y = Default: N The command is ignored if paramet ers are missing or invalid. Th e current value of the command rem ains unchanged. n. This value is not supported on the KR403 or ZD500R printer. ted only on the ZM400 and ZM600 printers. o. This value is suppor only the KR403 printer. This value is supported p. fferent modes of operation: This list identifies the di • Tear-off — after printing, the label advances so the web is ov er the tear bar. The label, with liner attached, can be torn off manually. • Peel-off — after printing, the l abel moves forward and activat es a Label Available Sensor. Printing stops until the label i s manually removed from the pri nter. – liner automatically rewinds usi Power Peel spindle. ng an optional internal rewind oved. – liner feeds down the front of the printer and is manually rem Value Peel ext label forward Prepeel – after each label is manually rem oved, the printer feeds the n erial. The printer then to prepeel a small portion of the label away from the liner mat backfeeds and prints the label. The prepeel feature assists in the proper peel operation of some media types. P1099958-001 Programming Guide 1/31/18

276 ZPL Commands 276 ^MM • Rewind — the label and liner a re rewound on an (optional) exte rnal rewind device. The next label is positioned under the p rinthead (no ba ckfeed motion). • Applicator — when us ed with an application device, the label m ove far enough forward to be removed by the applicator and appl only to printers that have ied to an item. This applies applicator ports and that are bei ng used in a print-and-apply s ystem. • Cutter — after printi ng, the media feeds forward and is automa tically cut into predetermined lengths. • Delayed cutter — When the printer is in the Delayed Cut PRINT MODE, it will cut the label when command, the printer's PRINT ~JK (Delayed Cut) command. To activate the ~JK it receives the MODE must be set to Delayed Cut and there must be a label waiti ng to be cut. When the printer is not in the Delayed Cut PRINT MODE, the printer will not cut the label when it receives the ~JK command. be sent at the end of a set of in a separate file - it cannot commands. ~JK Send Note • The Delayed Cut feature can be activated: • through PRINT MODE on the printer’s control panel •with a ^MMD command • RFID — increases throughput time when printing batches of RFID labels by eliminating backfeed between labels. presentation p a is moved in a osition, most applications • Kiosk — after printing, the medi maintain a loop of media in the printer. Comments Be sure to select the appropriate value for the print mode bein g used to avoid unexpected results. This command is ignored on the HC100™ printer. 1/31/18 P1099958-001 Programming Guide

277 ZPL Commands 277 ^MN Media Tracking ^MN – a type being used and the black mark offset in dots. This command specifies the medi This bulleted list shows the ty pes of media asso ciated with thi s command: has no physical characteristic ( • Continuous Media – this media such as a web, notch, ^LL command. perforation, black mark) to separ ate labels. Label length is de termined by the • Continuous Media, variable leng th – same as Continuous Media, but if portions of the printed ed label length, t be extended to label fall outside of the defin will automatically he label size xtension applies only to the c urrent label. Note that ^MNV still contain them. This label length e ial desired label length. ^LL command to define the init requires the use of the aracteristic (such as web, • Non-continuous Media – this media has some type of physical ch notch, perforation, black mark ) to separate the labels. Format: ^MNa,b Details Parameters media being used a = Values: N = continuous media q, r Y = non-continuous media web sensing q, r W = non-continuous media web sensing non-continuous media mark sensing M = q, s media during calibration auto-detects the type of A = t V = continuous media, variable length Default: a value must be entered o r the command is ignored This sets the expected location o f the media mark relative to t he point of separation b = black mark offset between documents. If set to 0, th e media mark is expected to b e found at the point in dots e., the perforation, cut point, etc.) of separation. (i. the All values are listed in dots. This parameter is ignored unless parameter is set a . If this parameter is missing , the default value is used. M to Values: -80 to 283 for direct-thermal only printers -240 to 566 for 600 dpi printers -75 to 283 for KR403 printers -120 to 283 for all other printers Default: 0 q. Provides the same result. This value is not suppor r. ted on the KR403 printer. only on G-series printers. This parameter is supported s. t. This parameter is supported only on the KR403 printer. This command is ignored Comments on the HC100™ printer. 1/31/18 Programming Guide P1099958-001

278 ZPL Commands 278 ^MP ^MP – Mode Protection The ^MP command is used to disable the various mode functions on the c ontrol panel. Once disabled, the settings for the pa longer be changed and the LED rticular mode function can no associated with the function does not light. ^MP Because this command has only one parameter, each mode must be disabled with an individual command. Format: ^MPa Details Parameters a = mode to protect Values: D = disable Darkness Mode P = disable Position Mode C = disable Calibration Mode E = enable all modes disable all mode saves (modes ca S = n be adjusted but values are no t saved) W = disable Pause F = disable Feed X = disable Cancel M = disable menu changes r the command is ignored Default: a value must be entered o Programming Guide P1099958-001 1/31/18

279 ZPL Commands 279 ^MP Example: This example shows the ZPL code that disables modes D and C. It also shows the e is sent: ation label before and after the ZPL cod effects on the configur ^XA ^MPD ^MPC ^XZ Before After P1099958-001 Programming Guide 1/31/18

280 ZPL Commands 280 ^MT ^MT – Media Type The ^MT command selects the type of med ia being used in the printer. These are the choice s for this command: • Thermal Transfer Media – this media uses a high-carbon black o r colored ribbon. The ink on the ribbon is b onded to the media. es no ribbon. ia is heat sensitive and requir • Direct Thermal Media – this med Format: ^MTa Parameters Details a = media type used Values: thermal transfer media T = direct thermal media D = Default: a value must be entered o r the command is ignored on the HC100™ printer. This command is ignored Comments Programming Guide P1099958-001 1/31/18

281 ZPL Commands 281 ^MU Set Units of Measurement ^MU – ^MU command sets the units of me asurement the printer uses. ^MU works on a field-by-field The set, it carries over from fiel basis. Once the mode of units is d to field until a new mode of units is entered. ^MU also allows for print ing at lower resoluti ons — 600 dpi printe rs are capable of p rinting at 300, 200, and 150 dpi; 300 dpi printer s are capable of printing at 1 50 dpi. Format: ^MUa,b,c Details Parameters a = units Values: D = dots I = inches M = millimeters Default: D b = format base in , 300 150 , 200 Values: dots per inch Default: r the command is ignored a value must be entered o c = desired dots-per- Values: 300 , 600 inch conversion Default: a value must be entered o r the command is ignored This is an example of Setting Units: Example 1: Assume 8 dot/millimeter (203 dot/inch) printer. Field based on dots: ^MUd^FO100,100^GB1024,128,128^FS Field based on millimeters: ^MUm^FO12.5,12.5^GB128,16,16^FS Field based on inches: ^MUi^FO.493,.493^GB5.044,.631,.631^FS Example 2: This is an example of Converting dpi Values. Convert a 150 dpi format to a 300 dpi format with a base in dots: ^MUd,150,300 Convert a 150 dpi format to a 600 dpi format with a base in dots: ^MUd,150,600 Convert a 200 dpi format to a 600 dpi format with a base in dots: ^MUd,200,600 To reset the conversion factor to the origi nal format, enter matching values for parameters b and c : ^MUd,150,150 ^MUd,200,200 ^MUd,300,300 ^MUd,600,600 Comments This command should appear at the beginning of the label format to be in . c and b g values for parameter proper ZPL II format. To turn the conversion off, enter matchin Programming Guide 1/31/18 P1099958-001

282 ZPL Commands 282 ^MW ^MW – Modify Head Cold Warning d on the operating The ^MW command allows you to set the head cold warning indicator base environment. Format: ^MWa Parameters Details a = enable head cold Values: enable head cold warning Y = warning N = disable head cold warning given, the instruction is ignored . Important • When a parameter is not Programming Guide P1099958-001 1/31/18

283 ZPL Commands 283 ^NC ^NC – Select the Primary Network Device The ^NC command selects the wired or wi reless print server as the prim ary network device. Supported Devices • Xi4, RXi4 • ZM400/ZM600, RZ400/RZ600 The Xi4, RXi4, ZM400/ ZM600, and RZ400/RZ600 printers support th e simultaneous i nstallation of all three print servers may be installed, an internal, external, and a wireless print server. Even though o the network and is the active print se rver. Table 16 outlines priorities and only one is connected t identifies which device becomes t ltiple print serve he active print server when mu rs are installed. rver tive Print Se ork Setting on Ac Table 16 • Effect of Primary Netw Installed and Connected to If the Then, the Active Print aLiveEthernetNetwork Primary Server will be: Network is u Internal External Wireless setto: XX X Internal Wired XXExternal Wireless X Wireless X X X Wireless Internal XX XExternal A wireless option boa rd must have an active radio that can pro perly associate to an access point. u. ^NCa Format: Details Parameters a = primary Values: 1 = wired primary network device 2 = wireless primary 1 Default: must be an accepted va lue or it is ignored Programming Guide P1099958-001 1/31/18

284 ZPL Commands 284 ~NC ~NC – Network Connect The ~NC command is used to connect a pa rticular printer to a network b y calling up the printer’s network ID number. Format: ~NC### Details Parameters network ID ### = 999 001 Values: to number assigned 000 Default: (none) (must be a three-digit entry) Comments Use this command at the beginning of any label format to specif y which printer shed, it continues to be used on the network is going to be used. Once the printer is establi ~NC command. This command must b e included in the label until it is changed by another . wake up the printer format to The commands ^MW, ~ NC , ^NI , ~NR , and ~NT are used only with RS-422/485 printer communications. 1/31/18 Programming Guide P1099958-001

285 ZPL Commands 285 ^ND Change Network Settings ^ND – command changes the network se ttings on supported printers. The ^ND command is the same as the ^NS command. ^ND int server settings, the For the external wired pr command. ^ND command is the same as the ^WI erver settings, the For the wireless print s Supported Devices • Xi4 with firmware V53.17.1Z or later •RXi4 • RZ400/RZ600 with firmwar e R53.15.xZ or later • ZM400/ZM600 with firmware V53.15.xZ or later •G-Series Format: ^NDa,b,c,d,e,f,g,h,i,j Details Parameters a = the device Values: 1 = external wired that is being modified internal wired 2 = wireless 3 = b = IP resolution Values: A =All B =BOOTP C = DHCP and BOOTP D =DHCP G = Gleaning only (Not recommended when the Wireless Print Server or Wireless Plus Print Server is installed.) R =RARP =Permanent P A Default: c = IP address Any properly formatt xxx.xxx.xxx.xxx format . Values: ed IP address in the subnet mask d = Any properly formatt ed subnet mask in t he xxx.xxx.xxx.xxx forma t. Values: e = default Values: ay in the xxx.xxx. xxx.xxx format. Any properly formatted gatew gateway WINS server f = Values: Any properly formatt ed WINS server in the xxx.xxx.xxx.xxx forma t. address g = connection Values: Y = yes timeout N = no checking Y Default: Time, in seconds, before the connection times out. h = timeout value Values: 0 through 9999 Default: 300 ce’s ARP cache. update the devi oadcast is sent to Time, in minutes, that the br ARP broadcast i = interval Values: 0 through 30 Default: (no ARP sent) 0 Programming Guide 1/31/18 P1099958-001

286 ZPL Commands 286 ^ND Parameters Details The port number that the printe r should use for its RAW data. base raw port j = number 1 Values: 65535 through Default: 9100 Programming Guide P1099958-001 1/31/18

287 ZPL Commands 287 ^NI ^NI – Network ID Number The ^NI command is used to assign a net work ID number to the printer. This must be done before the printer can be u sed in a network. Format: ^NI### Details Parameters network ID ### = to 001 Values: 999 number assigned Default: (none) 000 (must be a three-digit entry) tem. the one recognized by the sys The last network ID number set is Comments ~NC The commands ~NR , and ~NT are used only with RS-485 printer communications. , ^NI , P1099958-001 Programming Guide 1/31/18

288 ZPL Commands 288 ~NR ~NR – Set All Network Printers Transparent gardless of ID or current e network to be transparent, re The ~NR command sets all printers in th mode. Format: ~NR ~NC , Comments The commands are used only with RS-485 printer ~NT ^NI , ~NR , and communications. Programming Guide P1099958-001 1/31/18

289 ZPL Commands 289 ^NS ^NS – Change Wired Networking Settings hange the wired print server network setti ngs. Use this command to c Format: ^NSa,b,c,d,e,f,g,h,i Details Parameters = IP resolution a Values: A=ALL B=BOOTP C=DHCP AND BOOTP D=DHCP G = GLEANING ONLY R = RARP P=PERMANENT Default: A Server or mmended when the Wireless Print Use of GLEANING ONLY is not reco Wireless Plus Print Server is installed. b = IP address Any properly formatt xxx.xxx.xxx.xxx format . ed IP address in the Values: = subnet mask c Values: t. xxx.xxx.xxx forma mask in the xxx. Any properly formatted subnet = default gateway d Any properly formatted gatew Values: xxx.xxx format. ay in the xxx.xxx. e = WINS server Any properly formatt the xxx.xxx.xxx.xxx forma t. Values: ed WINS server in address f = connection Values: Yes Y = timeout checking N = No Y Default: Time, in seconds, before the connection times out. g = timeout value 0 9999 through Values: 300 Default: ce’s ARP cache. update the devi oadcast is sent to Time, in minutes, that the br h = ARP broadcast interval 0 Values: through 30 (no ARP sent) Default: 0 The port number that the printe r should use for its RAW data. = base raw port i number Values: 1 65535 through Default: 9100 Example: ^XA ^NSa,192.168.0.1,255.255.255.0,192.168.0.2 ^XZ and RZ400/RZ600 printers, Zebra Comments For the Xi4, RXI4, ZM400/ZM600, recommends ^NS command instead of the ^ND command. that you use the 1/31/18 P1099958-001 Programming Guide

290 ZPL Commands 290 ~NT Set Currently Connected Printer Transparent ~NT – nsparent. The ~NT command sets the curr ently connected netwo rk printer to be tra Format: ~NT ® Comments With Z Series printers, the ~NT command functions the same as the ~NR ssion. command. All Z Series printers on a network receive the transmi printer communications. are used only with RS-485 ~NT The commands ~NC , ^NI , ~NR , and Programming Guide P1099958-001 1/31/18

291 ZPL Commands 291 ^PA Advanced Text Properties ^PA – This command is available only for printers with firmware versi on V60.14.x, V50.14.x, or later. advanced text layout features. The ^PA command is used to configure Format: ^PAa,b,c,d Parameters Details This determines whether the defa or the default glyph ult glyph is a space character default glyph a = of the base font, which is typically a hollow box. Values: 0 = off (space as default glyph) d, often a hollo 1 = on (default glyph of font is use w box, but depe nds on the font.) Default: 0 rectional text layout is turned This determines whether the bidi on or off. b = bidirectional text layout Values: 0 = off on 1 = Default: 0 This determines whether characte r shaping is turned on or off. c = character shaping Values: off 0 = on 1 = Default: 0 This determines whether the OpenT f. ype support is turned on or of d = OpenType table support Values: 0 = off on 1 = 0 Default: Programming Guide P1099958-001 1/31/18

292 ZPL Commands 292 ^PF Slew Given Number of Dot Rows ^PF – The ^PF command causes the printer to slew labels (move labels at a hi gh speed without printing) a rows from the bottom of the label. This allows faster printing when the specified number of dot bottom portion of a label is blank. Format: ^PF# Parameters Details number of dots # = 32000 Values: 0 to rows to slew Default: a value must be entered o r the command is ignored Programming Guide P1099958-001 1/31/18

293 ZPL Commands 293 ^PH ~PH ^PH ~PH – Slew to Home Position ~PH r to feed one blank label. command causes the printe The ^PH or e format currently being print ed is done or when the command feeds one label after th ~PH The printer is placed in pause. rrent format prints. k label after the cu ^PH command feeds one blan The Format: ^PH or ~PH Programming Guide 1/31/18 P1099958-001

294 ZPL Commands 294 ~PL ~PL – Present Length Addition The ~PL command adds an additional amount to how far the paper is eject ed during a present cycle. A standard amou nt of 50mm is always added to clear the k iosk wall. This amount is added to amount of media ejected when a ^PN is exec that 50mm. The total uted, then, is 50mm + ~PL value + ^PN value. Supported Devices •KR403 Format: ^PLa Parameters Details a = additional eject length Values: 000-255 = additional mm of media to eject 000 Default: The command is ignored if parameters are missing or invalid. Programming Guide P1099958-001 1/31/18

295 ZPL Commands 295 ^PM Printing Mirror Image of Label ^PM – The ^PM command prints the entire printable area of the label as a mir ror image. This command flips the image from left to right. Format: ^PMa Details Parameters print mirror a = Values: no N = image of entire Y = yes label Default: N Example: This is an example of printi ng a mirror image on a label: ZPL II CODE GENERATED LABEL ^XA^PMY ^FO100,100 FG C ^ ^FDMIRROR^FS ^FO100,160 ^FDIMAGE^FS ^XZ Comments If the parameter is missing or Once entered, invalid, the command is ignored. inter is turned off. ^PM command remains active until ^PMN is received or the pr the Programming Guide 1/31/18 P1099958-001

296 ZPL Commands 296 ^PN ^PN – Present Now The ^PN command causes the pr inter to run a Presenter cycle. The parame ter defines the amount of media ejected. The total amou nt of media ejected when a ^PN is executed, then, is 50mm + ~PL ~PL ). on page 294 value + ^PN value. (See Supported Devices •KR403 Format: ^PNa Parameters Details a = media eject Values: 0-255 = additional mm of media to eject length none Default: The command is ignored if parameters are missing or invalid. Programming Guide P1099958-001 1/31/18

297 ZPL Commands 297 ^PO ^PO – Print Orientation The ^PO command inverts the label forma t 180 degrees. The label appear s to be printed upside , the inverted label ^PF down. If the original label c ontains commands such as ^LL , ^LS , ^LT and output is affected differently. Format: ^POa Parameters Details a = invert label Values: normal N = 180 degrees invert I = Default: N This is an example of print Example: ing a label at 180 degrees: ZPL II CODE GENERATED LABEL ^XA^CFD ^POI ^LH330,10 ^FO50,50 ^FDZEBRA TECHNOLOGIES^FS ^FO50,75 ^FDVernon Hills, IL^FS ^XZ elative to these inverted ^POI command inverts the x, y coordinates. All image placement is r The ove the print back onto the (Label Home) can be used to m ^LH ore, a different coordinates. Theref label. ^PO If multiple Comments in the same label format, only the last commands are issued command sent to the printer is used. Once the ^PO command is sent, the setting is retained until another ^PO command is received or the printer is turned off. value for the N ted on the HC100™ printer. a parameter is not suppor The Programming Guide P1099958-001 1/31/18

298 ZPL Commands 298 ^PP ~PP ^PP ~PP – Programmable Pause The ~PP command stops printing after the current label is complete (if one is printing) and places the printer in Pause Mode. The ate. Therefore, severa t before a pause is l labels might prin ^PP command is not immedi performed. This command pauses th e printer after the current fo rmat prints. The operation is identical to pressing PAUSE on the control panel of the printer. The printer remains is sent to the printer. (Print Start) command paused until PAUSE is pressed or a ~PS Format: ^PP or ~PP Programming Guide P1099958-001 1/31/18

299 ZPL Commands 299 ^PQ Print Quantity ^PQ – ^PQ command gives control over sev eral printing operations. It con trols the number of labels to The ted before printer pauses, and the number of repl ications of each print, the number of labels prin serial number. Format: ^PQq,p,r,o,e Details Parameters total quantity of q = Values: 1 to 99,999,999 labels to print 1 Default: p = pause and cut 1 Values: to 99,999,999 value (labels Default: (no pause) 0 between pauses) r = replicates of to Values: replicates 0 99,999,999 each serial Default: (no replicates) : 0 number override pause o = Values: no N = count yes Y = Default: N cut on error e = Values: after a voide cut will be made no - if a cutter is installed, a N = d RIFD label label (RFID void ter the non-voided label and this ONLY if a cut would be made af was the last is an error retry. label) Y = ided RFID label. yes - if a cutter is installed, a cut will be made after ANY vo Default: Y pause, and the printer does not o parameter is set to pause Y , the printer cuts but does not If the printed. With the N (default), the after every group c ount of labels has been parameter set to o printer pauses after every group ed. count of labels has been print This example shows the con trol over print operations: Example: f each serial number. It ^PQ50,10,1,Y : This example prints a total of 50 labels with one replicate o prints the total quantity in gr oups of 10, but does not pause a fter every group. ^PQ50,10,1,N : This example prints a total of 50 labels with one replicate o f each serial number. It group. oups of 10, pausing after every prints the total quantity in gr Programming Guide P1099958-001 1/31/18

300 ZPL Commands 300 ~PR ~PR – Applicator Reprint If the ~PR command is enabled (see ^JJ on page 237 ), the last label printed reprints, similar to the applicator asserting the Reprint s ignal on the applicator port. This command is similar to . on page 625 device.applicator.reprint Supported Devices •ZE500 Plus • Xi III • Xi4 with firmware V53.17.1Z or later • PAX2, PAX 4 •S4M • ZM400/ZM600 Format: ~PR PREVIOUS on the control panel also cau ses the last label to reprint. Comments Pressing Programming Guide P1099958-001 1/31/18

301 ZPL Commands 301 ^PR ^PR – Print Rate The ^PR command determines the media a nd slew speed (feeding a blank l abel) during printing. The printer operates with the sele cted speeds unti l the setting is reissued or the printer is turned off. specific. Because print quality is affected by media, ribbon, printing The print speed is application- operating modes, it is very important to ru n tests for your applications. speeds, and printer Important • Some models go to default print speed when power is turned off. Format: ^PRp,s,b Details Parameters p = print speed Values: v 1 = 25.4 mm/sec. (1 inch/sec.) A or 2 = 50.8 mm/sec. (2 inches/sec.) B or 3 = 76.2 mm/sec. (3 inches/sec.) C or 4 = 101.6 mm/sec. (4 inches/sec.) 5 = 127 mm/sec.(5 inches/sec.) D or 6 = 152.4 mm/sec. (6 inches/sec.) 7 = 177.8 mm/sec. (7 inches/sec.) E or 8 = 203.2 mm/sec. (8 inches/sec.) 9 = 220.5 mm/sec. 9 inches/sec.) 10 = 245 mm/sec.(10 inches/sec.) 11 = 269.5 mm/sec.(11 inches/sec.) 12 = 304.8 mm/sec. 12 inches/sec.) w 13 = 13 in/sec w 14 = 14 in/sec Default: A slew speed s = Values: A or 2 = 50.8 mm/sec. (2 inches/sec.) B or 3 = 76.2 mm/sec. (3 inches/sec.) C or 4 = 101.6 mm/sec. (4 inches/sec.) 5 = 127 mm/sec. 5 inches/sec.) D or 6 = 152.4 mm/sec. (6 inches/sec.) 7 = 177.8 mm/sec. (7 inches/sec.) E or 8 = 203.2 mm/sec. (8 inches/sec.) 9 = 220.5 mm/sec. (9 inches/sec.) 10 = 245 mm/sec. (10 inches/sec.) 11 = 269.5 mm/sec. 11 inches/sec.) 12 = 304.8 mm/sec. 12 inches/sec.) w 13 = 13 in/sec w 14 = 14 in/sec Default: D Plus v. This value is supported on ly on the 110Xi4-600dpi, 110 Xi III -600dpi , and RXi printers. w. This value is supported only on the Xi4 and RXi4 printers. Programming Guide 1/31/18 P1099958-001

302 ZPL Commands 302 ^PR Details Parameters backfeed speed b = Values: A or 2 = 50.8 mm/sec. (2 inches/sec.) B or 3 = 76.2 mm/sec. (3 inches/sec.) C or 4 = 101.6 mm/sec. (4 inches/sec.) 5 = 127 mm/sec.(5 inches/sec.) D or 6 = 152.4 mm/sec. (6 inches/sec.) 7 = 177.8 mm/sec. (7 inches/sec.) E or 8 = 203.2 mm/sec. (8 inches/sec.) 9 = 220.5 mm/sec. 9 inches/sec.) 10 = 245 mm/sec. 10 inches/sec.) 11 = 269.5 mm/sec. 11 inches/sec.) 12 = 304.8 mm/sec. 12 inches/sec.) w 13 = 13 in/sec w 14 = 14 in/sec Default: A This value is supported on -600dpi , and RXi printers. Xi III v. Plus ly on the 110Xi4-600dpi, 110 This value is supported only on the Xi4 and RXi4 printers. w. , and s Comments The speed setting for p , b is dependent on the limitations of the printer. er second), a value of 12 can be If a particular printer is limit ed to a rate of 6 ips (inches p printer’s User Guide for only at a 6 ips rate. See your entered but the printer performs specifics on performance. This command is ignor ed on the HC100 printer. Programming Guide 1/31/18 P1099958-001

303 ZPL Commands 303 ~PS ~PS – Print Start command causes a printer in Pau operation is identical to se Mode to resume printing. The The ~PS pressing PAUSE on the control panel of the printer when th e printer is alread y in Pause Mode. Format: ~PS P1099958-001 Programming Guide 1/31/18

304 ZPL Commands 304 ^PW Print Width ^PW – The ^PW command allows you to set the print width. Format: ^PWa Parameters Details label width (in a = , to the width of the label 2 Values: If the value exceeds the width o the label’s of the label, the width is set t dots) maximum size. Default: last permanently saved value This command is ignored Comments on the HC100™ printer. 1/31/18 Programming Guide P1099958-001

305 ZPL Commands 305 ~RO ~RO – Reset Advanced Counters The ~RO command resets the advanced coun ters used by the printer to mo nitor label generation in inches, centimeters, and number of labels. ~ROc Format: Parameters Details c = counter number Values: 1 = reset counter 1 = reset counter 2 2 = reset valid RFID label counter 3 4 = reset voided RFID label counter x C= reset head cleaned counter x R= reset head replaced counter and head cleaned counter a value must be specifie d or the command is ignored Default: x. These values are supported only on Xi4, RXi4, ZM400/ZM600, RZ40 0/RZ600, S4M, and G-Series printers. Example 1: This example shows how the count er portion of the printer confi guration labels . ~RO1 looks when counter 1 is reset by sending Before After Programming Guide 1/31/18 P1099958-001

306 ZPL Commands 306 ^SC ^SC – Set Serial Communications The ^SC command allows you to change th e serial communications paramet ers you are using. Format: ^SCa,b,c,d,e,f Parameters Details y a = baud rate ; 19200 ; 14400 ; 9600 ; ; or 38400 4800 ; ; 28800 Values: 110 2400 ; 300 ; 600 ; 1200 ; 57600; 115200 Default: must be specified or the parameter is ignored b = word length (in 7 8 or Values: data bits) must be specified Default: parity c = (odd) N Values: O (even), or E (none), Default: must be specified d = stop bits 1 or 2 Values: must be specified Default: e = protocol mode Values: XON/XOFF X = DTR/DSR D = R = RTS z DTR/DSR XON/XOFF M = must be specified Default: f = Zebra protocol Values: ACK/NAK A = none N = Zebra Z = must be specified Default: 600, and S4M printers. Xi4, RXi4, ZM400/ZM600, RZ400/RZ y. This value is not supported on This parameter is supported only on G-Series printers. Using th z. e DTR/DSR XON/XOFF mode will c ause the printer to respond to either DTR/DSR or XON/XOFF, depending on which method is fir st received from the host device. Comments If any of the parameters are missing, out of specification, not supported by a particular printer, or have a ZP L-override DIP switch set, the command is ignored. command causes the changes in ^JUS hrough power-up and Communications Mode to persist t A software resets. P1099958-001 1/31/18 Programming Guide

307 ZPL Commands 307 ~SD ~SD – Set Darkness is the equivalent of the darkness ~SD The ~SD command allows you to set t he darkness of printing. setting parameter on the control panel display. Format: ~SD## Details Parameters ## = desired darkness 30 to 00 Values: setting (two- last permanently saved value Default: digit number) Xi , Xi4, and RXi4 is 0 to 30 in Plus Important • The darkness setting range for the III commands (ZPL darkness ~SD and ^MD increments of 0.1. The firmware is setup so that the t range of settings. commands) accept tha Example: These are examples of the Xi III Plus , Xi4, and RXi4 Darkness Setting: ^MD8.3 ~SD8.3 ~SD Comments The ^MD command value, if applicable, is added to the command. 1/31/18 Programming Guide P1099958-001

308 ZPL Commands 308 ^SE ^SE – Select Encoding Table able. The ^SE command is used to select the desired ZPL or ZPL II encoding t Format: ^SEd:o.x Details Parameters location of d = Values: B: A: , and , E: , R: encoding table R: Default: name of encoding o = 8 alphanumeric characters to 1 Values: table Default: a value must be specified x = extension Fixed Value: .DAT ed in flash with the font. The The encoding tables are provided with the font card or download XXXXXXX.DAT in a directory label printed by the ZPL commands. table appears as * ory label. on the direct The most active encoding t able is indicated by the Example: ^XA^WD*:*.*^XZ P1099958-001 1/31/18 Programming Guide

309 ZPL Commands 309 ^SF ^SF – Serialization Field (with a Standard ^FD String) The ^SF serialize a standard ^FD string. The maximum size of the mask command allows you to and increment string is 3K combined. In firmware version x.14 and lat er, strings are serialized from the last character in the ement strings. For alignment of the mask and incr backing store with regard to the sk character % needs to be combining semantic clusters that do not get incremented, the ma added to the increment string. Format: ^SFa,b Parameters Details The mask string sets the serializ ation scheme. The length of th e string mask defines mask string a = the number of characters (or in firmware version x.14 and later , combining semantic The mask is aligned to the string to be serialized. ^FD clusters) in the current characters (or in firmware versio n x.14 and later, combining se mantic clusters) in firmware x.14 and l ater, last) in the ^FD string starting with the right-most (or in the backing store position. Mask String placeholders: or – Decimal numeric 0–9 d D or – Hexadecimal 0–9 plus a-f or A-F H h or o – Octal 0–7 O a A or – Alphabetic A–Z or a–z N or n – Alphanumeric 0–9 plus A–Z or a–z % – Ignore character or skip e to be added to the field on e ach label. The default The increment string is the valu increment string b = value is equivalent to mposed of any one. The string is co a decimal value of characters (or in firmware versio n x.14 and later, combining se mantic clusters) defined in the serial string. I nvalid characters (or in firmwar e version x.14 and later, re assumed to be equal to a value of zero in that combining semantic clusters) a mantic clusters) characters (or in firmware versio n x.14 and later, combining se position. ’ or ‘ ’ as the zero a A The increment value for alph abetic strings s tart with ‘ ment an alphabetic character (o placeholder. This means to incre r in firmware B b ’ or ‘ ’ must version x.14 and later, combining semantic cluster) by one, a v alue of ‘ be in the incr ement string. character needs to be added to the increment % For characters that do no t get incremented, the string. 1/31/18 Programming Guide P1099958-001

310 ZPL Commands 310 ^SF string. The ZPL II code generates three ^FD This is an example of serializing a Example 1: separate labels as seen in Generated Labels: ZPL II CODE GENERATED LABELS ^XA ^FO100,100 ^CF0,100 ^FD12A^SFnnA,F^FS ^PQ3 ^XZ This mask has the first characters (or in firmware version x.14 and later, the first combining semantic 12) and the last digit as upper case alphabetic (A). The decimal nn = clusters) as alphanumeric ( value of the increment number is equivalent to 5 (F). The numbe r of labels generated depends on ^PQ command. the number specified by the string could be replac ^FD ed with either of the ^FD strings below to In a similar instance, the . ^PQ generate a series of label, determined by Using this ZPL code: ^FDBL0000^SFAAdddd,1 The print sequence on this series of labels is: BL0000, BL0001,...BL0009, BL0010,... BL0099, BL0100,...BL9999, BM0000... Using this ZPL code: ^FDBL00-0^SFAAdd%d,1%1 The print sequence on this series of labels is: BL00-0, BL01-1, BL02-2,...BL09-9, BL11-0, BL12-1... 0.14.x, or later: r firmware version V60.14.x, V5 Important notes about masking fo • A single % masks an entire combining semantic cluster rather t han a single code point. • The mask string and increment st ring should be aligned at the last code point in their respective backing stores. are ignored for ters do not require a mask and • Control and bidirectional charac serialization purposes. The following examples show the importance of capitalization an d location within the mask. 1/31/18 P1099958-001 Programming Guide

311 ZPL Commands 311 ^SF Example 2: In this example, the printer cycles with every two printed labe ls and alternates between H (position 18), and then Z (position 36). With n or N, the serial number increments from 0 - 9 and a–z or A–Z (36 positions overall). With each com pleted cycle, the second cluster (nn) increments one position (from 00, 01, 02 ...) per cy cle: ZPL II CODE GENERATED LABELS ^XA ^FO100,50^A0N,50,50^FDzzZ^SFnnN,I^FS ^PQ10 ^XZ Example 3: In this example, lower case i increments with a mask string of nnN. Nothing cluster (zz) to change. changes because the first cluste r (Z) never triggers the second ZPL II CODE GENERATED LABELS ^XA ^FO100,50^A0N,50,50^FDzzZ^SFnnN,i^FS ^PQ10 ^XZ 1/31/18 Programming Guide P1099958-001

312 ZPL Commands 312 ^SI ^SI – Set Sensor Intensity ons V53.15.x or later. This command is available only for printers with firmware versi ^SI lues for the media sensors, wh ich are also set during The command is used to change the va process. The media calibration process is described in your specific printer’s the media calibration user’s guide. Supported Devices • Xi4 with firmware V53.17.1Z or later • RXi4 with firmware V53.17.7Z or later • ZM400/ZM600 with firmware V53.15.xZ or later • RZ400/RZ600 wtih firmware R53.15.xZ or later Format: ^SIa,b Details Parameters indicates the a = Values: 1 = transmissive sensor brightness setting setting to transmissive sensor baseline setting 2 = modify Default: must be an accepted value or the entire command is ignored . a The ranges for this parameter are the same for the accepted val ues in parameter b = the value to use for the sensor Values: 0 to 196 being configured Default: value or the entire command is ignored must be an accepted Programming Guide P1099958-001 1/31/18

313 ZPL Commands 313 ^SL ^SL – Set Mode and Language (fo r Real-Time Clock) ^SL command is used to specify t he Real-Time Clock’s mode of opera tion and language for The printing information. Important • he queue longer than the Time is read when the image is c • reated. If the image stays in t ted with a new time. specified time the image will be recrea There are incidents w e may be printed on labels. hen the same time or a larger space of tim • This is due to the format complexity and print speed. Format: ^SLa,b Details Parameters mode a = Values: me Start Time Mode. This is the time that is read from the Real-Ti S = is received). The first ^XA Clock when label formatting begins (when label has the same time plac ed on it as the last label. T = Time Now Mode. This is the time that is read from the Real-Time nted is placed in print queue. Clock when the label to be pri Time is similar to a serialized time or date field. Now me Clock (V60.13.0.10 or With the Enhanced Real Ti Numeric Value = 999 later) a time accuracy tolerance can be specified. Range = 1 to seconds, 0 = one second tolerance SL30,1 = conds and use English. Example: Accuracy tolerance of 30 se Default: S language b = Values: English 1 = 2 = Spanish French 3 = 4 = German Italian 5 = Norwegian 6 = Portuguese 7 = Swedish 8 = Danish 9 = Spanish 2 10 = 11 = Dutch 12 = Finnish Value 13 is only supported in 1 3 = Japanese aa firmware versions V60.14.x, 14 = Korean aa V50.14.x, or later. 15 = Simplified Chinese aa Traditional Chinese 16 = aa 17 = Russian aa Polish 18 = or the control panel Default: the language selected with ^KL These values are only supported aa. and RZ400/RZ600 printers. on the Xi4, RXi4, ZM400/ZM600, Comments These are some comments to be aware of: • command must be plac ^FO ed before the first ^SL The command. 1/31/18 P1099958-001 Programming Guide

314 ZPL Commands 314 ^SL • As of V60.13.0.10 all supported printers hav e Enhanced Real Tim e Clock capabilities the RTC will not print time fields that are more than sixty seconds old , rather it will update the time prior to h increments other than sixty seconds the ^SL ^SLT or ^SL60 ). To control time wit printing ( ^SL30 ). command can be used wit h a numeric value ( than sixty seconds. ^SLS can keep times longer he Real-Time Cl For more details on set mode and language with t ock, see Real Time Clock on page 1375 . 1/31/18 Programming Guide P1099958-001

315 ZPL Commands 315 ^SN Serialization Data ^SN – ^SN command allows the printer to i ndex data fields The increment or decrement by a selected value, making the data fields in crease or decrease by a specifi ed value each time a label is printed. on 100 to 150 fields in a given format an This can be performed d can be performed on both A maximum of 12 of the right- most integers are subject to alphanumeric and bar code fields. indexing. right to left starts the In x.13 and earlier, the first integer found when scanning from indexing portion of the data field. In x.14 and later, the first int eger found when scanning from e nd of the backing store ield. indexing portion of the data f towards the beginning starts the In x.13 and earlier, if the alphanumeric field to be indexed en ds with an alpha character, the data is scanned, character by character, from right to left unt il a numeric character is encountered. Serialization takes place using the value of the f irst number found. In x.14 and later, if the backin g store of the alphanumeric fie ld to be indexed ends with an rom the end of the backing alpha character, the data is scanned, character by character, f store until a numeric character is encountered. Serialization t akes place using the value of the first number found. Format: ^SNv,n,z Parameters Details v = starting value 12-digits maximum for the portion to be indexed Values: Default: 1 n = increment or Values: 12-digit maximum decrement value 1 Default: To indicate a decrement value, precede the value with a minus ( –) sign. z = add leading zeros Values: N = no (if needed) yes Y = Default: N P1099958-001 Programming Guide 1/31/18

316 ZPL Commands 316 ^SN This example shows incrementing by a specified value: Example: ZPL II CODE GENERATED LABELS ^XA ^FO260,110 ^CFG ^SN001,1,Y^FS ^PQ3 ^XZ Note: The ZPL II code above will generate three separate labels, seen to the right. red field Comments Incrementing and decrementing tak es place for each serial-numbe r of al number have been printed, a s specified in parameter when all replicates for each seri ^PQ (print quality) command. the If, during the course of printing serialized labels, the printe either paper or ribbon, the r runs out of d and calibration completed) has the edia or ribbon has been replace first label printed (after the m condition occurred. This is done in out label printed before the same serial number as the partial command. ^JZ case the last label before the out condition did not fully print. This is controlled by the Using Leading Zeros d. In the zeros are printed or suppresse parameter determines if leading ^SN command, the z do not print leading zeros), the N = print leading zeros; Y = Depending on which value is used ( uppresses the leading zeros. printer either prints or s this parameter is The default value for N (do not print leading zeros). Print Leading Zeros of the right-m g value consists ost consecutive sequence of In x.13 and earlier, the startin digits. In x.14 and later, the starting value consists of the first num ber working backwards in the backing store consecutive sequence of digits. canning from right to left until the he sequence) is determined by s The width (number of digits in t reate a specific width, manually place first non-digit (space or alpha character) is encountered. To c leading zeros as necessary. Suppressing Leading Zeros In x.13 and earlier, the startin g value consists of the right-m ost consecutive sequence of digits, including a ny leading spaces. In x.14 or later, the starting value consists of the first numb er working backwards in the ding spaces. e of digits, including any lea backing store consecutive sequenc Programming Guide 1/31/18 P1099958-001

317 ZPL Commands 317 ^SO Set Offset (for Real-Time Clock) ^SO – The command is used to set the sec ondary and the tertiary offset f rom the primary Real-Time ^SO Clock. e than one offset is required, command can be used. If mor SO2 For each label only one Note • SO3 must be used. Format: ^SOa,b,c,d,e,f,g Details Parameters a = clock set Values: 2 = secondary 3 = third value must be specified Default: b = months offset 32000 to –32000 Values: 0 Default: c = days offset to Values: –32000 32000 Default: 0 d = years offset –32000 32000 to Values: Default: 0 e = hours offset 32000 Values: –32000 to 0 Default: f = minutes offset 32000 Values: –32000 to 0 Default: seconds offset g = –32000 to 32000 Values: Default: 0 on page 1375 For more detail on set offset, see Real Time Clock . 1/31/18 Programming Guide P1099958-001

318 ZPL Commands 318 ^SP ^SP – Start Print The ^SP command allows a label to start printing at a specified point before the ent ire label has been completely formatt mmand can increase the overall ed. On extremely complex labels, this co throughput of the print. ^SP command is to begin. This The command works as f ollows: Specify the dot row at which the nformation in that segment command is processed, all i ^SP . Once the creates a label segment prints. During the pr inting process, all of the commands after the ^SP continue to be received and processed by the printer. If the segment after the ^SP command (or the rema inder of the label) is ready for printing, media motion does not stop. If the nex t segment is not ready, the pri nter stops mid-label and wait for the ^SP command requires a trial-and-error next segment to be completed. Precise positioning of the exity. d and label compl on print spee process, as it depends primarily command can be effectively us ed to determine the worst possibl e print quality. You can ^SP The command is appropriate for the particular application by using ^SP this determine whether using the procedure. ^SP command and then wait for printing to stop before If you send the label format up to the first quality. It drops sending the next segmen t, the printed label is a sample of the worst possible print any field that is out of order. t be: , the end of the label format mus If the procedure above is used ^SP#^FS Comments ^SPa Parameters Details dot row to start a = Values: 32000 0 to printing Default: 0 . Segment 1 prints while ^SP500 Example: In this example, a label 800 dot rows in length uses commands in Segment 2 are being received and formatted. Dot position 0 Label Segment 2 Dot position 500 Label Segment 1 Dot position 800 Programming Guide P1099958-001 1/31/18

319 ZPL Commands 319 ^SQ Halt ZebraNet Alert ^SQ – ^SQ command is used to stop t he ZebraNet Alert option. The Format: ^SQa,b,c Details Parameters condition type a = Values: A = paper out B = ribbon out printhead over-temp C = D = printhead under-temp E = head open F = power supply over-temp G = ribbon-in warning (Direct Thermal Mode) H = rewind full I = cut error J = printer paused K = PQ job completed L = label ready head element out M = ZBI (Zebra BASIC Interpreter) runtime error N = O = rpreter) forced error ZBI (Zebra BASIC Inte Q = clean printhead R = media low S = ribbon low T = replace head U = battery low V = RFID error (in RFID printers only) W = all errors (in RFID printers only) * = all errors (in non-RFID printers) destination b = Values: serial port A = B = parallel port C = e-mail address D = TCP/IP E = UDP/IP F = SNMP trap * = wild card to stop alerts for all destinations c = halt messages Values: Y = halt messages start messages N = Default: Y Programming Guide 1/31/18 P1099958-001

320 ZPL Commands 320 ^SR Set Printhead Resistance ^SR – The ^SR command allows you to set the printhead resistance. Format: ^SR#### Details Parameters #### = resistance to 0488 Values: 1175 value (four- Default: last permanently saved value digit numeric value) or equal to the To avoid damaging the printhead, Comments this value should be less than value shown on the printhead being used. Setting a higher value could damage the printhead. Note • New printer models automati cally set head resistance. 1/31/18 Programming Guide P1099958-001

321 ZPL Commands 321 ^SS Set Media Sensors ^SS – ^SS command is used to change the values for media, web, ribbon, a nd label length set during The the media calibration process. The media calibration process is described in your specific printer’s user’s guide. Format: ^SSw,m,r,l,m2,r2,a,b,c Parameters Details w = web (three-digit Values: 000 to 100 value) Default: value shown on the media sensor profile or configuration label m = media (three- Values: 000 to 100 digit value) Default: value shown on the media sensor profile or configuration label r = ribbon (three- Values: 000 to 100 digit value) Default: value shown on the media sensor profile or configuration label l = label length (in to 0001 32000 Values: dots, four-digit Default: value calculated in the calibration process value) m2 = intensity of 255 to 000 Values: media LED Default: value calculated in the calibration process (three-digit value) r2 = intensity of 255 to 000 Values: ribbon LED value calculated in the calibration process Default: (three-digit value) mark sensing a = Values: 000 to 100 (three-digit Default: value calculated in the calibration process value) b = mark media 100 Values: to 000 sensing (three- value calculated in the calibration process Default: digit value) c = mark LED sensing 255 to Values: 000 (three-digit value calculated in the calibration process Default: value) Programming Guide P1099958-001 1/31/18

322 ZPL Commands 322 ^SS Example: Below is an example of a media s ensor profile. Notice the numbe rs from 000 to 100 and where the words WEB, MEDIA, and RIBBON appear in relation to th so notice the ose numbers. Al ents where the pr the transition from media-to-web-to- black vertical spike. This repres inter sensed media. The media and sensor p rofiles produced vary in appearance from printer to printer. ® and -300 and -500 printers. Comments parameters have no effect in Stripe r2 S m2 The S This command is ignored on the HC100™ printer. is being used. end on which printer platform Maximum values for parameters dep 1/31/18 Programming Guide P1099958-001

323 ZPL Commands 323 ^ST Set Date and Time (for Real-Time Clock) ^ST – The command sets the date and time of the Real-Time Clock. ^ST Format: ^STa,b,c,d,e,f,g Parameters Details a = month Values: 01 to 12 Default: current month b = day to 01 Values: 31 current day Default: c = year 1998 Values: 2097 to Default: current year hour d = 23 Values: 00 to current hour Default: e = minute Values: to 59 00 Default: current minute f = second 59 to Values: 00 Default: current second format g = Values: A = a.m. P = p.m. 24-hour military M = Default: M on page 1375 For more details on se t date and time, see Real Time Clock . 1/31/18 Programming Guide P1099958-001

324 ZPL Commands 324 ^SX ^SX – Set ZebraNet Alert The ^SX command is used to configur e the ZebraNet Alert System. Format: ^SXa,b,c,d,e,f The values in this tab le apply to firmware version V48.12.4 or later. Note • Details Parameters condition type a = Values: A = paper out B = ribbon out C = printhead over-temp printhead under-temp D = E = head open F = power supply over-temp G = ribbon-in warning (Direct Thermal Mode) H = rewind full I = cut error J = printer paused K = PQ job completed L = label ready M = head element out N = ZBI (Zebra BASIC Interpreter) runtime error O = ZBI (Zebra BASIC Inte rpreter) forced error power on P = Q = clean printhead R = media low ribbon low S = T = replace head U = battery low V = RFID error (in RFID printers only) * = all errors Default: if the parameter is missing or invalid, the command is ignored b = destination for Values: A = serial port route alert B* = parallel port C = e-mail address D = TCP/IP UDP/IP E = F = SNMP trap Default: If this parameter is missing or invalid, the command is ignored . Requires * bidirectional communication. c = enable condition Values: no N = set alert to yes Y = this destination or previously configured value Y Values: Programming Guide P1099958-001 1/31/18

325 ZPL Commands 325 ^SX Parameters Details enable condition d = Values: N = no clear alert to Y = yes this destination N or previously configured value Values: f and e Parameters he sub-options are are sub-options bas ed on destination. If t missing or invalid, thes are ignored. e parameters destination e = Values: Internet e-mail address (e.g. [email protected]) setting IP address (for example, 10.1.2.123) SNMP trap IP or IPX addresses f = port number Values: TCP port # ( ) 65535 0 to UPD port # ( 0 65535 to ) This is an example send for the condition ) destinations that you can b Example: of the different ( ): a type ( ^SXA,A,Y,Y Serial: Parallel: ^SXA,B,Y,Y E-Mail: ^SXA,C,Y,Y,[email protected] ^SXA,D,Y,Y,123.45.67.89,1234 TCP: ^SXA,E,Y,Y,123.45.67.89,1234 UDP: SNMP Trap: ^SXA,F,Y,Y,255.255.255.255 Comments In the example above for SNMP Trap, entering 255.255.255.255 br oadcasts the notification to every SNMP manager on the network. To route the device to a single SNMP manager, enter a specifi c address (123.45.67.89). 1/31/18 Programming Guide P1099958-001

326 ZPL Commands 326 ^SZ ^SZ – Set ZPL Mode The ^SZ command is used to select the pr ogramming language used by the printer. This command gives you the ability to print labels formatted in both ZPL and ZPL II. This command remains a ctive until another inter or the printer is command is sent to the pr ^SZ turned off. Format: ^SZa Details Parameters ZPL version a = Values: 1 = ZPL 2 = ZPL II 2 Default: invalid, the command is ignored. If the parameter is missing or Comments Programming Guide P1099958-001 1/31/18

327 ZPL Commands 327 ~TA ~TA – Tear-off Adjust Position The ~TA command lets you adju st the rest position of the media after a label is printed, which changes the position at which the label is torn or cut. Format: ~TA### acts about this command: These are some important f Important • For 600 dpi printers, t • he step size doubles. • If the number of characters is less than 3, the command is ignored. Parameters Details ### = change in media Values: –120 120 to rest position 0 (on the HC100) to 120 (3-digit value in dot rows must Default: last permanent value saved be used.) If the parameter is missing or Comments invalid, the command is ignored. 1/31/18 Programming Guide P1099958-001

328 ZPL Commands 328 ^TB ^TB – Text Blocks This command is available only for printers with firmware versi on V60.14.x, V50.14.x, or later. text block has an automatic command prints a text block with defined width and height. The ^TB The xceeds the block height, the t ext is truncated. This command word-wrap function. If the text e supports complex text layout features. locks of text ields or b mmand for printing f is the preferred co ^FB , instead of ^TB . Note • Format: ^TBa,b,c Details Parameters block rotation a = Values: normal N = rotate 90 degrees clockwise R = I = invert 180 degrees B = read from bottom up-270 degrees ^FW (which has the default of Default: ^A ied by the last whatever was specif ) b = block width in Values: to the width of the label in dots 1 dots 1 dot Default: block height in c = Values: to the length of the label in dots 1 dots 1 dot Default: Comments Facts about the ^TB command: , or ^FN command. If no ^FO, ^FT command comes from ^TB • Justification of justification is determined then the default is auto justificat ion. • Data between < and > is processed as an escape sequence; for e xample, will print . < <<> ^TB ot print command has an automatic word-wrap function. Soft hyphens do n •The and are not used as a line break position. P1099958-001 1/31/18 Programming Guide

329 ZPL Commands 329 ^TO Transfer Object ^TO – ^TO command is used to copy an object or group of objects from one storage device to another. The It is similar to the cop y function used in PCs. Source and destination devices mus t be supplied and must be dif ferent and valid for the action ameters cause the co mmand to be ignored. specified. Invalid par The asterisk (*) can be used as a wild card for object names an d extensions. For instance, ZEBRA.* .GRF are acceptable forms for use with the ^TO command. or * ) must be d o , or x ) and one destination parameter ( s , o , or x , At least one source parameter ( ^TO is entered, the co mmand is ignored. specified. If only Format: ^TOs:o.x,d:o.x Details Parameters source device of s = E: A: R: Values: , and B: , , stored object if a drive is not specified, a Default: ll objects are transferred to the drive set in s parameter o = stored object any existing object conformi ng to Zebra conventions Values: name d Default: if a name is not specified, * is used — all objects are selecte extension x = to Zebra conventions Values: any extension conforming e selected * is used — all extensions ar Default: if an extension is not specified, destination d = B: Values: R: , E: , A: , and device of the Default: a destination mu st be specified stored object o = name of the Values: up to 8 alphanumeric characters object at Default: if a name is not specified, the used name of the existing object is destination extension x = to Zebra conventions any extension conforming Values: the extension of the existing Default: if an extension is not specified, object is used , and x , o Parameters support the use of the wild card (*). Comments s ore the object being copied, the not have enough free space to st If the destination device does command is canceled. Z:*.* ) cannot be transferred. The se files are copyrighted by Zebra files ( Zebra Technologies. Transferring Objects command. les of using the ^TO These are some examp Example 1: To copy the object ZLOGO.GRF from DRAM to an optional Memory Card and ZLOGO1.GRF , write the following format: rename it ^XA ^TOR:ZLOGO.GRF,B:ZLOGO1.GRF ^XZ Programming Guide P1099958-001 1/31/18

330 ZPL Commands 330 ^TO from an optional Memory Card to DRAM SAMPLE.GRF To copy the object Example 2: , write this format: and keep the same name XA ^ ^TOB:SAMPLE.GRF,R:SAMPLE.GRF ^XZ Transferring Multiple Objects *.FNT ltiple object files (except ) can be used to transfer mu * The asterisk ( ) from DRAM to the Memory Card. For example, assume you have several object files that contain logos. These files are . LOGO3.GRF , and LOGO2.GRF , LOGO1.GRF named EW instead of LOGO, place an To transfer all these files to t he memory card using the name N OGO in the transfer command. This copies all files beginning asterisk after the names NEW and L with LOGO in one command. ^XA ^TOR:LOGO*.GRF,B:NEW*.GRF ^XZ fer, if a file is too t file is skipped. All big to be stored o n the memory card, tha During a multiple trans ace limitations are e stored within the sp ll files that can b t to be transferred. A remaining files attemp transferred, while other files are ignored. 1/31/18 Programming Guide P1099958-001

331 ZPL Commands 331 ~WC ~WC – Print Configuration Label printer configuration label ~WC command is used to ge nerate a printer conf iguration label. The The about the printer set pe, network ID, ZPL mode, firmware up, such as sensor ty contains information E: , devices. A: R: , , and B: tive data on the version, and descrip Format: ~WC Comments This command works only when the printer is idle. Programming Guide 1/31/18 P1099958-001

332 ZPL Commands 332 ^WD ^WD – Print Directory Label ^WD command is used to print a label listing bar codes, objects st ored in DRAM, or fonts. The ts, the list shows the name of the font, For bar codes, the list shows the name of the bar code. For fon ^A command, and size. For objects stored in DRAM, the list shows the name the number to use with of the object, extension, size, and option flags. All lists are enclosed in a double-line box. Format: ^WDd:o.x Parameters Details d = source device — Z: and A: Values: R: , E: , B: , optional Default: R: o = object name — alphanumeric characters 8 Values: 1 to optional Default: * (question mark) is also allowed. ? The use of a x = extension — to Zebra conventions any extension conforming Values: font .FNT = optional bar code .BAR = stored ZPL format .ZPL = GRF graphic .GRF = memory cache .CO = font encoding .DAT = ZBI encrypted program .BAS = ZBI encrypted program .BAE = .STO = data storage are only and .TTE .TTF .PNG = PNG graphic supported in firmware version V60.14.x, V50.14.x, * = all objects or later. . TTF = TrueType Font .TTE = True Type Extension * Default: The use of a ? (question mark) is also allowed. Example 1: To print a label listing all objects in DRAM, enter: ^XA ^WDR:*.* ^XZ Example 2: To print a label listing all resident bar codes, enter: ^XA ^WDZ:*.BAR ^XZ Example 3: To print a label listing all resident fonts, enter: ^XA ^WDZ:*.FNT ^XZ Programming Guide 1/31/18 P1099958-001

333 ZPL Commands 333 ~WQ ~WQ – Write Query The command triggers the printer to print a label with odometer, m aintenance or alert, and ~WQ printhead history information. Supported Devices • Xi4 with firmware V53.17.1Z or later • RXi4 with firmware V53.17.7Z or later • ZM400/ZM600 with firmware V53.15.xZ or later • RZ400/RZ600 with firmwar e R53.15.xZ or later • S4M with firmware V53.15.4Z or later •G-Series Format: ~WQquery-type Details Parameter query-type ~WQ Examples on page 334 . For detailed examples of these parameters, see Values: ES = requests the printer’s status. For details see, Table17 onpage333 and Table18 onpage334 . HA = hardware address of the int ernal wired print server JT = requests a summary of the prin ter’s printhead test results MA = maintenance alert settings MI = maintenance information odometer OD = printhead life history PH = PP = printer’s Plug and Play string printer’s serial number SN = UI = printer’s USB product ID and BCD release version must be an accepted value or the command is ignored Default: Table 17 • Error Flags (~WQES) Group 2 Group 1 (X = Value can be any hexadecimal number [0-9, A- F]) Error Flags Flag Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibbles16-9 7 4 8 3 6 2 5 1 No Error 00000000000000000 Error Present 100000000XXXXXXXX Printhead Thermistor Open100000000XXXXX2XX Invalid Firmware Config. 100000000XXXXX1XX Printhead Detection Error100000000XXXXXX8X Bad Printhead Element 100000000XXXXXX4X Motor Over Temperature100000000XXXXXX2X Printhead Over Temperature100000000XXXXXX1X Cutter Fault 100000000XXXXXXX8 Head Open 100000000XXXXXXX4 ab. This error flag is supporte d only on KR403 printers. Programming Guide 1/31/18 P1099958-001

334 ZPL Commands 334 ~WQ Table 17 • Error Flags (~WQES) (Continued) F]) Group 1 (X = Value can be any hexadecimal number [0-9, A- Group 2 Flag Error Flags Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibbles16-9 5 1 6 3 7 4 8 2 100000000XXXXXXX2 Ribbon Out 100000000XXXXXXX1 Media Out ab ab ab 1 00000000XXXX8 XXX Clear Paper Path Failed ab ab ab 1 00000000XXXX4 XXX Paper Feed Error ab ab ab 00000000XXXX2 1 XXX Presenter Not Running ab ab ab 00000000XXXX1 XXX 1 Paper Jam during Retract ab ab ab 00000000 X X X 8 XXXX 1 Black Mark not Found ab ab 1 XXXX 00000000 X X X 4 Black Mark Calabrate Error ab ab ab Retract Function timed out XXXX 00000000 X X X 2 1 ab ab ab ab Paused XXXX 00000000 X X X 1 1 This error flag is supporte ab. d only on KR403 printers. Table 18 • Warning Flags (~WQES) Group 2 Group 1 (X = Value can be any hexadecimal number [0-9, A- F]) Error Flags Flag Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibble Nibbles16-9 6 7 4 8 3 5 2 1 00000000000000000 No Warning Warning Present 100000000XXXXXXXX ac ac ac Paper-near-end Sensor 1 00000000XXXXXXX8 Replace Printhead 100000000XXXXXXX4 100000000XXXXXXX2 Clean Printhead Need to Calibrate Media 100000000XXXXXXX1 ac ac 1 X 00000000XXXXXX1 Sensor 1 (Paper before head) ac ac ac ac Sensor 2 (Black mark) 00000000XXXXXX2 X 1 ac ac ac X 00000000XXXXXX4 1 Sensor 3 (Paper after head) ac ac ac 00000000XXXXXX8 1 X Sensor 4 (loop ready) ac ac ac 1 00000000XXXXX1 XX Sensor 5 (presenter) ac ac ac 1 00000000XXXXX2 XX Sensor 6 (retract ready) ac ac ac 1 XX 00000000XXXXX4 Sensor 7 (in retract) ac ac ac 1 00000000XXXXX8 XX Sensor 8 (at bin) This error flag is supported only on KR403 printers. ac. ~WQ Examples amples of all the available pa This section provides detailed ex rameters. P1099958-001 Programming Guide 1/31/18

335 ZPL Commands 335 ~WQ Example 1: This example shows how to request the printer’s status. ~WQES 1. To request the printer’s status, type A label similar to this prints out: s: tus resolves to these condition In this example, the Printer Sta • The cover/printhead is open (value = 4). • Media is out or not loaded in to the printer (value = 1). be cleaned (value = 2). • The printhead needs to • the error status values are a dded together (4+1). Error nibble 1 is equal to 5 when printer status This illustration identifies the definitions: 6 4 2 5 3 1 Flag 1 Nibble 16-9 2 Nibble 8-4 3 Nibble 3 4 Nibble 2 5 Nibble 1 6 This example shows how to request the printer’s status. Example 2: 1. ~WQES To request the printer’s status, type A label similar to this prints out: Printer Status resolves to the following conditions: In the example shown above, the 8 ). • The cutter has a fault. (value = 2 ). • Ribbon is out or not loaded in to the printer (value = • Media is out or not loaded into the printer (value = 1 ). when the error status values are added together • Error byte 1 is equal to B ). 8 + 2 + 1 = hexadecimal B ( Programming Guide 1/31/18 P1099958-001

336 ZPL Commands 336 ~WQ Example 3: This is an example of how to pri nt the hardware address of the internal wired print server. the internal wired print serve ~WQHA 1. To print the hardware address of r, type A label similar to this prints out: Example 4: This is an example of how to print a summary of the printer’s p rinthead test results. interval, and s et the element The ^JT command is used to initiate pri nthead testing, s et the testing ^JT range to be tested. For more details see, . on page 248 1. To request a summary of the printer’s printhead test, type ~WQJT A label similar to this prints out: When the printer has printed enough labels to trigger a printhe ad test, the initial data changes. To request a summary of the printer’s printhead test, type ~WQJT 1. A label similar to this prints out: ns: printhead test field definitio This illustration identifies the 4 3 1 5 2 Element failure 1 Manual (M) or automatic (A) range 2 First test element 3 Last test element 4 Failure count 5 Programming Guide 1/31/18 P1099958-001

337 ZPL Commands 337 ~WQ Example 5: This is an example of how to print the maintenance alert query for the ~WQ command. ~WQMA To get the current settings, type 1. A label similar to this prints out: ~WQ Example 6: This is an example of how to use the odometer query for the command. Note ^MA command. Also, if the "Early Warning that the units of measur e are controlled by the so list LAST CLEANED and Maintenance State" is turned "ON" the printer response would al CURRENT PRINTHEAD LIFE counters. To get the current settings, type ~WQOD 1. A label similar to this prints out: The units of measure are set to inches. 1. To change the units of measure to centimeters, type: ^XA^MA,,,,C ^XZ The units of measure are set to centimeters. 2. To check the settings, type . ~WQOD A label similar to this prints out: query for the Example 7: This is an example of how to print the maintenance information ~WQ command. Note that the message is controlled by the ^MI command. To get the current settings, type ~WQMI 1. A label similar to this prints out: Programming Guide 1/31/18 P1099958-001

338 ZPL Commands 338 ~WQ ~WQ command. Example 8: This is an example of how to print the printhead life query for the ^MA command. Note that the units of measure are controlled by the 1. To get the current settings, type ~WQPH A label similar to this prints out: 1 2 The current life of the print head. 1 Line items 2 through 10 (the exa mple only shows 2 through 3) 2 tracks the measurement for each time the print head is changed. This is an example of how to print the printer’s Plug and Play string. Example 9: 1. To print the printer’s Plug and Play string, type ~WQPP A label similar to this prints out: This is an example of how to pri Example 10: nt the printer’s serial number. ~WQSN To get the printer’s serial number, type 1. A label similar to this prints out: and BCD release Example 11: This is an example of how to print the printer’s USB product ID version. 1. To print the printer’s USB product ID and BCD release version, type ~WQUI A label similar to this prints out: Programming Guide P1099958-001 1/31/18

339 ZPL Commands 339 ^XA ^XA – Start Format command is used at the beginni ning bracket and indicates ng of ZPL II code. It is the ope The ^XA the start of a new label format. This command is substituted wi th a single ASCII control character STX (control-B, hexadecimal 02). Format: ^XA Comments Valid ZPL II format requires that label formats should start wi th the ^XA command. ^XZ command and end with the Programming Guide 1/31/18 P1099958-001

340 ZPL Commands 340 ^XB ^XB – Suppress Backfeed command suppresses forward feed depending on the current The ^XB of media to tear-off position printer mode. Because no forward feed occurs, a backfeed before printing of the n ext label is not abels, the last l abel should not necessary; this improves through put. When printing a batch of l contain this command. Format: ^XB ^XB in the Tear-off Mode Normal Operation: backfeed, print, and feed to rest print (Rewind Mode) ^XB Operation: ^XB in Peel-off Mode Normal Operation: backfeed, print, and feed to rest ^XB Operation: print (Rewind Mode) Note • To prevent jamming in cutter mode, suppresses backfeed and cutting. ^XB Programming Guide P1099958-001 1/31/18

341 ZPL Commands 341 ^XF Recall Format ^XF – ^XF at to be merged with variable dat a. There can be multiple command recalls a stored form The ^XF commands in one format, and they can be located anywhere withi n the code. When recalling a stored format and merging data using the (Field Number) function, the calling ^FN ^FN command to merge the data properly. format must contain the ting time is saved. The ZPL II While using stored formats reduc es transmission time, no format that need to be s text strings formatted at print time. format being recalled is saved a Format: ^XFd:o.x Parameters Details source device of d = , and A: , B: , Values: R: E: stored image , R: E: search priority ( , ) Default: A: , and B: o = name of stored Values: 1 to 8 alphanumeric characters image if a name is not specified, UNKNOWN is used Default: x = extension l .ZPL Fixed Value: For a complete e xample of the and — Download format and and ^DF command, see ^XF ^XF ^DF on page 38 recall format . P1099958-001 Programming Guide 1/31/18

342 ZPL Commands 342 ^XG ^XG – Recall Graphic The ^XG command is used to recall one or more graphic images for print ing. This command is used in a label format to merge graphics, such as company logos and piece parts, with text data to form a complete label. each format. Other images and An image can be recalled and res ized as many times as needed in to the format. data might be added Format: ^XGd:o.x,mx,my Parameters Details source device of d = , and A: Values: R: , E: , B: stored image , B: search priority ( R: , E: Default: , and A: ) o = name of stored 8 to alphanumeric characters Values: 1 image if a name is not specified, UNKNOWN is used Default: extension l Fixed Value: .GRF x = mx = magnification to Values: 1 10 factor on the x- Default: 1 axis my = magnification Values: to 1 10 factor on the y- Default: 1 axis from This is an example of using the ^XG command to recall the image SAMPLE.GRF Example: DRAM and print it in five differ ent sizes in five different loc ations on the same label: ^XA ^FO100,100^XGR:SAMPLE.GRF,1,1^FS ^FO100,200^XGR:SAMPLE.GRF,2,2^FS ^FO100,300^XGR:SAMPLE.GRF,3,3^FS ^FO100,400^XGR:SAMPLE.GRF,4,4^FS ^FO100,500^XGR:SAMPLE.GRF,5,5^FS ^XZ Programming Guide P1099958-001 1/31/18

343 ZPL Commands 343 ^XS ^XS – Set Dynamic Media Calibration The ^XS command controls whether dynam ic media calibration is performe d to compensate for flectance after a prin variations in label l ter is powered-up or ength, position, trans missivity, and/or re the printer has been opened (for example to change or check the media). Supported Devices •G-Series Format: ^XSlength,threshold Parameters Details dynamic length = Values: length calibration enable Y = N = disable Default: Y threshold = Values: dynamic threshold Y = enable calibration N = disable Y Default: gain = dynamic gain Values: calibration enable Y = (to be in a future disable N = implementation) Default: Y Programming Guide 1/31/18 P1099958-001

344 ZPL Commands 344 ^XZ ^XZ – End Format The ^XZ command is the ending (closi ng) bracket. It indicates the end of a label format. When this command is received, a label print ssued as a single ASCII control can also be i s. This command character ETX (Control- C, hexadecimal 03). Format: ^XZ Comments ^XZ Label formats must start with the ^XA command and end with the command to be in valid ZPL II format. Programming Guide P1099958-001 1/31/18

345 ZPL Commands 345 ^ZZ ^ZZ – Printer Sleep in an idle or shutdown mode. The ^ZZ command places the printer Format: ^ZZt,b Parameters Details t = number of second – setting 999999 to 0 Values: 0 disables automatic shutdown (idle time) Default: last permanently saved value or 0 prior to shutdown label status at b = Values: en labels are still queued indicates to shutdown wh Y = shutdown printed before shutting down indicates all labels must be N = Default: N ^ZZ 400 and PT400 battery-powered Comments The command is only valid on the PA printers. 1/31/18 Programming Guide P1099958-001

346 ZPL Commands 346 ^ZZ P1099958-001 Programming Guide 1/31/18

347 ZPL RFID Commands This section contains the ZPL II c ommands for RFID-specific appl ications. For additional information, refer to the RFID Programming Guide for your printer. A copy is available http://www.zebra.com/manuals . on the User CD prov ided with your print er and online at Programming Guide P1099958-001 1/31/18

348 ZPL RFID Commands 348 RFID Command Overview RFID Command Overview In addition to reading or encoding RFID tags, the RFID ZPL comm ands also provide for RFID exception handling, such as setti ng the number of read/write re tries before declar ing a transponder ^RR , ^RT , and ttempted if an ) or setting the number of label s that will be a ^WT defective (set with ^RS ). error occurs (set with For example, if an RFID label fails to program correctly or if the transponder cannot be detected, the oss it. The printer printer ejects the labe nother label with the will try to print a l and prints VOID acr ^RS command. If the problem same data and format for the num ber of RFID labels specified by the command: the printer ^RS persists, the printer follows t he error handling instructions s pecified by the may remove the problematic fo eed with the next format (if one rmat from the print queue and proc exists in the buffer), or it may place the printer in Pause or Error mode. If a parameter i s designated as not applicable for a particular printer, any value entered for the parameter will be ignored, but the place holder for the field i s required. Programming Guide P1099958-001 1/31/18

349 ZPL RFID Commands 349 Printer and Firmware Compatibility Printer and Firmware Compatibility Before using a particular command, verify that it is compatible with your printer and firmware version. See the following tables: • Table 19, ZD500R Series Printer Command and Firmware Compatibility on page 349 RXi Series Printer Command and Firmware Compatibility • Table 20, onpage350 Table 21, RZ Series and R110PAX4 Printer Command and Firmware Compatibility on page 351 • R4Mplus, RP4T, and R2844-Z Printer • Table 22, Command and Firmware Compatibility on page 352 lity Table 19 • ZD500R Series Printer Command and Firmware Compatibi ZD500R Function Command Firmware all * Return RFID Data Log to Host ^HL or ~HL onpage353 * ^HR onpage354 Calibrate RFID Tag Position * onpage212 Host Verification ^HV — onpage361 Read AFI or DSFID Byte ^RA * onpage362 ^RB Define EPC Data Structure — ^RE onpage364 Enable/Disable E.A.S. Bit * Read or Write RFID Format ^RF onpage365 — onpage369 ^RI Get RFID Tag ID * onpage370 ^RL Lock/Unlock RFID Tag Memory — Enable RFID Motion onpage372 ^RM — onpage373 Detect Multiple RFID Tags in Encoding Field ^RN * Reset Advanced Counters ~RO onpage305 — onpage374 ^RQ Quick Write EPC Data and Passwords — onpage376 Specify RFID Retries for a Block or Enable Adaptive Antenna Sel ^RR ection * ^RS onpage378 Set Up RFID Parameters — ^RT onpage383 Read RFID Tag * ^RU onpage385 Read Unique RFID Chip Serialization — onpage387 Report RFID Encoding Results ~RV * ^RW onpage388 Set RF Power Levels for Read and Write — onpage392 ^RZ Set RFID Tag Password and Lock Tag — ^WF onpage395 Encode AFI or DSFID Byte — onpage396 Write (Encode) Tag ^WT — ^WV onpage398 Verify RFID Encoding Operation * = Supported — = Not supported d. a. Use the ^RF, ^RM, and ^RR commands rather than the ^RT comman b. Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT c ommand. Programming Guide 1/31/18 P1099958-001

350 ZPL RFID Commands 350 Printer and Firmware Compatibility Table 20 • RXi Series Printer Command and Firmware Compatibilit y Xi HF Xi Xi R110 R110Xi4 R110 and R170 Function Command Firmware all all all *** Return RFID Data Log to Host ^HL or ~HL onpage353 *** ^HR onpage354 Calibrate RFID Tag Position —*— ^RA Read AFI or DSFID Byte onpage361 *** onpage362 ^RB Define EPC Data Structure —*— onpage364 Enable/Disable E.A.S. Bit ^RE *** ^RF onpage365 Read or Write RFID Format *** onpage369 Get RFID Tag ID ^RI (R60.13.0.13ZD or later) ——— ^RL onpage370 Lock/Unlock RFID Tag Memory *** ^RM onpage372 Enable RFID Motion * * * ^RN onpage373 Detect Multiple RFID T ags in Encoding Field (R60.13.0.3 or later) *** onpage305 Reset Advanced Counters ~RO *—* Quick Write EPC Data and Passwords ^RQ onpage374 (R60.15.7Z or later) *** onpage376 Specify RFID Retries for a Block or Enable Adaptive ^RR Antenna Selection *** ^RS onpage378 Set Up RFID Parameters —* a* a ^RT onpage383 Read RFID Tag ——— ^RU onpage385 Read Unique RFID Chip Serialization *—* ~RV onpage387 Report RFID Encoding Results *** Set RF Power Levels for Read and Write onpage388 ^RW *—* ^RZ onpage392 Set RFID Tag Password and Lock Tag —*— onpage395 Encode AFI or DSFID Byte ^WF —* b* b ^WT onpage396 Write (Encode) Tag ——* ^WV onpage398 Verify RFID Encoding Operation * = Supported — = Not supported d. a. Use the ^RF, ^RM, and ^RR commands rather than the ^RT comman ommand. b. Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT c Programming Guide P1099958-001 1/31/18

351 ZPL RFID Commands 351 Printer and Firmware Compatibility PAX Table 21 • RZ Series and R110 4 Printer Command and Firmware Compatibility 4 PAX R110 RZ400 and RZ600 Function Command Firmware X X X or later R62.X. R63.X. R53.16. V53.17.7Z ** * * Return RFID Data Log to Host ^HL or ~HL onpage353 ** * * Calibrate RFID Tag Position ^HR onpage354 —— — — Read AFI or DSFID Byte ^RA onpage361 * ** * onpage362 ^RB Define EPC Data Structure —— — — ^RE onpage364 Enable/Disable E.A.S. Bit * ** * Read or Write RFID Format onpage365 ^RF * * ^RI onpage369 Get RFID Tag ID * * (R62.13.0.13ZC (R63.13.0.11Z or later) or later) — —— — Lock/Unlock RFID Tag Memory onpage370 ^RL ** ^RM onpage372 Enable RFID Motion * * *— * * ^RN onpage373 Detect Multiple RFID Tag s in Encoding Field ** Reset Advanced Counters * ~RO onpage305 * — Quick Write EPC Data and Passwords onpage374 * * ^RQ * (R62.15.7Z orlater) * ** * Specify RFID Retries for a Block or Enable Adaptive ^RR onpage376 Antenna Selection ** * * ^RS onpage378 Set Up RFID Parameters * a * a * a * a Read RFID Tag onpage383 ^RT —— — — ^RU onpage385 Read Unique RFID Chip Serialization ** * * onpage387 Report RFID Encoding Results ~RV * ** * Set RF Power Levels for Read and Write ^RW onpage388 ** * * ^RZ onpage392 Set RFID Tag Password and Lock Tag — —— — ^WF onpage395 Encode AFI or DSFID Byte * b * b * b * b onpage396 Write (Encode) Tag ^WT ** * * Verify RFID Encoding Operation ^WV onpage398 * = Supported — = Not supported d. a. Use the ^RF, ^RM, and ^RR commands rather than the ^RT comman ommand. b. Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT c c. For parameter e, the only accepted value is N for No Action. Programming Guide 1/31/18 P1099958-001

352 ZPL RFID Commands 352 Printer and Firmware Compatibility are Compatibility R2844-Z Printer Command and Firmw Table 22 • R4Mplus, RP4T, and RP4T R2844-Z R4Mplus Firmware Command Function X X X X all all SP999 SP994 SP1027 SP1056X SP1082 * * ****— ^HL or ~HL Return RFID Data Log to Host onpage353 * * ****— ^HR onpage354 Calibrate RFID Tag Position — — ————— Read AFI or DSFID Byte onpage361 ^RA * * ****— Define EPC Data Structure onpage362 ^RB — — ————* onpage364 Enable/Disable E.A.S. Bit ^RE * * ****— ^RF Read or Write RFID Format onpage365 ***** * ^RI onpage369 Get RFID Tag ID * ^RL onpage370 Lock/Unlock RFID Tag Memory — ***** * onpage372 Enable RFID Motion ^RM — — ——— — Detect Multiple RFID T onpage373 ags in Encoding Field ^RN * — ***** Reset Advanced Counters * onpage305 ~RO — — ——— — * ^RQ onpage374 Quick Write EPC Data and Passwords * * ****— onpage376 Specify RFID Retries for a Block or Enable Adaptive ^RR Antenna Selection ****** c* ^RS onpage378 Set Up RFID Parameters * a * a * a * a * a * a * ^RT onpage383 Read RFID Tag — — ————— ^RU onpage385 Read Unique RFID Chip Serialization * * ****— onpage387 Report RFID Encoding Results ~RV (SP994J (SP999C or or later) later) * * ****— ^RW onpage388 Set RF Power Levels for Read and Write * * ****— ^RZ onpage392 Set RFID Tag Password and Lock Tag — — ————— Encode AFI or DSFID Byte ^WF onpage395 * b * b * b * b * b * * b onpage396 Write (Encode) Tag ^WT * * ****— onpage398 Verify RFID Encoding Operation ^WV * = Supported — = Not supported a. Use the ^RF, ^RM, and ^RR commands rather than the ^RT comman d. b. Use the ^RF, ^RM, ^RR, and ^WV commands rather than the ^WT c ommand. c. For parameter e, the only accepted value is N for No Action. P1099958-001 Programming Guide 1/31/18

353 ZPL RFID Commands 353 ^HL or ~HL ^HL or ~HL – Return RFID Data Log to Host nter’s RAM. This command requests data and stores it in the pri The printer continually logs RFID og be returned to the host computer, to cle ar the current data log, and to restart that the RFID data l command is processed immediately, while the ^HL command is processed ~HL data recording. The ... ^XZ ) have been processed. ^XA after all of the pr evious formats ( or ~HL ^HL Format: In the log, RFI D data displays in this format: [RFID operation],[program position],[antenna element], [read or write power],[RFID status],[data] where [RFID operation] R = read W = write L = lock = RFID settings S =logfilereset E [program position],[antenna element],[read or write power] * Additional information about the program position, the antenna, and the read or write power follows the RFID operation. Such as: R,F1,D3,27,00000000,DATA 27 = the antenna, and F1 where is the write power. = the program position, D3 * With some older versions of fi display. rmware, these parameters do not [RFID status] or ######## = an RFID error code (See the RFID Programming Guide for your #### printer for more information on error codes. A copy of the manu al is located on the User CD that came with your prin ter, or you can download a copy from http://www.zebra.com/manuals. ) RPWR = read power WPWR = write power = antenna ANT PPOS =program position (or limited to length FFFF for some printers) = indi cates that the log file FFFFFFFF was reset [data] the data read or written Comments • Data is shown in the f ormat specified by the ^RFW command (ASCII, Hex, or EPC). • If the log exceeds 64K (approx imately 1500 oper ations), the da ta log is cleared automatically, and data recording restarts. W hen this happens, the following a ppears in the log: E,FFFFFFFF,Logfile automatically reset log is lost. If the log result s are important to you, retrieve the • If the printer loses power, the information frequently. Programming Guide 1/31/18 P1099958-001

354 ZPL RFID Commands 354 ^HR ^HR – Calibrate RFID Tag Position Use this command to initiate t ring the tag calibration process ag calibration for RFID media. Du (which can take up to 5 minutes on some printers, depending on the type of RFID inlay and the label mine chip type, ca librates the RFID s the media, reads the tag’s TID to deter size) the printer move ptimal settings for the RFID media being used. Depending on the tag position, and determines the o ntenna element to use, and the printer, these settings include the programming position, the a read/write power level to use. Consider the following before using this command: Important • Printer and Firmware all printers or firmware. See This command is not supported by • for the list of printers and fi onpage349 his Compatibility rmware with which you can use t command. • For the R110Xi4 and ZD500R pri ore and after the tag that is nters, leave all transponders bef being calibrated. This allows the tings which do not encode the printer to determine RFID set of the printer to allow for backfeed adjacent tag. Allow a portion of media to extend out the front ration procedure. during the tag calib ion for RFID media that meets • With some printers, you should not perform transponder calibrat se doing so will slow the cations for your printer becau the transponder placement specifi RFID printer’s throughput unnecessarily. For more information about tag calibration, refer to the Programming Guide for your printer. A copy of the manual is located on the User CD that came http://www.zebra.com/manuals . with your printer, or you c an download a copy from tag calibration are returned "run" ^HR option in the to the host computer. The Results of the a rfid.tag.calibrate calibration but does not create SGD command performs the same results table. option in the "restore" at any ti ng position To restore the printer me, use the ’s default programmi on page 887 rfid.tag.calibrate rfid.tag.calibrate SGD command (see ). Format: ^HRa,b,c,d,e Details Parameters This parameter specifies the use r text to appear before the res ults table. = start string a Values: any string less th an 65 characters Default: start This parameter specifies the use r text to appear after the resu lts table. b = end string any string less th Values: an 65 characters Default: end Programming Guide 1/31/18 P1099958-001

355 ZPL RFID Commands 355 ^HR Parameters Details rt position of the calibration range. All numeric This parameter specifies the sta c = start position ume that the label's values are in millimeters. Forward or backward designations ass leading edge at the print line. initial position is with the Values: F0 to Fxxx (where xxx Forward: is the label length in millimeters or 999, whichever is less) and The printer feeds the label forward for the specified distance then begins transponder calibration. B0 to B30 (Not valid on the RP4T printer.) Backward: The printer backfeeds the label for the specified distance and then begins transponder calibration. Allow at least 1.25in. (32 mm) of of the front of the printer. empty media liner to extend out Default: B20 —The printer backfeeds 20 mm before For the R110Xi4 and ZD500R: starting transponder calibration. —The printer backfeeds 30 mm B30 For the ZT400 with RFID option: before starting transponder calibration. F0 —The printer moves the media to the For all other supported printers: start position relative to the l eading edge of the label and th en performs the RFID tag calibration. nge (last program This parameter specifies the end position of the calibration ra d = end position position to check). All numeric va ard or backward lues are in millimeters. Forw designations assume that the label' s initial posi tion is with t he leading edge at the print line. Values: F0 to Fxxx (where xxx is the label length in millimeters or 999, Forward: whichever is less) The printer performs transponder he calibration until it reaches t specified end position and then ends the process. (Not valid on the RP4T printer.) B0 to B30 Backward: The printer performs transponder calibration until it reaches t he specified end position and then ends the process. Valid only wi th a backward start position that is greater than the end position. A = Automatic (Valid only on the R110Xi4 and ZD500R printers.) The printer automatically ends the transponder calibration proc ess after successfully reading and encoding a consecutive range of 5mm on the label. The ZD500R als o ensures that no other tags ca n be programmed at the programming positiion with the calibration - determined power levels. Default: A For the R110Xi4 and ZD500R: For all other supported printers: Label length as shown on the printer configuration label Programming Guide 1/31/18 P1099958-001

356 ZPL RFID Commands 356 ^HR Parameters Details e = antenna and Note • read/write power printers. • This parameter is valid only on the R110Xi4, ZD500R, and ZT400 level detection • The ZD500R printer has only one antenna, so this parameter appl ies only to the read/write po wer level settings. /write This parameter specif ies whether to selec t the antenna and read ally or manually. power levels automatic Values: A = Automatic. The printer automati cally scans through the antenna s and read/write power during calibration. M = Manual. The printer uses the current antenna and read/write po wer level settings. Default: A Programming Guide P1099958-001 1/31/18

357 ZPL RFID Commands 357 ^HR nd is sent to Example 1: When the printer is using Absolute mode and the following comma the printer: ^XA^HR^XZ the printer starts the transpond er calibration and returns a re sults table such as the following: start position=195 215, , 214, , 213, , 212, , 211, , 210, ,W 209,R, 208, , 207, , 206, ,W 205,R, 204, , 203, , 202, ,W 201,R,W 200,R,W 199,R,W 198,R,W 197,R,W 196,R,W 195,R,W <---**** 194,R,W 193,R,W 192,R,W 191,R,W 190,R,W 189,R, 188, , 187, , 186, , 185, , . . . end Each line in the resul ts table appears as: Row, Read Result, Write Result where Row = the dot row where calibration occurred Read Result = results of calibration (R = read, “ ” = unable to read) Write Result = results of calibration (W = write, “ ” = unable to write) ) The optimal programming position is 195. This is identified at the top of the table ( position=195 <---**** ) in the table. and with an the arrow ( Programming Guide 1/31/18 P1099958-001

358 ZPL RFID Commands 358 ^HR Example 2: When the printer is using Relative mode and the following comma nd is sent to the printer: ^HRstart,end,B20,F42,M the printer starts the tag calib ration and returns a results ta ble such as the following: start position=F0 MM leading edge B20, , B19, , B18, , B17, , ... B8, , B7, , B6, , B5, , B4,R,W B3,R,W B2,R,W B1,R,W F0,R,W<---**** F0 MM F1,R,W F2,R,W F3,R,W F4, , F5, , F6, , F7, , F8, , F9, , F10, , ... F38, , F39, , F40, , F41, , F42, , trailing edge end Each line in the resul ts table appears as: Row, Read Result, Write Result where Row = the position from the leading edge of the label where calibration occurred Read Result = results of calibration (R = read, “ ” = unable to read) Write Result = results of calibration (W = write, “ ” = unable to write) The optimal programming position is F0 (program with the leadin g edge of the label at the print line). This is identified at t he table ( he top of t position=F0 MM ) and with an the arrow ( <---**** ) in the table. command is sent to the printer , the printer performs tag Example 3: When the ^HR calibration and returns a results table such as the following: Programming Guide P1099958-001 1/31/18

359 ZPL RFID Commands 359 ^HR start position=B14 MM,A1,18,25 tid information=E200.3414:Alien leading edge Tag 1 ,Tag 2 ,Tag 3 ,Tag 4 ,Tag 5 ,Tag 1 ,Tag 2 ,Tag 3 ,Tag 4 ,Tag 5 , EPC,7109 ,BA29 ,6FD0 ,58AE ,9CDE ,7109 ,BA29 ,6FD0 ,58AE ,9CDE , B30,A1,12,18,A1,29, ,A1, , ,A1, , ,A1, , ,B1, , ,B1,17,24,B1, , ,B1, , ,B1, , , B29,A1,13,18,A1,25, ,A1, , ,A1, , ,A1, , ,B1, , ,B1,14,19,B1, , ,B1, , ,B1, , , B28,A1,15,20,A1,23,29,A1, , ,A1, , ,A1, , ,B1, , ,B1,09,15,B1, , ,B1, , ,B1, , , B27,A1,17,22,A1,23,29,A1, , ,A1, , ,A1, , ,B1, , ,B1,08,14,B1, , ,B1, , ,B1, , , B26,A1,19,25,A1, , ,A1, , ,A1, , ,A1, , ,B1, , ,B1,09,15,B1,28, ,B1, , ,B1, , , B25,A1,22,28,A1,22,27,A1, , ,A1, , ,A1, , ,B1, , ,B1,11,18,B1,26, ,B1, , ,B1, , , B24,A1,26, ,A1,13,19,A1, , ,A1, , ,A1, , ,B1, , ,B1,15,21,B1,27, ,B1, , ,B1, , , B23,A1, , ,A1,08,14,A1, , ,A1, , ,A1, , ,B1, , ,B1,18,24,B1, , ,B1, , ,B1, , , B22,A1, , ,A1,05,11,A1, , ,A1, , ,A1, , ,B1, , ,B1,21,28,B1,19,24,B1, , ,B1, , , B21,A1, , ,A1,05,11,A1, , ,A1, , ,A1, , ,B1, , ,B1,25, ,B1,11,17,B1, , ,B1, , , B20,A1, , ,A1,06,12,A1, , ,A1, , ,A1, , ,B1, , ,B1,30, ,B1,07,13,B1, , ,B1, , , B19,A1, , ,A1,08,15,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,05,11,B1, , ,B1, , , B18,A1, , ,A1,15,22,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,05,10,B1, , ,B1, , , B17,A1, , ,A1,22,28,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,05,11,B1, , ,B1, , , B16,A1, , ,A1,16,23,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,07,13,B1, , ,B1, , , B15,A1, , ,A1,13,19,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,13,20,B1, , ,B1, , , B14,A1, , ,A1,12,19,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,18,23,B1, , ,B1, , ,<- --****A1 B13,A1, , ,A1,14,20,A1,24,30,A1, , ,A1, , ,B1, , ,B1, , ,B1,10,16,B1, , ,B1, , , B12,A1, , ,A1,15,22,A1,22,29,A1, , ,A1, , ,B1, , ,B1, , ,B1,08,14,B1, , ,B1, , , B11,A1, , ,A1,18,25,A1,26, ,A1, , ,A1, , ,B1, , ,B1, , ,B1,08,14,B1, , ,B1, , , B10,A1, , ,A1,21,27,A1,26, ,A1, , ,A1, , ,B1, , ,B1, , ,B1,11,17,B1,26, ,B1, , , B09,A1, , ,A1,24, ,A1,15,21,A1, , ,A1, , ,B1, , ,B1, , ,B1,14,20,B1,25, ,B1, , , B08,A1, , ,A1,28, ,A1,09,15,A1, , ,A1, , ,B1, , ,B1, , ,B1,17,23,B1, , ,B1, , , B07,A1, , ,A1, , ,A1,06,11,A1, , ,A1, , ,B1, , ,B1, , ,B1,20,26,B1,27,30,B1, , , B06,A1, , ,A1, , ,A1,05,11,A1, , ,A1, , ,B1, , ,B1, , ,B1,24,30,B1,16,19,B1, , , B05,A1, , ,A1, , ,A1,05,11,A1, , ,A1, , ,B1, , ,B1, , ,B1,28, ,B1,10,14,B1, , , B04,A1, , ,A1, , ,A1,08,14,A1, , ,A1, , ,B1, , ,B1, , ,B1, , ,B1,07,11,B1, , , B03,A1, , ,A1, , ,A1,12,18,A1, , ,A1, , ,B1, , ,B1, , ,B1, , ,B1,06,11,B1, , , B02,A1, , ,A1, , ,A1,20,26,A1, , ,A1, , ,B1, , ,B1, , ,B1, , ,B1,06,10,B1, , , B01,A1, , ,A1, , ,A1,18,24,A1, , ,A1, , ,B1, , ,B1, , ,B1, , ,B1,09,13,B1, , , F00,A1, , ,A1, , ,A1,14,21,A1, , ,A1, , ,B1, , ,B1, , ,B1, , ,B1,12,17,B1, , , F01,A1, , ,A1, , ,A1,13,19,A1, , ,A1, , ,B1, , ,B1, , ,B1, , ,B1,20,25,B1, , , F02,A1, , ,A1, , ,A1,13,19,A1,27, ,A1, , ,B1, , ,B1, , ,B1, , ,B1,16,20,B1, , , F03,A1, , ,A1, , ,A1,14,21,A1,26,29,A1, , ,B1, , ,B1, , ,B1, , ,B1,11,16,B1, , , F04,A1, , ,A1, , ,A1,17,24,A1,27, ,A1, , ,B1, , ,B1, , ,B1, , ,B1,11,15,B1, , , F05,A1, , ,A1, , ,A1,19,26,A1, , ,A1, , ,B1, , ,B1, , ,B1, , ,B1,12,16,B1,25, , F06,A1, , ,A1, , ,A1,22,29,A1,23,26,A1, , ,B1, , ,B1, , ,B1, , ,B1,15,18,B1,23,28, F07,A1, , ,A1, , ,A1,26, ,A1,15,19,A1, , ,B1, , ,B1, , ,B1, , ,B1,17,22,B1,23,29, F08,A1, , ,A1, , ,A1, , ,A1,10,14,A1, , ,B1, , ,B1, , ,B1, , ,B1,20,25,B1, , , F09,A1, , ,A1, , ,A1, , ,A1,08,12,A1, , ,B1, , ,B1, , ,B1, , ,B1,24,28,B1,21,26, F10,A1, , ,A1, , ,A1, , ,A1,08,11,A1, , ,B1, , ,B1, , ,B1, , ,B1,27, ,B1,13,18, trailing edge end are numbered, and the EPC number In the results table, the tags v isible to the antenna elements that is unique to ea ch tag is displayed. Each line in the results table g ives a row numbe r followed by r eadings associated with RFID tags e that multiple tags were visible. The order that are visible at that row. Multiple values on a line indicat of the RFID tags is arbitrary. [Row],[Antenna Element],[Min Read Power],[Min Write Power], [Antenna Element],[Min Read Power],[Min Write Power] ... Programming Guide 1/31/18 P1099958-001

360 ZPL RFID Commands 360 ^HR where • ibration occurred Row = the position from the leadi ng edge of the label where cal used (the ZD500R only has A1) • Antenna Element = the antenna – 30 ) for a tag visible from that row • 0 Minimum Read Power = calibration results ( 0 – 30 ) for the same tag Minimum Write Power = • calibration results ( A1,,, ) when no tag is found. The read and write power valu es are left empty (such as (25 mm behind the print line), two RFID B25 In the sample results table for this example, at position can be read at pow er level 22 and at antenna A1. Tag 1 (EPC 7109) tags are visible to the printer ower level 22 and written to at power written to at power level 28. Tag 2 (EPC BA29) can be read at p level 27. At that position, Tag s 2 and 3 are visi ble to antenna B1 while Tag 1 is not. , Tag 2 Tag 1 Tag 3 ,Tag 4 ,Tag 5 , Tag 1 , Tag 2 , Tag 3 ,Tag 4 ,Tag 5 , , EPC, , BA29 , 6FD0 ,58AE ,9CDE , 7109 , BA29 , 6FD0 ,58AE ,9CDE , 7109 ... B25,A1,22,28,A1,22,27 B1, , , B1,11,18,B1,26 , ,B1, , ,B1, , , ,A1, , ,A1, , ,A1, , , B24,A1,26, ,A1,13,19,A1, , ,A1, , ,A1, , ,B1, , ,B1,15,21,B1,27, ,B1, , ,B1, , , B23,A1, , ,A1,08,14,A1, , ,A1, , ,A1, , ,B1, , ,B1,18,24,B1, , ,B1, , ,B1, , , B22,A1, , ,A1,05,11,A1, , ,A1, , ,A1, , ,B1, , ,B1,21,28,B1,19,24,B1, , ,B1, , , B21,A1, , ,A1,05,11,A1, , ,A1, , ,A1, , ,B1, , ,B1,25, ,B1,11,17,B1, , ,B1, , , ... At position , only Tag 2 is visib le to antenna A1. Tag 1 is no longer visib le. B23 Tag 3 , Tag 1 ,Tag 4 ,Tag 5 ,Tag 1 ,Tag 2 ,Tag 3 ,Tag 4 ,Tag 5 , , Tag 2 EPC, BA29 , 6FD0 ,58AE ,9CDE ,7109 ,BA29 ,6FD0 ,58AE ,9CDE , , 7109 ... B25,A1,22,28,A1,22,27,A1, , ,A1, , ,A1, , ,B1, , ,B1,11,18,B1,26, ,B1, , ,B1, , , B24,A1,26, ,A1,13,19,A1, , ,A1, , ,A1, , ,B1, , ,B1,15,21,B1,27, ,B1, , ,B1, , , B23,A1, , ,A1,08,14 ,A1, , ,A1, , ,A1, , ,B1, , ,B1,18,24,B1, , ,B1, , ,B1, , , B22,A1, , ,A1,05,11,A1, , ,A1, , ,A1, , ,B1, , ,B1,21,28,B1,19,24,B1, , ,B1, , , B21,A1, , ,A1,05,11,A1, , ,A1, , ,A1, , ,B1, , ,B1,25, ,B1,11,17,B1, , ,B1, , , ... At position B13 , Tag 3 (EPC 6FD0) becomes visib le to antenna A1 and can be read with at power level 24 and written to at power level 30. ,Tag 4 ,Tag 5 , Tag 1 , Tag 2 , Tag 3 ,Tag 4 ,Tag 5 , Tag 1 , Tag 2 , Tag 3 BA29 , EPC, 7109 , ,58AE ,9CDE , 6FD0 6FD0 ,58AE ,9CDE , 7109 , BA29 , ... B16,A1, , ,A1,16,23,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,07,13,B1, , ,B1, , , B15,A1, , ,A1,13,19,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,13,20,B1, , ,B1, , , B14,A1, , ,A1,12,19,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,18,23,B1, , ,B1, , ,<- --****A1 B13,A1, , ,A1,14,20,A1,24,30 ,A1, , ,A1, , ,B1, , ,B1, , ,B1,10,16,B1, , ,B1, , , ... <---**** ) in the table indicates that a valid program position and powe r levels were The arrow ( position= B14 the top of the table as found during calibration. The progr am position is identified at MM (backfeed 14 millimeters). The op timal antenna element at that position is A1. The optimal read power is 18, and the op timal write power is 25. start position=B14 MM,A1,18,25 tid information=E200.3414:Alien leading edge ... <- B14,A1, , ,A1,12,19,A1, , ,A1, , ,A1, , ,B1, , ,B1, , ,B1,18,23,B1, , ,B1, , , --****A1 ... Programming Guide P1099958-001 1/31/18

361 ZPL RFID Commands 361 ^RA Read AFI or DSFID Byte ^RA – all printers or firmware. See This command is not supported by Important • Printer and for the list of printers and firmware with which you can onpage349 Firmware Compatibility use this command. ^HV returned to the host via the ata can be yte. The d ad the AFI or DSFID b Use this command to re command. Format: ^RA#,f,r,m,b Parameters Details one used in the meter should be the same as the The value assigned to this para # = field number ^RT command. specified with Values: 0 to 9999 another command Default: 0 f = format Values: ASCII 0 = 1 = Hexadecimal Default: 0 r = number of 0 to 10 Values: retries 0 Default: m = motion Values: 0 = Feed label after writing. No Feed after writing. Other ZPL may cause a feed. 1 = 0 Default: b = type of byte to Values: A = AFI byte read D = DSFID byte Default: A Example 1: This example reads the AFI byte in ASCII format and returns AFI Byte:x tothe y. A voided label is generated if host. The printer will retry the command five times if necessar location of the ^FN1 the read is unsuccessful after these retries. The data read wil l go into the recalled format. ^XA ^FO20,120^A0N,60^FN1^FS ^RA1,0,5,0^FS ^HV1,,AFI Byte:^FS ^XZ DSFID Byte:x This example reads the DSFID byte in ASCII format and returns Example 2: tothe host. The printer will ret ry the command three times if n ecessary. A voided label is ^FN1 generated if the read is unsucce ssful after these retries. The data read will go into the location of the recalled format. ^XA ^FO20,120^A0N,60^FN1^FS ^RA1,0,3,0,D^FS ^HV1,,DSFID Byte:^FS ^XZ Programming Guide 1/31/18 P1099958-001

362 ZPL RFID Commands 362 ^RB ^RB – Define EPC Data Structure Printer and This command is not supported by all printers or firmware. See Important • for the list of printers and firmware with which you can onpage349 Firmware Compatibility use this command. Use this command to define the structure of EPC data, which can be read from or written to an RFID tag. For more information about EPC specifications, refer to th e EPC Global web site. All parameters in this command are persistent a nd will be used in subsequent f ormats if not provided. The values the default values. are initially set to titions defined. This command s RFID tags can have different par pecifies the number of partitions and how many bits are in each partition. Format: ^RBn,p0,p1,p2, ..., p15 Parameters Details to include in the partitions. Specify the number of bits n = total bit size of the n is the bit size of the tag. n , where 1 to Values: partitions Default: 96 ons. The partition sizes Specify the number of bits to i nclude in the individual partiti p0 ... p15 = size specified for t he previous paramete r. The largest must add up to the bit partition sizes individual partition size is 64 bits. Values: 1 to 64 Default: 1 Example 1: The following command specifies that there are 96 bits used wit h three fields. Fields 1, 2, and 3 contain 10, 26, and 60 bits, respectively. ^RB96,10,26,60 The ZPL code to encode a tag with this format would look like t his: ^RFW,E^FD1000.67108000.1122921504606846976^FS he tag stores the data in the f ollowing way: When the tag is being encoded, t • Field 1 contains 1000 . This value is stored in the first 10 bits 67108000 . This value is stored in the next 26 bits. • Field 2 contains • Field 3 contains 1122921504606846976 . This value is stored in the remaining 60 bits. Example 2: The following command specifies that there are 64 bits used wit h eight 8-bit fields. ^RB64,8,8,8,8,8,8,8,8^FS The ZPL code to encode a tag with this format would look like t his: ^RFW,E^FD1.123.160.200.249.6.1.0^FS of data is written in its res pective 8-bit field. When writing to the tag, each set 1/31/18 Programming Guide P1099958-001

363 ZPL RFID Commands 363 ^RB This example uses the SGTIN-96 st andard, which defines 96-bit s tructure in the Example 3: following way: Company Item Serial Header Filter Value Partition Number Reference Prefix Index SGTIN-96 8 bits 3 bits 38 bits 3 bits 20–40 bits 24 bits 33,554,431 9 to 1,048,575 16,383 8 10 8 (decimal (decimal (decimal (decimal (decimal (binary value) capacity) capacity*) capacity) capacity) capacity) * Capacity of Item Reference fie ld varies with the length of th e company prefix. The ZPL code to encode a tag with this format would look like t his: ^XA ^RB96,8,3,3,20,24,38^FS ^RFW,E^FD48,1,6,770289,10001025,1^FS ^XZ These commands would put in the header 48 • • 1 as the filter value 20-bit prefix and 24-bit item r • 6 as the partition (indicates a eference) • 770289 as the company prefix • as the item reference 10001025 as the serial number • 1 he results on the label, you w ould use the following code: To read this EPC data and print t ^XA ^RB96,8,3,3,20,24,38^FS ^FO50,50^A0N,40^FN0^FS ^FN0^RFR,E^FS ^XZ The resulting label would look like this: 48.1.6.770289.10001025.1 P1099958-001 Programming Guide 1/31/18

364 ZPL RFID Commands 364 ^RE ^RE – Enable/Disable E.A.S. Bit Printer and all printers or firmware. See This command is not supported by Important • Firmware Compatibility for the list of printers and firmware with which you can onpage349 use this command. rveillance (E.A.S.) bit that is Use this command to enable or disa ble the Electron ic Article Su available in some IS O15693 tags (such as Philips). This command works only on those ISO15693 transponders and will A.S. be ignored if the tag does not support E. Format: ^REt,r Parameters Details t = Enable/disable Values: N = Disable E.A.S. the E.A.S. bit Y = Enable E.A.S. in the ISO15693 transponder N Default: r = number of Values: 0 to 10 retries 0 Default: retry the command five Example: This example enables the E.A.S. b it in the transponder. It will times if necessary. ^XA ^REy,5 ^XZ Programming Guide P1099958-001 1/31/18

365 ZPL RFID Commands 365 ^RF Read or Write RFID Format ^RF – to (encode) an RFID tag or to specify the access password. Use this command to read or write to read a tag , you may use a field vari able to print the t ag data on the When using this command label or to return the data to the host. For more information o n how memory is stored on a Gen 2 tag or for examples that use a f RFID Programming Guide for your printer. A ield variable, refer to the copy of the manual is located on the User CD that came with you r printer, or you can download a copy from http://www.zebra.com/manuals . Format: ^RFo,f,b,n,m Details Parameters Specifies the acti on to be performed. o = operation Values: W = write to (encode) the tag L= write with LOCK (if supported by tag type; Gen 2 tag type does not use this locking function) =read the tag R P = read password (Gen 2 tag type o nly. Not supported on all Gen 2 printers, including the ZD500R printer.) S = specify the access password Default: W f = format Values: A =ASCII H =Hexadecimal E = EPC (ensure proper setup with the ^RB command) H Default: 1/31/18 Programming Guide P1099958-001

366 ZPL RFID Commands 366 ^RF Parameters Details For Gen 2 tag type only: For Gen 2 tag type only: or other eter depends on what you enter f What you specify for this param = password b parameters. OR = starting block b If the number Operation For tag types other than Then... parameter Gen 2: value is... = starting block b number W When the memory bank parameter is set to Note • (EPC 96-bit) or E (EPC and Auto adjust PC bits), this A value is always set to 2 . Values: • P ss password, a kill password, , which indicates that an acce command. Each password must be 8 ^FD or both follow in a is omitted, it is not written. hex characters. If the password in subsequent lock commands An access password is used in the format. to n • t starting block number, , which specifies the 16-bi 0 where n is the maximum number of blocks for the bank specified in the memory bank parameter. Default: 0 R Note • When the memory bank parameter is set to A (EPC 96-bit) or E (EPC and Auto adjust PC bits), this 2 value is always set to . Values: 0 , which specifies the 16-bi • t starting block number, to n where n is the maximum number of blocks for the bank specified in the memory bank parameter. 0 Default: P and must be followed by the access This parameter must be S ^FD command. password in a For tag types other than Gen 2: Specifies the starting block number. to is the maximum number 0 n r the tag. , where n of blocks fo Values: Default: 0 P1099958-001 1/31/18 Programming Guide

367 ZPL RFID Commands 367 ^RF Parameters Details Specifies the number of b ytes to read or write. = number of bytes n For high-frequency (HF) printers: to read or write 1 to Values: , where n is the maximum number of bytes for the tag. n Default: 1 For Gen 2 tag type only: When E or A is specified for the memory bank parameter, this value is not required. , where n is the maximum number of bytes for the tag. n Values: 1 to Default: 1 For all other printers and tag types: the starting block number is 1. This parameter applies only when n , where n is the maximum number of byt es for the tag. For UCODE 1 to Values: EPC 1.19, n is 32. Default: 1 m = Gen 2 memory This parameter applies to Gen 2 tags only. Note • bank Specifies the Gen 2 memory bank 2 memory, refer . For more information about Gen RFID Programming Guide to the for your printer. Values: E = EPC 96-bit (When writing data, this parameter performs the and accesses 12 bytes of the EPC operation on Gen 2 bit address 20 h memory bank. When reading data, this parameter reads the amount of data specified in the PC bits on the tag.) A = EPC and Auto adjust PC bits (Whe n writing data, this parameter of the EPC memory performs the operation on Gen 2 bit address 20 h ^FD . The PC bank and accesses the number of bytes specified in the bits will be updated to match the amount of data written to the tag. ter reads the amount of data When reading data, this parame specified in the PC bits on the tag.) This value is supported only by the ZD500R™ printer and NOTE: ZT400™Series RFID printers. 0 = Reserved EPC 1 = TID (Tag ID) 2 = 3 = User Default: E Example 1: This example encodes 96-bit data in ASCII format. (The ^RS command can be ommited for printers that use Gen 2 tag types only.) ^XA ^RS8 ^RFW,A^FD00 my data^FS ^XZ 1/31/18 Programming Guide P1099958-001

368 ZPL RFID Commands 368 ^RF Example 2: C data, as specified by the ^RB command. This example encodes 96-bit EP ^XA ^RB96,8,3,3,20,24,38 ^RFW,E^FD16,3,5,78742,146165,1234567891^FS ^XZ Example 3: This example encodes 4 bytes of hexadecimal formatted data, sta rting in block3 ^RS command can be omitted for printers that use Gen 2 tag types of Gen 2 EPC bank 1. (The only.) ^XA ^RS8 ^RFW,H,3,4,1^FD11112222^FS ^XZ ^RI Example 4: This example reads the extended Gen 2 tag ID (TID), which is no t read by the command, and returns the results to the host computer. The resu lts are labeled with the ^RS command can be omitted for printers that use Gen 2 header “8-byte Tag ID Data.” (The tag types only.) ^XA ^RS8 ^RFR,H,0,8,2^FN1^FS^HV1,,8-byte Tag ID Data:^FS ^XZ ) and 12345678 This command writes and specif Example 5: ies both the access password ( ) separated by a comma. 88887777 the kill password ( ^RFW,H,P^FD12345678,88887777^FS This command writes the access password only: ^RFW,H,P^FD12345678^FS This command writes th e kill password only (a comma must be use d before it to distinguish it from an access password): ^RFW,H,P^FD,88887777^FS for how this command would be used in a format. See the examples for ^RL on page 370 This command writes 1122334455667788 Example 6: to the bit address 20h of the EPC PC bits bit address 10h to 14h to reflec t 8 bytes (4 w ords) of data. memory and updates the ^RFW,H,,,A^FD1122334455667788^FS This command specifies the access Example 7: password for the tag, which w ill be used in subsequent lock commands in the format. The access password spe cified must match the one stored on the tag. This command do es not write the password to the tag. See the examples onpage370 for how this command would be used in a format. for ^RL ^RFS,H,P^FD12345678^FS Programming Guide P1099958-001 1/31/18

369 ZPL RFID Commands 369 ^RI ^RI – Get RFID Tag ID This command is not supported by Important • Printer and all printers or firmware. See Firmware Compatibility onpage349 for the list of printers and firmware with which you can use this command. decimal format. Use this command to g return it in hexa et the unique serial number of the tag and command. ^HV The data can be se host via the nt back to the bit tag ID (TI and returns the 32- For Gen 2 tag types, this comm D) for the tag. If your Gen 2 tag ^RF on page 365 to access the TID memory bank. supports TID data be yond 32 bits, see ^RIa,b,c,d Format: Parameters Details a = number to be 0 to 9999 Values: assigned to the Default: 0 field b = specify data Note • This parameter applies only to the R110 Xi HF and R2844-Z printers. order Values: Most significant byte first for Tag*It and PicoTag. Least signi 0= ficant byte first for I*code and ISO15693. 1= Reverse the data order Default: 0 c = number of 0 to 10 Values: retries 0 Default: d = motion Values: 0 = Feed label after writing 1 = No Feed after writing (other ZPL commands may cause afeed) Default: 0 Example: This example reads a tag ID, prints it on a label, and sends st to Tag ID:xxxxxxxx ring ^FN0 location of the format. Th e printer will retry the the host. The data read will go into the command five times, if necessary. ^XA ^FO20,120^A0N,60^FN0^FS ^RI0,,5^FS ^HV0,,Tag ID:^FS ^XZ P1099958-001 Programming Guide 1/31/18

370 ZPL Commands 370 ^RL ^RL – Lock/Unlock RFID Tag Memory The ^RL command has two distinct formats and functions: • ^RLM – Lock/Unlock the Specified Memory Bank Locks a password or an entire memory bank in a writeable or unw riteable sta te. These locks/unlocks can be perm anent or reversible. • Permanently Lock Specified Memory Sections ^RLB – Locks blocks of user memory i n an unwriteable state. ^RLM – Lock/Unlock the Specified Memory Bank The ^RLM command locks/unlocks the speci fied password or memory bank on an RFID tag. You can use this command to do the following: • lock individual passwords, ther eby preventing or allowing subs equent reads or writes of that password • lock individual memory banks, the reby preventing or allowing s ubsequent writes to those banks • Permanently lock (permalock) the lock status for a password or memory bank Format: ^RLM,k,a,e,u Details Parameters k = kill password Values: U = unlock the kill password* function = lock the kill password* L = permanently unlock (Open) the kill password O P ected) the kill password = permanently lock (Prot access password a = Values: U = unlock the access password* function L = lock the access password* = permanently unlock (Open) the access password O P = permanently lock (Protected) the access password EPC memory bank e = Values: = unlock the EPC memory bank* U function = lock the EPC memory bank* L emory bank n) the EPC m = permanently unlock (Ope O P = permanently lock (Protected) the EPC memory bank USER memory bank u = Values: U = unlock the USER memory bank* function = lock the USER password bank* L = permanently unlock (Open) the USER memory bank O ted) the USER memory bank = permanently lock (Protec P fault of 00000000 to use this value. See to something other than the de * The access password must be set Example4 onpage371 for an example. ^RLB – Permanently Lock Specified Memory Sections ndividual sub-portions) The ^RLB command permanently locks (permalocks) one or more sections (i in a tag’s user memory. The sect ion sizes for each tag is defin ed by the tag manufacturer. P1099958-001 Programming Guide 1/31/18

371 ZPL Commands 371 ^RL Format: ^RLB,s,n Parameters Details Specify the starting sect ion of memory to lock. starting section s = Specify the number of sections to lock. n = number of sections mory banks using a previously Example 1: The following command locks all me specified access password. ^RLM,L,L,L,L^FS Example 2: The following command locks the us er memory banks using a previ ously specified access password. ^RLM,,,,L^FS Example 3: The following command permalocks s ections 0 to 4 of user memory using a previously specified access password. ^RLB,0,4^FS This code does the following: Example 4: • writes 12 bytes to user memory • password and “11223344” to the kill password writes “12345678” to the access • permalocks 6 sections of user mem ory using “12345678” as the ac cess password • locks the kill and acce ss passwords and per manently unlocks the EPC memory, using “12345678” as the access password ^XA ^RFW,H,0,12,3^FD112233445566778899001122^FS ^RFW,H,P^FD12345678,11223344^FS ^RLB,0,6^FS ^RLM,L,L,O^FS ^XZ Example 5: This code does the following: • writes 12 bytes to user memory • permalocks 6 sections of user mem cess password ory using “00000000” as the ac • permalocks the kill password an d access password using “0000000 0” as the access password ^XA ^RFW,H,0,12,3^FD112233445566778899001122^FS ^RLB,0,6^FS ^RLM,P,P^FS ^XZ Programming Guide 1/31/18 P1099958-001

372 ZPL RFID Commands 372 ^RM ^RM – Enable RFID Motion This command is not supported by Important • Printer and all printers or firmware. See onpage349 for the list of printers and firmware with which you can Firmware Compatibility use this command. labels automatically print at the end Use this command to enable or disable RFID motion. By default, m actually moving when it reaches the of the format. This command allows you to inhibit the label fro tom applications. This parameter is ul for debugging, setup, and cus program position, which is usef not persistent (carried ov er from label to label). Format: ^RMe Details Parameters e = enable Values: Y = Yes, move the label No, do not move the label N = Y Default: Programming Guide 1/31/18 P1099958-001

373 ZPL RFID Commands 373 ^RN ^RN – Detect Multiple RFID Tags in Encoding Field Printer and all printers or firmware. See This command is not supported by Important • for the list of printers and firmware with which you can onpage349 Firmware Compatibility use this command. Use this command to enable or di sable detection of multiple RFI D tags in the encoding field. By printer checks for more t read or write. If han one tag in the field default, the before attempting to RFID ERR is voided, and the label over the antenna support more than one tag is found, the STATUS parameter on the control panel displays . To speed up printing and MULTIPLE TAGS encoding by up to 200 ms, the check may be disabled. ss labels (carried over from l This parameter is persistent acro abel to label), but is NOT Note • persistent across power cycles. Format: ^RNe Parameters Details e = enable Values: Yes, check for multiple tags Y = No, do not check for multiple tags N = Default: R60.13.0.5 and earlier Y = Printers with firmware N = Printers with firmware R60.13.0.7 and later entered, the default value wil l be Note • If an invalid parameter value is used. P1099958-001 Programming Guide 1/31/18

374 ZPL RFID Commands 374 ^RQ ^RQ – Quick Write EPC Data and Passwords all RFID tags, printers, or fi This command is not supported by Important • rmware. See for the list of printers and firmware with Printer and Firmware Compatibility onpage349 e this command. which you can us Use this command with irmware to write the EPC data, an Alien Higgs RFID tag and appropriate f d with one command. Doing so r access password, and kill passwor educes the encoding time. 0 prior to sending this must be 0000000 The access password on the tag t o be written to Note • command. Format: ^RQf,c,o[data] Details Parameters f = format Values: A = ASCII H = Hexadecimal E = EPC Default: H c = chip type Values: 0 (Higgs IC tag) Default: 0 o = option (write 96-bit EPC) 0 Values: Default: 0 Use the ^FD command to specify the passw ords in the following format: data = the EPC data, ] kill ],[ ^FD[ EPC ],[ access access password, and kill where: password EPC = the EPC data in the format specified by the f parameter. The data grammed with the ^RF command. should match what would be pro access ield is = an optional access password in hexadecimal format. If this f en as the access password. left blank, 0x00000000 is writt kill = an optional kill password in hexadecimal format. If this fie ld is left blank, 0x00000000 is writte n as the kill password. at. The Example 1: This example writes the EPC data to the tag in hexadecimal form rds are written as zeroes (0x unspecified access and kill passwo 00000000). ^XA^RQ^FD112233445566778899001122^XZ Example 2: This example writes the EPC data to the tag in hexadecimal form at. The access password is written as 0xAAAAAA AA, and the kill password is wri tten as 0xBBBBBBBB. ^XA^RQ^FD112233445566778899001122,AAAAAAAA,BBBBBBBB^XZ This example writes the EPC data to the tag in EPC format. The unspecified access Example 3: ten as zeroes (0x00000000). and kill passwords are writ ^XA^RB96,30,30,30,6^RQE^FD1234.5678.9012.12^XZ Programming Guide P1099958-001 1/31/18

375 ZPL RFID Commands 375 ^RQ at. The access This example writes the EPC data to the tag in hexadecimal form Example 4: password is written as 0xAAAAAA AA, and the unspecified kill pas sword is written as zeroes (0x00000000). ^XA^RB96,30,30,30,6^RQE^FD1234.5678.9012.12,AAAAAAAA^XZ P1099958-001 Programming Guide 1/31/18

376 ZPL RFID Commands 376 ^RR ^RR – Specify RFID Retries for a Block or Enable Adaptive Antenna Selection Printer and all printers or firmware. See This command is not supported by Important • for the list of printers and firmware with which you can Firmware Compatibility onpage349 use this command. Use this command for the following: • to change the number of times that the printer attempts to rea d or write to a particular block of a 9.7Z or later.) to printers with firmware V75.1 single RFID tag (Not applicable a element selection feature • to enable the adaptive antenn This command is persistent and ts if not provided. will be used in subsequent forma ^RS ” parameter in the This command’s function is different than the “number of labels Note • command. Format: ^RRn,a Parameters Details n = number of Note • he ZT400 printer. s not apply to t This parameter doe retries Values: 0 to 10 Default: 6 a = adaptive antenna Note • This parameter is va lid only on R110Xi4 and ZT400 printers with a element label that is 2 in . (51 mm) or longer. selection If the printer canno t find RFID tags with the antenna element s pecified during the number of retries specified (if applicable), the printer may tr y neighboring antenna elements. If the printer is unsuccessful communicating with the RFID tag after trying , the printer voids the label. the neighboring antenna elements Activating this parameter may slow throughput on damaged or wea k Note • RFID tags. Values: 0 or 1 0 = None. The printer uses only the current antenna element select ion. = Neighbors. The printer attempts 1 to read the tag using the ante nna elements to the left/right and above/below the current antenna element. The antenna element that is successful is used for all subsequent RFID commands until the next unsuccessful attempt. Default: 0 This example sets the read block retries to 5. Example 1: ^XA ^FN1^RR5^RFR,H^FS ^HV1^FS ^XZ Programming Guide P1099958-001 1/31/18

377 ZPL RFID Commands 377 ^RR Example 2: This example sets the write block retries to 2. ^XA ^RR2^RFW,H^FD1234^FS ^XZ and allows the Example 3: On an R110Xi4 printer, this examp le sets the write retries to 2 printer to try neighboring antennas in the event that the curre nt antenna cannot write to the RFID tag. ^XA ^RR2,1^RFW,H^FD1234^FS ^XZ Programming Guide 1/31/18 P1099958-001

378 ZPL RFID Commands 378 ^RS ^RS – Set Up RFID Parameters Use this command to set up RFID p programming position; and error arameters including tag type; ZPL commands als handlingIn addition to reading o r encoding RFID tags, the RFID o provide for setting the number of read/wri te retries before declaring a RFID exception handling, such as ^RR , ^RT , and ^WT ) or setting the number of labels that will be transponder defective (set with ). ^RS attempted if an error occurs (set with For example, if an RFID label fails to program correctly or if the transponder cannot be detected, the VOID across it. The printer will try to print another label with th e printer ejects the label and prints n ). If the problem persists, the s specified (parame ter same data and format f or the number of label printer follows the error handli ng instructions specified by th e error handling parameter (parameter ): the printer may remove the pr oblematic format from the print e d with the next queue and procee format (if one exists in the buffer), or it may place the print er in Pause or Error mode. for reading tag data. Problems ^RF ^RT or Use care when using this command in combination with can occur if the dat a read from the tag is going to be printed on the label. Any data read from the ion. Failure to do this will prevent tag must be positioned to be pr inted above the read/write posit read data from being printed on the label. Format: ^RSt,p,v,n,e,a,c,s Parameters Details Tells the printer/print engine wh ich tag type you are using. If you specify a tag type t = tag type nter or firmware, the printer that is not supported by your pri uses its default value. For the supported tag types and defaults, see . Table 23 on page 381 Values: UHF Printers None 0 = 1 = EPC Class 0 EPC Class 0 Plus 2 = EPC Class 1 64-bit 3 = 4 = EPC Class 1 96-bit 5 = UCODE EPC 1.19 6 = Impinj Class 0 Plus 7 = ISO 18000-06A 8 = EPC Class 1, Generation 2 (Gen 2) 9 = ISO 18000-06B HF Printers HF printer (firmware version R65.X.X) supports the Only the R110 Xi Note • use of letters for thi s parameter. All other printers use the n umbers. A or 0 = None B or Auto detect (query tag to determine) 1 = or C Tag*It (Texas Instruments Tagit tags) 2 = D or 3 = I *code (Phillips Icode tags) E or 4 = Pico Tag (Inside Technology’s) F 5 = ISO 15693 or G or 6 = EPC tag (13.56 MHz) H or 7 = UID Tag I or 8 = Mifare UltraLight varies by printer (see ) Table 23 on page 381 Default: Programming Guide P1099958-001 1/31/18

379 ZPL RFID Commands 379 ^RS Parameters Details on of the tag. ead/write positi This parameter sets the r = read/write p If a label format specifies a value for the programming Important • position of the tag (programming position, this value will be used for the programming position for all position) ration labels until a new position is specified or until the tag calib procedure is run. Values: For the ZD500R only: Fxxx (where F0 is the label length in millimeters or 999 , whichever to xxx is less) t of a label until it reaches t he The printer prints the first par specified distance and then begins programming. After programming, the printer prints the remainder of the label. B0 to B30 then for the specified distance and The printer backfeeds the label begins programming. To account for the backfeed, allow empty media liner to extend out of the front of the printer when usin g a backward programming position. = move to the next value up = move to the previous value down For other RFID printers: Absolute Mode (all firmware versions): xxxx 0 to label length (in dot rows). Move the media to the specified = on the label, measured in dot rows from the label top, xxxx position 0 (no movement) if the tag is already in the before encoding. Set to effective area without moving the media. (firmware versions V53.17.6 and later): Relative Mode Fxxx (where xxx F0 999 , whichever to is the label length in millimeters or is less) t of a label until it reaches t he The printer prints the first par begins programming. After specified distance and then programming, the printer prints the remainder of the label. to B30 (Does not apply to the RP4T printer.) B0 for the specified distance and then The printer backfeeds the label begins programming. To account for the backfeed, allow empty media liner to extend out of the front of the printer when usin g a backward programming position. Default: (no movement) For the R2844-Z and RPAX: 0 6, V74.19.6Z, and later: For printers using V53.17. F0 (which moves the leading edge of the label to the print line) For all other printers or firmware: label length minus 1mm (1/16 in.) ws. Sets the length of the void printout in vertical (Y axis) dot ro v = length of void printout 0 to label length Values: Default: label length Programming Guide 1/31/18 P1099958-001

380 ZPL RFID Commands 380 ^RS Parameters Details The number of labels that will be attempted in case of read/enc ode failure. n = number of labels to try encoding 1 10 to Values: 3 Default: If an error persists af ter the specified number of labels are t ried, perform this error e = error handling handling action. Values: N = No action (printer drops the lab el format causing the error and moves to the next queued label) P = til Place printer in Pause mode (label format stays in the queue un the user cancels) Place printer in Error mode (label format stays in the queue un E = til the user cancels) Default: N Note • You can set the printer to se nd an error message to the host fo r each failure. To enable or disab le this unsolicited error messa ge, refer to the and ^SQ ZPL commands. Use ^SX for the condition type for an RFID V error. a = signals on Z. For the R4Mplus, Note • This parameter does not apply to the R2844- applicator rinters with firmware version S P994 X this parameter applies only to p (R4Mplus European version). Single Signal Mode In this mode, one start print sig nal starts printing. Then, at the program position (parameter p), the pr tops and encodes the tag. Printing inter automatically s on of the label. continues, and a single end prin t signal signifies the completi Double Signal Mode With RFID, when there is a non-zero program position, the label is logically split into the second part prints. two parts. The first part is printed, the tag encodes, and then abel is split into t wo and requires both If this parameter is s et to “D,” then the l tart print means that a s portions of the label to be controlled by the applicator. This on of the label, and then when t he printer reaches the signal triggers the first porti RFID program position (and the motor stops), an end print signa l is provided. In this art print signal is requi mode, a second st of the label. When the red to print the rest label is complete, a final end print signal is provided. If parameter p is zero ter Note • , then single signal mode is used (parame h backfeed-after, then single s ignored). If p is F0 (or B0) wit ignal mode is used (parameter ignored). Values: S= single signal D= double signal (For the R110 PAX 4, Double mode will work only if the read/write position is changed from the default of zero.) S Default: Not applicable. = reserved c s = void print speed Note • This parameter does not apply to the R2844- Z printer. For the R4Mplus printer, this parameter applies only to printe rs with f irmware version SP994 (R4Mplus European version). X If a label is voided, the speed a t which “VOID” will be printed across the label. Values: any valid print speed Default: the printer’s ma ximum print speed Programming Guide P1099958-001 1/31/18

381 ZPL RFID Commands 381 ^RS Table 23 shows the tag types supported b Supported Tag Types y different RFID printers/print the firmware version that you are engines and firmware versions. Depending on your country or on using, your printer may not supp . If you specify an unsupported tag type, ort all of the tag types listed upported but does no the printer uses the default value. If a tag type is shown as s t work with your de the printer’s firmware (see http://www.zebra.com/firmware ). printer, you may need to upgra Table 23 • Supported Tag Types and Default Values UHF Printers HF Printers Printer 4 HF Xi PAX Xi Xi ZD500R R110 R4Mplus RZ400/ RZ600 R110 R110 R170 R2844-Z R110Xi4 Firmware Version and later and later and later and later and later X X X X X X X X X R63.15. R62.15. R60.15. SP1082F, and later SP1082E, and earlier SP994P, SP999F, SP1027F, V53.17.7 and later SP1056D and earlier SP1056E and later R53.16. R60.13. R62.13. R65.13. V74.19.6Z and later R65.15. R63.13. SP994O, SP999E, SP1027E, all Tag Type UHF Tag Types and Options — — — ——****——— ———— None (no tag type specified) ——****——— ———— — — — EPC Class 0 ——****——— ———— — — — EPC Class 0 Plus ——****——— ———— — — — EPC Class 1 64-bit — — — ——#*#*—* * * ——— EPC Class 1 96-bit *—*#* # * #*— ——* — — — UCODE EPC 1.19 a ——****——— ———— — — — Impinj Class 0 Plus ————*——* * * ——— — — — ISO 18000-06A ##*#*#—# * # *## — — — EPC Class 1, Generation 2 (Gen 2) ——****—* * * **— — — — ISO 18000-06B HF Tag Types and Options ———————— — — ——— # — — Auto-detect the tag type by querying the tag ———————— — — ——— — — * Tag*It (Texas Instruments Tagit tags) ———————— — — ——— — — * I*code (Phillips Icode tags) — * — ———————— — — ——— Pico Tag (Inside Technology’s) ———————— — — ——— # # * ISO 15693 — * — ———————— — — ——— EPC tag — — — ———————— — — ——— UID Tag ———————— — — ——— * * — Mifare UltraLight # = Default value * = Accepted value — = Not supported a. Requires R60.13.0.13ZD or later. P1099958-001 Programming Guide 1/31/18

382 ZPL RFID Commands 382 ^RS The following are examples of Abs olute Mode and Relative Mode f Example 1: or the tag ). p position parameter (parameter Absolute Mode ^RS,520 sets the encode position at 520 dots from the top edge of the label. 1. ^RS,0 2. programs the tag without moving the media. Relative Mode ^RS,F1 sets the encode position 1 mm fo rward from the leading edge of the label. 1. ^RS,B10 sets the encode position 10 mm backwards from the leading edge of the label. 2. ^RS,F0 3. he leading edge of the label. sets the encode position at t ^RS,B0 sets the encode position at t he leading edge of the label. 4. Example 2: The following shows the difference between absolute and relativ e programming ) with a 6-inch (152-mm, 1216-dot) p positions for the tag position parameter (parameter e that the tag is programmed wi th the label in the same label length. The end results ar position. print direction encoding area 1 print line tear bar 2 ^RS,496 , Absolute Mode, 496 dots from 1 the top of the label ^RS,F90 , Relative Mode, 90 mm from 2 the leading edge of the label Programming Guide P1099958-001 1/31/18

383 ZPL RFID Commands 383 ^RT ^RT – Read RFID Tag formats that were command is provided only for backward-compatibility with label ^RT The Note • for on page 349 Printer and Firmware Compatibility RFID printers. See developed for older Zebra this command. the list of printers and firmwar e with which you should not use ter to read the current RFID t ag data. The data can be returned to Use this command to tell the prin ^HV command. the host via the Format: ^RT#,b,n,f,r,m,s Parameters Details # = number to be 0 to 9999 Values: assigned to the 0 Default: field b = starting block of blocks for the tag. Values: 0 to n , where n is the maximum number number Default: 0 n = number of n Values: 1 to n , where cks for the tag type minus is the maximum number of blo blocks/bytes the starting block number. For ex ample, if the tag has 8 blocks (starting with block 0) and you start with block 6, can be 2. This would retu rn block 6 and block 7 n to read information. Default: 1 = format f Values: ASCII 0 = 1 = Hexadecimal Default: 0 Changes the number of times that the printer attempts to read a particular block of a r = number of command.) ^RR single RFID tag. (Sam e retry rules as the retries 0 to 10 Values: 0 Default: Enables or disables RFID motion for the current field. m = motion Values: 0 = Feed label after writing. 1 = No feed after writing. Other ZPL may cause a feed. Default: 0 = special mode s This parameter is us ed only for the print ers referenced here. Note • For R4Mplus printers with firmware version SP920 (U.S. version): X Specify actions for mismatched checksums. F or EPC Class 1 (Alie n reader) only. Not applicable for EPC class 0. Default: 0 Values: 0 = Do not read if mi smatched checksum 1 = Read even if mismatched checksum For R110 Xi HF and R2844-Z printers: Specify data order. Default: 0 Values: 0 = least significant byte first 1 = most significant byte first Programming Guide 1/31/18 P1099958-001

384 ZPL RFID Commands 384 ^RT Example 1: This example reads a tag, prints the data on a label, and sends the string ^FN1 location of the Tag Data: xxxxxxxx back to the host. The data read will go into the format. The printer will retry the command five times, if neces sary. ^XA ^FO20,120^A0N,60^FN1^FS ^RT1,,,,5^FS ^HV1,,Tag Data:^FS ^XZ label. ice and prints t Example 2: This example reads from a tag tw he results on a ^XA ^FO20,120^A0N,60^FN1^FS ^FO20,100^A0N,20^FN2^FS ^RT1,7,3,,5^FS ^RT2,3,2,,5^FS ^XZ The first ^RT command starts at block 7 and r eads three blocks of data in AS CII format. The data ^FN1 location of the format. The pr e times, if inter will retry the command fiv read will go into the necessary. The second command starts at block 2 and re ^RT ads two blocks of data in ASCI I format. The data inter will retry the command fiv e times, if ^FN2 location of the format. The pr read will go into the necessary. Programming Guide P1099958-001 1/31/18

385 ZPL RFID Commands 385 ^RU Read Unique RFID Chip Serialization ^RU – chip and format a unique 38-bit Use this command to read the TID (Tag ID) data from the current serial number, which will be plac ed in the lower (least signifi cant) 38 bits of the EPC code. Format: ^RUa,b Details Parameters Specifies the pref ix in ASCII Binary a = prefix Values: Only ASCII characters 1 and 0 are accepted. Maximum of 38 chara cters. The number of bits in the value specifies the length of the pre fix. The prefix is placed as the left-most (most significa nt) bits in the unique serial n umber. If nothing is specified, the default value will be used. The MCS prefix is determined by the MDID in the TID of the chip read: Default: • 100 = EM Micro • Impinj = 101 • Alien = 110 • NXP = 111 Special character for serial number inclusion. b = special character Values: Any ASCII character other than t he current Command character, C ontrol character, Delimiter character, or any of the Real-Time Clock ( RTC) characters. # Default: Note • Serial number inclusion: One of several data elements can be included into any ^FD data string in the sa me way that Real Time Clock data is included. Use any of the commands below to i nclude a data pattern based on the serial number. These are de fined using the default value fo r the Special Character. #S = include 38-bit serial number derived from TID in decimal form. #H = include 38-bit serial number derived from TID in hexadecimal form. #E = include the entire 96-bit EPC code, including the 38-bit serial number derived from TID in decimal form. #F = include the entire 96-bit EPC code, including the 38-bit serial number derived from TID in hexadecimal form. #P = include the entire 96-bit EPC code, but use the tag’s preprogrammed, 38-bit SGTIN serial number in decimal form.* #Q = include the entire 96-bit EPC code, but use the tag’s preprogrammed, 38-bit SGTIN serial number in hexadecimal form.* * If the EPC has been preprogrammed (typically by the manufactu rer) with the chip-based RFID serialization scheme, then the serialized data does not have to be written back to the EPC memory, which saves time. and #P #Q read from the EPC memory bank. simply format the data that is Example 1: Read the TID from the tag, creat e a serial number based on the tag type, write 12000000000000 to the 96-bit EPC field, and print the serial number (in hex form at) on the label. ^XA ^RU ^FO10,10^A0N,50,50^FDSerial Number: #H^FS ^RFW,H^FD12#H^FS ^XZ Programming Guide 1/31/18 P1099958-001

386 ZPL RFID Commands 386 ^RU tag type, write e a serial number based on the Example 2: Read the TID from the tag, creat the serial number to the EPC field (lower 38 bits) while mainta ining the contents of the rest of Serial Number: on the label, the EPC memory, print Serial Number: to the host. Perform this and return operation on three label formats. ^XA ^RU ^FO10,10^A0N,50,50^FN1^FS ^FN1^FDSerial Number: #H^FS ^FH^HV1,24, ,_0D_0A,L^FS ^RFW,H^FD#F^FS ^PQ3 ^XZ Read the full EPC (already ser ialized) from the tag, print Example 3: Serial Number: on the label, and return Serial Number: to the host. ^XA ^RU ^FO10,10^A0N,50,50^FN1^FS ^FN1^FDSerial Number: #P^FS ^FH^HV1,44, ,_0D_0A,L^FS ^XZ Programming Guide P1099958-001 1/31/18

387 ZPL RFID Commands 387 ~RV ~RV – Report RFID Encoding Results Printer and all printers or firmware. See Important • This command is not supported by onpage349 Firmware Compatibility for the list of printers and firmware with which you can use this command. ess or failure results to the host ter to send RFID encoding succ Use this command to tell the prin computer after each l abel format completes. Format: ~RVa Details Parameters esults reporting feature. Enables or disables the r = enable/disable a Values: E = Enable D = Disable Default: D Assume that the following code is Example 1: D tag in the field. sent and that there is no RFI ~RVE ^XA ^RS8,0,,3 ^RMY ^RFR,H ^XZ The printer attempts to program a tag three times and then retu rns the following to the host: _-,3_ The minus sign indica tes that the programming attempt failed en tirely and voided three labels. Example 2: Assume that the same code is sent and that the first two attemp ts at programming a tag are unsuccessfu l. The third attempt succeeds. ~RVE ^XA ^RS8,0,,3 ^RMY ^RFR,H ^XZ The printer attempts to program a tag three times and then retu rns the following to the host: _+,2_ The plus sign indicates that the programming attempt was succes sful and voided two labels. Programming Guide 1/31/18 P1099958-001

388 ZPL RFID Commands 388 ^RW Set RF Power Levels for Read and Write ^RW – all printers or firmware. See This command is not supported by Important • Printer and for the list of printers and firmware with which you can onpage349 Firmware Compatibility use this command. the desired levels are not achieved Use this command to set the RFID read and write power levels if he tag may not have sufficient power through RFID tag calibration. If not enough power is applied, t power is applied, the extra power may for programming, and tag data will fail to encode. If too much e programmed. cause data communication errors or may cause the wrong tag to b For the R110Xi4, ZT400, and ZD500R printers: Note • During RFID tag calibration, the p rinter automatic ally selects the best read/write power levels and the best antenna element (not appllicable to the ZD500R) for th e media being used. The R110Xi4 ~HL ^HL command (see printer may also set the levels during an adaptive antenna swee p. Use the and power settings being used. or ~HL on page 353 ) to view the antenna element Note • For the R110Xi4, ZT400, and ZD500R printers: power levels and During RFID tag calibration, the p rinter automatic ally selects the best read/write e media being used. The R110Xi4 appllicable to the ZD500R) for th the best antenna element (not ~HL command (see ^HL printer may also set the levels during an adaptive antenna swee p. Use the or ~HL on page 353 ) to view the antenna element and power settings being used. Format: ^RWr,w,a Details Parameters This parameter sets the power level to match the desired output as calibrated in the r = read power factory. R53.16.3, V53.17.5, and later: Values: 0 to 30 Default: 16 R60.16.4, R62.16.4, R63.16.4, SP994Q, SP999G, SP1027G, SP1056F, SP1082G, and later: H (low) to 30 , 0 (high), M (medium), L Values: Default: L R65.X and older versio ns of other firmware: Values: H = high M = medium L = low Default: L Programming Guide 1/31/18 P1099958-001

389 ZPL RFID Commands 389 ^RW Parameters Details = write power w This parameter is ignored on the R110 HF printer (firmware Note • Xi write powers cannot be specifie version R65.X) because read and d separately. The printer uses the value that you specified for r ead power for both the read and writ e power settings. This parameter sets the power l evel to match the desired output as calibrated in the factory. R53.16.3, V53.17.5, and later: Values: 0 to 30 Default: 16 R60.16.4, R62.16.4, R63.16.4, SP994Q, SP999G, SP1027G, SP1056F, SP1082G, and later: M Values: 30 , H (high), to (medium), L (low) 0 L Default: Older versions of firmware: Values: H = high M = medium L = low Default: L Programming Guide 1/31/18 P1099958-001

390 ZPL RFID Commands 390 ^RW Parameters Details ZD500R: a = RFID antenna This printer only has one antenna element, always A1 . so the value used is element selection ZT400: This parameter selects an antenn a element from the printer’s an tenna array. Values: E1 , E2 , E3 , E4 D1 , , D4 , D3 D2 C1 C2 , C3 , C4 , B1 , B2 , B3 B4 , A1 , A2 , A3 , A4 Default: A4 (Continued on next page) Programming Guide P1099958-001 1/31/18

391 ZPL RFID Commands 391 ^RW Parameters Details (Continued from previous page) = RFID antenna a element R110Xi4 (V53.17.5 and later): selection This parameter selects an antenn a element from the printer’s an tenna array. Values: A1, A2, A3, A4, B1, B2, B3, B4, C1, C2, C3, C4, D2, D3, D4, E2, E3, E4, F2, F3, F4 (combinations D1, E1, and F1 are invalid) A4 Default: R110 Xi HF (R65.X): This parameter selec ts the antenna port tha t provides the best results for reading and writing. Values: antenna port 1 1 = 2 = antenna port 2 1 Default: The following command selects the antenna at row D, column 3 on an R110Xi4 Example 1: printer: ^RW,,D3 Example 2: and selects d/write power level to Medium The following command sets the rea antenna 2 on an R110 Xi HF printer: ^RWM,,2 Example 3: The following command sets the rea d and write power levels to H igh on an PAX 4 printer: R110 ^RWH,H 1/31/18 Programming Guide P1099958-001

392 ZPL RFID Commands 392 ^RZ ^RZ – Set RFID Tag Password and Lock Tag Printer and all printers or firmware. See This command is not supported by Important • for the list of printers and firmware with which you can onpage349 Firmware Compatibility use this command. Use this command to d a tag during writing. efine a password for password or define a kill g’s memory bank With Gen 2 tags, you can lock a ta with an access password that can be used to permanently disable the tag. If yo u do not set access or kill passwords read or write commands that try to use these functions. for a tag, the tag ignores any The printer can set a kill passw ord, but the printer cannot ki ll a tag. Note • Format: ^RZp,m,l Details Parameters ssword for the RFID tag. This parameter sets a pa p = password For tag types other than Gen 2: The password is 8 bits. The memo ry bank and lock style paramete rs are ignored. The password must be 2 hexadecimal characters long. Values: 00 to FF (hexadecimal) 00 Default: For Gen 2 tag type only: Gen 2 tags use a 32-bit password and specify the memory bank an d lock style. The password must be 8 hexadecimal characters long. Use ^RF on page 365 to read the passwords. Values: 00000000 to FFFFFFFF (hexadecimal) Default: none m = memory bank Note • This parameter applies to Gen 2 tags only. This parameter specifies the type of RFID tag password. Values: K = kill password A = access password E = EPC T = tag identifier (TID) user U = Default: none P1099958-001 Programming Guide 1/31/18

393 ZPL RFID Commands 393 ^RZ Parameters Details = lock style l Note • This parameter applies to Gen 2 tags only. RFID tag password status. This parameter specifies the Values: U= unlocked L= locked O= permanently unlocked (open) P= permanently locked (protected) W= he kill password memory bank) write value (used only for t Default: none as the tag password. 5A Example 1: On a tag that is not Gen 2, this example encodes ^XA ^RZ5A^FS ^XZ Example 2: On a Gen 2 tag, this example encodes EPC data 112233445566778899001122 to , and leaves 1234ABCD assword the tag in Hex format, write protects the tag’s EPC data with p the tag’s access password unlocked. ^XA ^RFW,H^FD112233445566778899001122^FS ^RZ1234ABCD,E,L^FS ^XZ to 112233445566778899001122 On a Gen 2 tag, this example encodes EPC data Example 3: 1234ABCD , and makes the tag in Hex format, write protects the tag’s EPC data with p assword the tag’s access password unreadable. ^XA ^RFW,H^FD112233445566778899001122^FS ^RZ1234ABCD,E,L^FS ^RZ1234ABCD,A,L^FS ^XZ The following code u nprotects EPC data 112233445566778899001122 using the password , encodes EPC data 1234ABCD newdata and then write protects the to the tag in ASCII format, tag’s new EPC data. The access pa ssword and its lock state are not changed, so the access password remains unreadable. ^XA ^RZ1234ABCD,E,U^FS ^RFW,A^FDnewdata^FS ^RZ1234ABCD,E,L^FS ^xz Programming Guide 1/31/18 P1099958-001

394 ZPL RFID Commands 394 ^RZ us example. access password from the previo This example unlocks the locked Example 4: ^XA ^RZ1234ABCD,A,U^FS ^XZ 1/31/18 Programming Guide P1099958-001

395 ZPL RFID Commands 395 ^WF ^WF – Encode AFI or DSFID Byte Use this command to e ncode the AFI or DSFI D byte to a tag. Erro r handling is set by the ^RS command. Important • This command is not supported by all printers or firmware. See Printer and onpage349 Firmware Compatibility for the list of printers and firmware with which you can use this command. Format: ^WFr,m,w,f,b Parameters Details r = number of Values: 0 to 10 retries Default: 0 m = motion Values: 0 = Feed label after writing. 1 = No Feed after writing. Other ZPL may cause a feed. Default: 0 w = write protect Values: 0 = Not write protected 1 = Write protect 0 Default: f = data format Values: 0 = ASCII 1 = Hexadecimal 0 Default: b = type of byte to Values: A = AFI byte read D = DSFID byte A Default: Example 1: This example encodes data “R” (h nter will try the ex 52) as the AFI byte. The pri mes, if necessary. command up to five ti ^XA ^WF5^FDR ^XZ This example encodes data hex 66 as the AFI byte. The printer w ill try the Example 2: command up to three times, if necessary. ^XA ^WF3,,,1^FD66 ^XZ as the DSFID byte. The printer Example 3: This example encodes data hex 77 will try the command up to four times, if necessary. ^XA ^WF4,,,1,D^FD77 ^XZ Programming Guide 1/31/18 P1099958-001

396 ZPL RFID Commands 396 ^WT ^WT – Write (Encode) Tag formats that were command is provided only for backward-compatibility with label ^WT The Note • developed for older Zebra for on page 349 Printer and Firmware Compatibility RFID printers. See e with which you should not use the list of printers and firmwar this command. Use this command to encode the current RFID tag. Check the amou nt of data memory available for the tag that you will be using. If you send more data than the memory can hold, the printer truncates the data. Format: ^WTb,r,m,w,f,v Details Parameters Specifies the block number to encode. Thi s parameter is tag-dep endent. = block number b • For most tags, use block 0. EPC data, and block 1 is user • For EPC Class 0 Plus, block 0 is data. • For the R4Mplus, this parameter does not apply to printers with firmware version SP902 X . With other versions of firmware in this printer, you can enco de 12 bytes (96 bits) to block 0, but you c an encode only the first byte of block 1. n is the maximum number of blocks for the tag. n , where Values: 0 to Default: 0 Changes the number of times that t he printer attempts to encode a particular block = number of r of a single RFID tag. ( Same function as the ^RR command.) retries Values: 0 to 10 Default: 0 Enables or disables RFID motion. (Same function as the ^RM command.) m = motion Values: 0 = Feed label after writing 1 = her ZPL may cause a feed) No feed after writing (ot Default: 0 w = write protect Values: 0 = Not write protected 1 = Write protected Default: 0 f = data format Values: 0 = ASCII 1 = Hexadecimal Default: 0 Programming Guide P1099958-001 1/31/18

397 ZPL RFID Commands 397 ^WT Parameters Details used in the R2844-Z. This parameter is not For the R110 HF: For the R110 Xi Xi HF: Reverses the data order. = reverse the data v order Values: N = Do not reverse the data order (Most significant byte first for Tag*It and PicoTag. Last significant by 93) te first for I*code and ISO 156 Y = Reverse the data order Default: N For other supported For other supported printers: ). For reliability, some manufacture rs encode tags with known data (such as A5A5 printers: whether the preprogra mmed data is verified This parameter flags . (Same function = verify valid v ^WV command.) as the data Values: N = Do not verify Y = Verify valid data before writing N Default: writing up to Example: This sample encodes data “RFID RFID” and will try five times, i f necessary. ^XA ^WT,5^FDRFIDRFID^FS ^XZ Programming Guide 1/31/18 P1099958-001

398 ZPL RFID Commands 398 ^WV ^WV – Verify RFID Encoding Operation all printers or firmware. See This command is not supported by Important • Printer and for the list of printers and firmware with which you can onpage349 Firmware Compatibility use this command. Use this command to enable or di sable the write verify function . When write verify is enabled, this tag about to be programmed nsure that the operation to e command verifies the RFID encoding “A5A5” in the first tw o bytes. This param eter is not persistent (carried over contains the hex data from label to label). Format: ^WVe Details Parameters e = enable Values: Y or N Default: N P1099958-001 Programming Guide 1/31/18

399 ZPL RFID Commands 399 ^WV 1/31/18 Programming Guide P1099958-001

400 ZPL RFID Commands 400 ^WV Notes • _____ _______________________________________________________________ _______________________________________________________________ ___________ ___________ _______________________________________________________________ ___________ _______________________________________________________________ _______________________________________________________________ ___________ _______________________________________________________________ ___________ _______________________________________________________________ ___________ _______________________________________________________________ ___________ ___________ _______________________________________________________________ _______________________________________________________________ ___________ Programming Guide P1099958-001 1/31/18

401 ZPL Wireless Commands This section contains ZPL commands for the Wireless and Wireles s Plus print servers. 1/31/18 Programming Guide P1099958-001

402 ZPL Wireless Commands 402 ^KC ^KC – Set Client Identifier (Option 61) ^KC command allows the print server t o have its own c The ier (CID). lient identif Format: ^KCa,b,c,d Parameters Details a = enable or disable Values: disable (default) 0 = 1 = enabled, use MAC address 2 = enabled, ASCII value 3 = enabled, HEX value Default: 0 device b = Values: 0 = all devices 1 = wireless ad 2 = external wired 3 = internal wired Default: 1 c = prefix (optional) Values: 11 ASCII characters or 22 hexadecimal values. The prefix can be cleared by defa ulting the network settings on the printer. identifier d = Values: 60 ASCII characters or 120 hexadecimal values. Minimum field length is 2 bytes. The suffix can be cleared by def aulting the netwo rk settings on the printer. 00 printers when it is used with the external ZebraNet ad. This applies only to the Xi4, RXi4, ZM400, ZM600, RZ400, or RZ6 mware v1.1.5 or later. 10/100 print server using fir Programming Guide P1099958-001 1/31/18

403 ZPL Wireless Commands 403 ^NB ^NB – Search for Wired Print Server during Network Boot Use this command to tell the pr inter whether to search for a wi red print server at bootup. This Z600 printers. ZM600, RZ400, and R command is ignored on t he Xi4, RXi4, ZM400, so this check does not occur. Note • Only one print server can be installed in the S4M at one time, Table 24 identifies which device becomes the active print server under different conditions. Table 24 • Results of Chec k for Wired Print Server Installed and Connected to If the Check for Then, the Active Print Server aLiveEthernetNetwork Wired Print will be: Server is setto: ae Wireless Wired XX Wireless Skip X— Wired —X Wireless XX Wired Check X— Wired —X Wireless erly associate to an access point. A wireless option board must hav e an active radio that can prop ae. Format: ^NBa Parameters Details = check for wired a Values: C = CHECK print server at S = SKIP CHECK boot time Default: S 1/31/18 Programming Guide P1099958-001

404 ZPL Wireless Commands 404 ^NN ^NN – Set SNMP Use this command to set the Simpl e Network Managem ent Protocol (SNMP) parameters. Format: ^NNa,b,c,d,e,f Parameters Details ter name. Same as prin = system name a Values: Up to 17 alphanumeric characters Any contact informati on as desired (such as a name or phrase) b = system contact Values: Up to 50 alphanumeric characters The printer’s model information. = system location c Values: Up to 50 alphanumeric characters d = get community Up to 19 alphanumeric characters Values: name Default: public e = set community Up to 19 alphanumeric characters Values: name Default: public f = trap community Values: Up to 20 alphanumeric characters name Default: public Programming Guide P1099958-001 1/31/18

405 ZPL Wireless Commands 405 ^NP ^NP – Set Primary/Secondary Device Use this command to specify whether to use the printer’s or the print server’s LAN/WLAN settings at boot time. The default is to use the printer’s settings. When the printer is set as the primary device, you can set it u p using ZPL commands or the Wireless Setup Wizard utility, a nd any wired print server inserted into the printer will use those settings.The drawbacks to using the p rinter as primary are: original settings if t will lose its he printer is set to Any wired print server inserted into the printer ^NB on page 403 ). and the Primary Device is set to PRINTER (see check for the wired print server Format: ^NPa Parameters Details a = device to use as Values: P = printer primary M = MPS/Printserver P Default: Programming Guide 1/31/18 P1099958-001

406 ZPL Wireless Commands 406 ^NT ^NT – Set SMTP allows you to Use this command to set the Simpl e Mail Transfer Protocol (SMTP ) parameters. This set the e-mail set tings for alerts. Format: ^NTa,b Details Parameters a = SMTP server Any properly formatted s erver address in the xxx.xxx.xxx.xxx format Values: address b = print server Values: Any properly formatted print server domain name. A domain name is one iod (“dot”), and a label consi or more labels separated by a per sts of letters, domain numbers, and hyphens. An example o f a domain name is zebra.com Programming Guide P1099958-001 1/31/18

407 ZPL Wireless Commands 407 ^NW Set Web Authentication Timeout Value ^NW – Use this command to set the timeout value for the printer home page. The printer will prompt for the printer password only the first time that certain screens are a ccessed until 1) the web authentication rinter is reset. At that time, the printer timeout value is reached (default value is 5 minutes) or 2) the p will prompt for the password again. Format: ^NWa Parameters Details The timeout value in minutes fo r an IP address to be authentica ted to the printer = timeout value a web pages. without entering the printer Values: 0 (no secure pages can be accessed password) to 255 minutes Default: 5 Programming Guide 1/31/18 P1099958-001

408 ZPL Wireless Commands 408 ^WA ^WA – Set Antenna Parameters antenna. Use this command to set the value s for the receiv e and transmit Format: ^WAa,b Parameters Details a = receive antenna Values: diversity D = left L = R = right Default: D b = transmit antenna Values: D = diversity L = left R = right D Default: Programming Guide P1099958-001 1/31/18

409 ZPL Wireless Commands 409 ^WE ^WE – Set WEP Mode ers using firmware command is provided only for backward-compatibility with print ^WE The Note • ^WX rsions and later, use X60.15.x. For these firmware ve prior to V50.15.x, V53.15.x, or pe and related parameters. to set the security ty on page 419 Use this command to command enable Wired Equivalent Privacy (WE P) mode and set WEP values. ANs). WEP is a security protocol for wireless local area networks (WL Be careful to include the exact his command when setting number of commas required for t e a will cause the keys to be ). A missing or extra comm h through encryption keys (parameters stored in the wrong slots and can prevent the printer from join ing the wireless network. Format: ^WEa,b,c,d,e,f,g,h Parameters Details = encryption mode a Values: OFF 40 = 40-bit encryption 128 = 128-bit encryption Default: OFF Tells the printer which e ncryption key to use. b = encryption index Values: 1 = Key 1 Key 2 2 = 3 = Key 3 4 = Key 4 Default: 1 c = authentication Values: O (Open System), S (Shared Key) Open System O = type S = Shared Key Default: O Note • If you enable Shared Ke y authenticati on with Encryption Mode se t OFF , this value resets to O (Open). to d = encryption key Values: H (Hex key storage), S (string key storage) H = Hex key storage storage String key storage S = Default: H e, f, g, h = Values: The actual value for the encryption key ion keys: for the encrypt The encryption mode affects what can be entered encryption keys • For 40-bit, encryption keys can be set to any 5 hex pairs or an y 10 alphanumeric 1 through 4 characters. • For 128-bit, encrypti on keys can be set to any 13 hex pairs or any 26 alphanumeric characters. When using hex storage 0x on the WEP key. , do not add a leading Note • Programming Guide 1/31/18 P1099958-001

410 ZPL Wireless Commands 410 ^WE Example 1: This example sets encryption to 40-bit, activates encryption ke y 1, and sets . 12345 encryption key 1 to the string ^WE40,,,,12345 In this example, the Encryption Index, Authentication Type, and Encryption Key Storage parameters mmas as placeholders for the fields. The are left blank with co printer uses the default values for these parameters. This example sets encryption to ey 2, and sets Example 2: 128-bit, activates encryption k encryption keys 1 and 2 to hex values. ^WE128,2,,H,12345678901234567890123456,98765432109876543210987654 The value for encryptio can be activated i n the future by the following n key 1 is stored and command: ^WE128,1 Example 3: This example sets encryption to 128-bit, activates encryption k ey 4, and sets encryption key 4 to a hex value. ^WE128,4,,H,,,,98765432109876543210987654 Values are not required for encry tting encryption key 4. In this ption keys 1 through 3 when se example, commas are us ed as placeholders for the fields for enc ryption keys 1 through 3. Any previously stored values for these encryption keys do not ch ange. to get Important • Make sure that you include the exact number of commas required h ). to the slot for encryption key 4 (parameter Programming Guide P1099958-001 1/31/18

411 ZPL Wireless Commands 411 ^WI Change Wireless Network Settings ^WI – ss network settings. Use this command to change the wirele onpage285 ^ND have any of the following Zebra recommends using for these settings if you printers: • Xi4 printers with firmw are V53.17.1Z or later are V53.17.7Z or later • RXi4 printers with firmw • ZM400, ZM600, or S4M printers with firmware V53.15.xZ or later • RZ400/RZ600 printers with f irmware R53.16.x or later Format: ^WIa,b,c,d,e,f,g,h,i Parameters Details a = IP resolution Values: A =All B =BOOTP C = DHCP and BOOTP D =DHCP = Gleaning only (Not recommended when the Wireless Print Server G or Wireless Plus Print Server is installed.) R =RARP P =Permanent Default: A b = IP address Values: Any properly formatt ed IP address in the xxx.xxx.xxx.xxx format . Default: 000.000.000.000 c = subnet mask Values: Any properly formatted subnet mask in the xxx. xxx.xxx.xxx forma t. Default: 000.000.000.000 = default gateway d Any properly formatted gatew xxx.xxx format. ay in the xxx.xxx. Values: Default: 000.000.000.000 e = WINS server Values: Any properly formatt ed WINS server in the xxx.xxx.xxx.xxx forma t. address Default: 000.000.000.000 = connection f Values: yes Y = timeout checking N = no Default: Y Time, in seconds, before the connection times out. g = timeout value through Values: 9999 0 300 Default: Time, in minutes, that the br oadcast is sent to update the devi ce’s ARP cache. h = ARP broadcast interval Values: 0 through 30 Default: 0 (no ARP sent) The port number that the printe r should use for its RAW data. i = base raw port number 65535 Values: 1 through 9100 Default: Programming Guide 1/31/18 P1099958-001

412 ZPL Wireless Commands 412 ^WL ^WL – Set LEAP Parameters Note • ckward-compatibility with printe command is provided only for ba ^WL The rs using ^WX 60.15.x. For these firmware vers firmware prior to V50.15.x or X ions and later, use on page 419 to set the security ty pe and related parameters. ® ication Protocol (LEAP) mode Use this command to enable Cisco Lightweight Extensible Authent method that is available with some wireless radio and set parameters. LEAP is user authentication cards. Format: ^WLa,b,c Details Parameters a = mode Values: OFF, ON Default: OFF b = user name Values: Any 1 to 32 alphanumeric including special characters Default: user c = password Values: Any 1 to 32 alphanumeric including special characters Default: password Programming Guide 1/31/18 P1099958-001

413 ZPL Wireless Commands 413 ~WL ~WL – Print Network Configuration Label onfiguration label ( ). Figure 2 Generates a network c Format: ~WL Figure 2 • Network Configuration Label Wireless Plus Print Server Wireless Print Server and Internal Wireless Plus Print Server Other Printers/ Xi4, R110Xi4, ZM400, ZM600, PrintEngines RZ400, RZ600 1/31/18 Programming Guide P1099958-001

414 ZPL Wireless Commands 414 ^WP ^WP – Set Wireless Password This command does not apply to the S4M. Note • Use this command to set the four-digit wireless password (not t he same as the general printer password). If the wireless password is 0000 , the Wireless and Wireless Pl us print servers run in an “unprotected” mode, which means he wireless password through the that you do not need to enter t control panel to view or m odify wireless settings. If a wireless password is set, the values for the following par ameters will not a ppear through the control panel until the wir eless password is entered: •MAC Address • ESSID •WLAN Security • WEP Type • WEP Index • Reset Network Format: ^WPa,b Parameters Details = old wireless a Values: 0000 through 9999 password Default: 0000 b = new wireless 0000 through 9999 Values: password 0000 Default: P1099958-001 Programming Guide 1/31/18

415 ZPL Wireless Commands 415 ^WR ^WR – Set Transmit Rate reless print servers. Use this command to c hange the transmission rate for 802.11b wi Format: ^WRa,b,c,d,e Parameters Details Sets the 1 Mb/s transmit rate. a = rate 1 Values: Y (On), N (Off) Sets the 2 Mb/s transmit rate. b = rate 2 Y (On), N (Off) Values: Sets the 5. 5 Mb/s transmit rate. c = rate 5.5 Values: Y (On), N (Off) Sets the 11 Mb/s transmit rate. d = rate 11 Values: Y (On), N (Off) = transmit power e 1, 5, 20, 30, 50, 100 Values: Programming Guide 1/31/18 P1099958-001

416 ZPL Wireless Commands 416 ~WR Reset Wireless Radio Card and Print Server ~WR – e print server (wired or wireless) when Use this command to reinitialize the wireless radio card and th the Wireless or Wireless Plus p rint server is running. The comm and also causes any wireless radio card in the printer to reassoci ate to the wireless network. Format: ~WR 1/31/18 Programming Guide P1099958-001

417 ZPL Wireless Commands 417 ^WS ^WS – Set Wireless Radio Card Values eless radio card values for ESSI Use this command to set the wir D, Operating Mode, and Card Preamble. Format: ^WSe,o,p,h,i,j,k Parameters Details e = ESSID value Values: , including all ASCII and Extended ASCII Any value up to 32 characters characters, including th e space character. W hen this parameter is left blank, the ESSID is not changed. Default: 125 o = operating mode I (Infrastructure), A (Adhoc) Values: Default: I p = wireless radio Values: L = long card preamble S = short Default: L Adds a pulse to the network traffic generated by the printer. T his pulse is necessary h = wireless pulse to keep the printer online. with some network configurations Values: disabled 0 = This parameter is supported enabled 1 = in firmware version V60.15.x, 1 Default: V50.15.x, R6x.15.x, R53.15.x, ZSPx, or later. wireless pulse feature Sets the interval at which the wireless pulse is sent when the i = wireless pulse is enabled. interval Values: 5 to 300 seconds 15 Default: This parameter is supported in firmware version V60.15.x, V50.15.x, R6x.15.x, R53.15.x, ZSPx, or later. . Table 25 For commonly used channel masks, see j = channel mask Values: 4 Hexadecimal digits preceded by “0x” (0x0000 to 0xFFFF) 0x7FF Default: This parameter is supported in firmware version X60.15.x, V50.15.x, or later. access point. e channel set by the In international mode , the printer uses th k = international mode 0 (Disabled), 1 (Enabled) Values: 0 Default: This parameter is supported in firmware version X60.15.x, V50.15.x, or later. Programming Guide 1/31/18 P1099958-001

418 ZPL Wireless Commands 418 ^WS Table 25 • Channel Mask Settings Region Channel Mask United States, Can ada, Latin America 0x7FF Europe, Middle East, Africa, other 0x1FFF Japan 0x3FFF 1/31/18 Programming Guide P1099958-001

419 ZPL Wireless Commands 419 ^WX Configure Wireless Securities ^WX – Use this command to configure the wireless security settings fo r your printer. Values entered for this command must match wha WLAN and must be supported by the wireless t is configured on your radio card that you are using. ^WX command replaces individual ZPL commands for different securit y types. The When using certificate files, your printer supports: Note • • Using Privacy Enhanced Mail (PEM ) formatted certificate files. • Using the client certificate and private key as two files, each downloaded separately. • Using exportable PAC files for EAP-FAST. ecurity type that you • The supporting parameters that a re required vary based on the s select. See onpage421 for Different Security Types Supporting Parameters for instructions for each security type. When using certificate files, the time on the printer must be s et correctly for Important • eed, as the time is used in the certificate validation. the websocket connection to succ Format: ^WXa,[zero or more supporting parameters] Details Parameters Enter the two-digit code for the security type th at your WLAN u ses. For which a = security type supporting parameters ecurity types, see (b through n) to use with the different s Supporting Parameters for Different Security Types onpage421 . Note • Configuring the printer for WPA also allows the printer to be u sed in WPA2 environments. to 01 15 Values: 01 = WPA PSK (R6x15.x, R53.15.x, ZSPx, 09 = No wireless security is active and later.) = WEP 40-bit 10 = WPA EAP-TLS 02 = WEP 128-bit 11 03 = WPA EAP-TTLS 04 = EAP-TLS 12 = WPA EAP-FAST 05 = EAP-TTLS 13 = WPA PEAP 06 = EAP-FAST 14 = WPA LEAP =Kerberos 07 = PEAP 15 08 = LEAP Default: 01 ue must be Specifies which encryption key to use for WEP encryption. A val b = WEP encryption specified if using WEP 40-bit or WEP 128-bit. index* Values: 1, 2, 3, 4 Default: 1 ied if using value must be specif hentication type. A Enables the WEP key aut c = WEP WEP 40-bit or WEP 128-bit. authentication type* or S Values: O = open system O = shared key S Default: O * Not used for all security types Programming Guide 1/31/18 P1099958-001

420 ZPL Wireless Commands 420 ^WX Parameters Details Specifies the format of the WEP k ey. A value must be specified if using WEP 40-bit d = WEP key type* or WEP 128-bit. H Values: S or H = hex key storage S = string key storage Default: S ed. A value must be Specifies the actual values of any WEP encryption keys to be us e,f,g,h = specified for at least one WEP encryption k ey if you specify 40 -bit or 128-bit WEP encryption WEP encryption for th e security type. keys 1 through Important • Be careful to include the exact number of commas 4* required for this command when set ting encryption keys (paramet ers e through h ). A missing or extra comma will cause the keys to be stored in the wrong slots and can prevent the printer from joining the wireless network. The encryption mode affects what can be entered for the encrypt ion keys: • For 40-bit, encryption keys can be set to any 5 hex pairs or an y 10 alphanumeric characters. any 26 • For 128-bit, encrypti on keys can be set to any 13 hex pairs or alphanumeric characters. Note • 0x on the WEP key. When using hex storage , do not add a leading The actual value for the encryption key Values: Default: None Specifies a user ID for secu rity types that require one. A value must be i = user ID* specified if using the following security types: EAP-TTLS • LEAP • WPA LEAP • • PEAP WPA PEAP • WPA EAP-TTLS • • Kerberos Values: The actual value for the user ID . Default: user Specifies a password for secu rity types that require one. A value must be j = password* specified if using the following security types: • EAP-TTLS • LEAP • WPA LEAP • PEAP • WPA PEAP • WPA EAP-TTLS • Kerberos Values: The actual value for the password. Default: password * Not used for all security types Programming Guide P1099958-001 1/31/18

421 ZPL Wireless Commands 421 ^WX Parameters Details hat require one. password for security types t Specifies an optional private key A k = optional private ng the following security types: value must be specified if usi key password* • EAP-TLS EAP-FAST • WPA EAP-TLS • WPA EAP-FAST • The actual value for t he optional private key. Values: None Default: Specifies the realm for security types that require it. A value must be specified if l = realm* using Kerberos. Values: for the realm. The actual value Default: kerberos ust be specified if Specifies the K DC for security t e it. A value m ypes that requir m = Key Distribution using Kerberos. Center (KDC)* for the KDC. Values: The actual value krbtgt" Default: Enter the PSK value. This value is calculated and must be the s ame for each device = Pre-Shared Key n on the WLAN. Use ZebraNet Bridge t o generate the PSK value. A v alue must be (PSK) value* specified if using WPA PSK. Important • Do not enter a pass phrase for this field in this command. To use a pass phrase, use the ZebraNet Bridge Enterprise Wirele ss Setup Wizard. adecimal digits Values: a minimum of 64 hex Default: None * Not used for all security types Supporting Parameters for Different Security Types The supporting paramet ers required for this command vary based on the security type that you orting parameters eac h time that you use this command, select. You should not use all of the supp nor will you use extr a commas to separate unused fields. Follow the example and format for your specific security type ireless network data. in this section, substituting your own w reless Security Active Security Type 01: No Wi Format: ^WX01 this command, but it does Example: This example turns off all wirel ess securities controlled under not reset the printer’s wirel ess settings to their defaults. ^XA ^WX01 ^JUS^XZ 1/31/18 P1099958-001 Programming Guide

422 ZPL Wireless Commands 422 ^WX Security Type 02: WEP 40-Bit Format: ^WX02,b,c,d,e,f,g,h ter for WEP 40-bit encryption u This example configures the prin sing index key 1, open Example: A1B2C3D4F5 .” mal WEP key with a value of “ authentication, and a hexadeci ^XA ^WX02,1,O,H,A1B2C3D4F5 ,,, ^JUS ^XZ Security Type 03: WEP 128-Bit Format: ^WX03,b,c,d,e,f,g,h using index key 2, open ter for WEP 128-bit encryption This example configures the prin Example: authentication, and four hexadecimal WEP keys. ^XA ^WX03,2,O,H, 001122334455667788,112233445566778899,223344556677889 900,334455667788990011 ^JUS ^XZ Security Type 04: EAP-TLS Format: ^WX04,k ter for EAP-TLS authentication Example: This example configures the prin with an optional private .” private key password with a value of “ ^XA ^WX04,private ^JUS ^XZ Security Type 05: EAP-TTLS Format: ^WX05,i,j P1099958-001 Programming Guide 1/31/18

423 ZPL Wireless Commands 423 ^WX Example: This example configures the printe r for EAP-TTLS authentication , including a user ID of “ .” password user ” and a password of “ ^XA ^WX05,user,password ^JUS ^XZ Security Type 06: EAP-FAST Format: ^WX06,i,j,k Example: This example configures the printe r for EAP-FAST authentication , including a user ID of ,” a password of “ user “ ,” and an optional private key of “ .” private password ^XA ^WX06,user,password,private ^JUS ^XZ Security Type 07: PEAP Format: ^WX07,i,j Example: This example configures the printe r for PEAP authentication, in cluding a user ID with a password .” with a value of “ ” and a password value of “ user ^XA ^WX07,user,password ^JUS ^XZ Security Type 08: LEAP Format: ^WX08,i,j Example: This example configures the prin ter for LEAP authentication, in cluding a user ID with a value of “ user .” password ” and a password with a value of “ ^XA ^WX08,user,password ^JUS ^XZ Programming Guide P1099958-001 1/31/18

424 ZPL Wireless Commands 424 ^WX Security Type 09: WPA PSK sed in WPA2 environments also allows the printer to be u Configuring the printer for WPA Note • (R6x15.x, R53.15.x, ZSPx, and later.) Format: ^WX09,n inter for WPA Example: This example configures the pr PSK authenti cation with a PSK value of all zeroes (64 hexadecimal digits). ^XA ^WX09, 00000000... ^JUS ^XZ Security Type 10: WPA EAP-TLS also allows the printer to be u Configuring the printer for WPA Note • sed in WPA2 environments. Format: ^WX10,k ter for WPA EAP- ion with an optional TLS authenticat Example: This example configures the prin private key password with a value of “ private .” ^XA ^WX10,private ^JUS ^XZ Security Type 11: WPA EAP-TTLS Configuring the printer for WPA also allows the printer to be u sed in WPA2 environments. Note • Format: ^WX11,i,j tion, including a user Example: This example configures the prin ter for WPA EAP- TTLS authentica .” password user ” and a password with a value of “ ID with a value of “ ^XA ^WX11,user,password ^JUS ^XZ Programming Guide 1/31/18 P1099958-001

425 ZPL Wireless Commands 425 ^WX Security Type 12: WPA EAP-FAST Note • Configuring the printer for WPA also allows the printer to be u sed in WPA2 environments. Format: ^WX12,i,j,k tion, including a user ter for WPA EAP-FAST authentica This example configures the prin Example: password ID of “ user ,” a password of “ .” ,” and an optional private key of “ private ^XA ^WX12,user,password,private ^JUS ^XZ Security Type 13: WPA PEAP Note • sed in WPA2 environments. also allows the printer to be u Configuring the printer for WPA Format: ^WX13,i,j authentication Example: This example configures the prin ter for WPA PEAP , including a user ID .” ” and a password with a value of “ with a value of “ user password ^XA ^WX13,user,password ^JUS ^XZ Security Type 14: WPA LEAP Configuring the printer for WPA also allows the printer to be u sed in WPA2 environments. Note • Format: ^WX14,i,j Example: This example configures the printe r for WPA LEAP authentication , including a user ID user .” password ” and a password with a value of “ with a value of “ ^XA ^WX14,user,password ^JUS ^XZ Programming Guide P1099958-001 1/31/18

426 ZPL Wireless Commands 426 ^WX Security Type 15: Kerberos Format: ^WX15,i,j,l,m Example: This example configures the printe r for Kerberos encryption, in cluding a Kerberos user ID with a value of “ user ,” zebra ,” a realm of “ ,” a Kerberos password with a value of “ password and a KDC of “ krbtgt .” ^XA ^WX15,user,password,zebra,krbtgt ^JUS ^XZ 1/31/18 Programming Guide P1099958-001

427 ZBI Commands This section explains the Zebra Basic Interpreter, its commands , descriptions, formats, and parameters. Contents Introduction to Zebra Basic ...428 Interpreter (ZBI)... Command and Function Ref erence Format... ...429 Section Organization... ... ...430 Editing Commands... ...431 ... Running and Debugging C ommands... ...439 Base Types and Expressions... ... ..450 Control and Flow... ... ...459 ... Input and Output... ...467 File System... ... ...488 ...49 3 Comma Separated Values (CSV)... Events... ...498 ... Systems... ... ...509 String Functions... ... ...520 Math Functions... ...536 ... Array Functions... ... ...544 Time and Date Functions... ... ...552 Set/Get/Do Interactions... ... ...557 ...559 ... Example Programs... Programming Guide P1099958-001 1/31/18

428 ZBI Commands 428 Introduction to Zebra Basic Interpreter (ZBI) Introduction to Zebra Basic Interpreter (ZBI) What is ZBI and why is it for me? ZBI is an "on-the-printer" progr aming language th at offers many of the functions found in ANSI BASIC. The ZBI language allows the user to create applications that are run on the printer to manipulate data streams. By using ZBI, it is possible to have t he printer perform the same functions that a computer or programmabl e terminal might otherwise be use d for. may not need a separate computer. ilable on Zebra printers, you With the connectivity options ava r printers, add them to your ne twork, and let the printers serve as Simply load a ZBI program on you the gateway for moving data. : Here are some of the applicatio ns that can be written using ZBI • Connect a barcode scanner to the printer. Based on scanned dat a, reprint tags, verify printed output, and manage a list of items. • Connect a scale to the printer and print labels, tags, or rece ipts based on the weight of an item. om the printer t o retrieve or • Connect the printer to a PC-bas ed database and send queries fr upload data. • Convert incoming data into the an be used to pr int a label. Thi s is useful for commands that c replacing other brands of pr inters with new Zebra units. • Provide fail-over to another pri nter when the target printer i s in an error state. Printers, ZBI Keys, & ZBI Versions Information about ZBI 1.x and ZBI 2.x: ZBI versions 1.0 through 1.5: ZBI 1.x was available on printers with X.10 or higher firmware (such as V48.10.x). To determine if the printer s upports ZBI ve rsion 1, check the firmware version loaded on the printer. This can be determined by the absence of a “Z” in the firmware version number (for example, firmware V 1, while V60.13.0.12Z does not). 60.13.0.12 supports ZBI version The following printers supp ort the ZBI 1.x firmware: • LP/TLP 284x-Z and 384x-Z • S300/S400/S500/S600 • Z4000/Z6000 •Z4M/Z6M • Z4Mplus/Z6Mplus • 105 SL • PAX 3 • Xi II • III Xi Programming Guide P1099958-001 1/31/18

429 ZBI Commands 429 Command and Function Reference Format s that support ZBI version 1.x., ZBI-Developer can be used to create programs for use on printer however, the features that are only available in ZBI v2.x canno t be used with pr inters running ZBI v1.x. For example, “on-printer ” debugging advanced file encrypt ion and commands added in ZBI 2 1.x. If you do not ha t meets this rinters running ZBI are not supported in p ve a printer tha requirement, contact your reseller. hecking only. On-printer ons 1.0 through 1.5 is limited to syntax c Support for ZBI versi Note • BI versions 1.0 through 1.5. debugging is not supported for Z Printers with firmware versions X.16 or later (for .0 and higher: ZBI versions 2 example, V60.16.x and V53.16.x) can support ZBI version 2.0 and later. The following printers support the ZBI 2.x firmware: • Plus III Xi • Z4Mplus/Z6Mplus SL • 105 •S4M • 4 PAX • ZM400/ZM600, RZ400/RZ600 •G-Series • HC100 • Xi4, RXi4 • LP/TLP2824+ •KR403 These printers can be either ZBI-Ready or ZBI-Enabled, dependin g on whether or not a ZBI Key file cturing or later has been loaded on the printer. Z BI Keys can be loaded onto pri nters during manufa I Key Manager software . A Downloader Utility/ZB www.zebrasoftware.com purchased at utility is available to assist i n the task of sending ZBI Keys to printers. The ZBI.nrd file is required to be present on the printer for Z BI 2.0 to be enabled. The ZBI Key is the name ZBI.nr stored on the printer’s E: memor y location with d. The file is persi stent. It cannot be command is used to ^JB e, if the ory is initialized. For exampl deleted even if the printer’s mem initialize the location, the ZBI Key file will not be deleted. When a printer is ZBI-R eady but not ZBI-Enabled, the firmware v ersion will display a "Z" at the end of the version string (for example, V60.16.0Z). Additionally, t he printer’s configuration label will show that the printer i s not ZBI-Enabled. end of the version firmware version will not di When a printer is ZBI-Enabled, the splay a "Z" at the string (for example, V60.16.0Z). A dditionally, the printer’s co nfiguration label will show that the printer is ZBI-Enabled. rs are to be ZBI-Enabled Each single ZBI Key can only be used once. When multiple printe Note • ZBI Key cannot retrieved from multiple Keys will be needed. The printer to a host system. Command and Function Reference Format are presented This section describes how comma nds and functions in this document. Programming Guide 1/31/18 P1099958-001

430 ZBI Commands 430 Section Organization Command/Function NAME Describes how the command is us ed, its capabilities, and its ch aracteristics. the command is arranged and its The Format section explains how parameters. For Format AUTONUM command starts the auto-number ing option. The format for the c ommand is example, the AUTONUM . The and are parameters of this co mmand and are replaced with , values determined by the user. closed within par For functions, parameters are en eparated by commas, such as entheses and s EXTRACT$(A$,START$,STOP$). written as a name, w rs are written as a name followed Numeric parameters are hile string paramete by a dollar sign. Parameters If a command has parameters that make a command or function mor e specific, they AUTONUM parameter is defined as: example, the are listed under this head ing. Still using the = number used to start the auto-numbering sequence Return Value (functions only) The return value is the result o f evaluating the function or ex pression. in a programming context, an e When a command is best clarified Example xample of the ZBI ng parameters, exact code to be entered, or data returned from the code is provided. Text indicati font to be easily recognizable. Courier host is printed in the Example: An example of PRINT code is: 10 PRINT "HELLO WORLD" RUN HELLO WORLD Comments This section is reserved for notes that are of value to a progr ammer, warnings of or command-specific information that should be taken into potential command interactions, ommand and must be preceded nt could be: This is a program c consideration. An example comme by a line number. Function Rules Functions built into this inter ed in expression s only. The functi on names are not preter can be us case sensitive. are enclosed in parentheses. If no parameters exis t, no parentheses If input parameters exist, they are used. unctions or expressions of the same Variables referenced in the functions could be substituted by f , it returns a string value. Ot herwise, it returns a numeric $ on name ends with a type. If the functi value. Section Organization The sections in this guide are arranged based on programming to pics. A brief description of the sections is listed below. Programming Guide P1099958-001 1/31/18

431 ZBI Commands 431 Editing Commands This section describes the commands which are used to manipulat Editing Commands e the interpreter and enter programs. Running and Debugging Outlines the control commands u sed to run and debug programs. Fundamental structure for Base Types and Expressions manipulating strings and computing numeric and boolean values. Control and Flow Commands to conditionally execute code and control the flow of the program Input and Output Outlines how to communicate with the physical ports, internal p orts, and network. Shows how programs and forma ts can be saved and recalled File System Comma Separated Values Identifies how to load and store comma separated data Events Explains how to capture and tri gger internal events in the prin ter Systems Contains miscellaneous syste ms interface functions String Functions Handles string manipulation Math Functions Handles mathematical calculations resize, and query arrays Describes how to search, Array Functions Time and Date Functions to access the real time clock option Functions Set/Get/Do Interface Functions to directly interfac e with the Set/ Get/Do system Example Programs More examples to give a head sta rt in creating your application s Writing ZBI Programs There are two main ways to devel op ZBI programs. The preferred method is to use the ZBI-Developer application. ZBI-Dev eloper allows you to create a nd test programs before a printer is s of this program allo even turned on. I n addition, many feature w for quicker program creation and more meaningful debugging. ZBI-D the Zebra web site. eveloper can be downloaded from An alternate method f or developing a progra m is through a direc t connection to the printer using a terminal emulation program. Editing Commands This section details the Editing Commands. This section describ es the commands which are used to manipulate the interpreter and enter programs. These commands a re used while controlling the ZBI environment from a console conne ction. Here is a quick list of these commands: variables currently in memory NEW – Clears out the program and – Comment commands REM and ! Programming Guide 1/31/18 P1099958-001

432 ZBI Commands 432 Editing Commands LIST – Lists the program currently in memory AUTONUM – Automatically generates the next line number RENUM – Renumbers the program currently in memory d back onsole are echoe ECHO – Controls whether characters rec eived on the c If you are using ZBI-Developer, the commands that will be most useful are AUTONUM and REM/!. The following example shows the use of Edi ting commands from wi thin a console connection. Preview: NEW AUTONUM 10,5 Entered 10 REM "Hello World" Application automatically when 15 PRINT "Hello World" ! comment... AUTONUM is 20 A blank line stops used AUTONUM LIST " Application " 10 REM Hello World 15 PRINT " Hello World " NEW LIST Preview when viewed in ZBI-Developer AUTONUM 10,5 REM "Hello World" Application PRINT "Hello World" ! comment... Programming Guide P1099958-001 1/31/18

433 ZBI Commands 433 Editing Commands NEW This command clears the interpre ter’s memory, including the lin e buffer and variable s, but not any open ports. Use this command when creating code to restart the coding process or before resending a program from a file t o the interpreter. Format NEW Parameters N/A command: NEW of how to use the This is an example Example: 10 PRINT "Hello World" RUN Hello World LIST " 10 PRINT " Hello World NEW LIST is received by the hat takes effect as soon as it This is an interactive command t Comments printer. P1099958-001 Programming Guide 1/31/18

434 ZBI Commands 434 Editing Commands REM A numbered remark line starts with REM and includes text in any form after it. This line is ignored b y the interpreter. REM Format Parameters The comment string can contain an y character and is terminated by a carriage return. REM Example 1: command: This is an example of how to use the 10 REM COMMAND LINES 20-100 PRINT A LABEL escription and are included as a separate program Remarks are used for program d Comments exclamation mark ( ! ). line. To append a comment to the end of a program line, use the A useful method to keep comments he printer) is to a lways start the REM in a stored file (but not in t of the lines are sent to the p t REM line will stay line with the number 1. When all rinter, only the las rograms. M for large p l require less RA resident in the printer. This wil Example 2: This is an example of how to re-use the REM command: 1 REM MYPROGRAM COPYRIGHT ME Inc. 2008 1 REM While debugging a port may be left open 5 CLOSE ALL 1 REM Open the ports this program will use 10 OPEN #0: NAME: "SER" ! Restart the console P1099958-001 Programming Guide 1/31/18

435 ZBI Commands 435 Editing Commands ! (EXCLAMATION MARK) s the marker f The exclamation mark i nd of numbered programming or adding comm ents to the e mand is processed. lines. Any text following the ! is ignored when the line or com Format ! by the carriage Parameters The comment string can contain an y character and is terminated return. This is an example of how to use the Example: ! (comments) command: 10 LET A=10 ! Indicates number of labels to print None Comments Programming Guide 1/31/18 P1099958-001

436 ZBI Commands 436 Editing Commands LIST lines current ly in memory. This command lists the program Format LIST LIST LIST - Parameters default = lists all lines in memory = line to start listing the program line at = line to stop listing the progr am. If not specified, only the will print. LIST of how to use the This is an example Example: command: 1 REM MYPROGRAM COPYRIGHT ME Inc. 2008 1 REM While debugging a port may be left open 5 CLOSE ALL 1 rem Open the ports this program will use 10 OPEN #0: NAME: "SER" ! Restart the console 20 PRINT #0: "Hello World" LIST 1 REM Open the ports this program will use 5 CLOSE ALL 10 OPEN #0: NAME: "SER" ! Restart the console 20 PRINT #0: "Hello World" LIST 1 1 REM Open the ports this program will use LIST 5-10 5 CLOSE ALL 10 OPEN #0: NAME: "SER" ! Restart the console y what was entered. It is The output of the LIST command may not match exactl Comments based on how the program lines are stored in memory. Notice tha t the last comment line the REM is entered in lower case character s. When it is listed, the REM is displayed in uppercase. is received by This is an interactive command t hat takes effect as soon as it the printer. 1/31/18 Programming Guide P1099958-001

437 ZBI Commands 437 Editing Commands AUTONUM This command automatic ally generates sequential program line nu mbers. Format AUTONUM , Parameters A = the number used to start the auto-numbering sequence etween the new line numbers = the automatic increment b B Example: This example shows specifying t he starting line number in the i ncrement between new llowing at the prompt: line number. Type the fo AUTONUM 10,5 SUB START PRINT "HELLO WORLD" GOTO START LIST Will produce: AUTONUM 10,5 10 SUB START 15 PRINT "HELLO WORLD" 20 GOTO START The three lines are automat ically started with the AUTONUM parameters; in this c ase, the first line starts with 10 and each subs equent line increments by 5. and entering the Comments This feature is disabled by overwriting the current line number s, or leaving the line blank. desired interactive mode command Use of the command allows for SUB and GOSUB statements that do not require line numbers in GOTO your program. This is an interactive command t hat takes effect as soon as it is received by the printer. P1099958-001 Programming Guide 1/31/18

438 ZBI Commands 438 Editing Commands RENUM This command renumbers the lines o f the program being edited. RENUM can reorganize code when GOTO GOSUB and following line numbers become over- or under-spaced. The line references statements are renumbered if they are constant numeric values. Renumbering does not occur if the line numbers are outside of t he range limits of 1 to 10000. Format RENUM , Parameters = the number to start the renumbering sequence = the automatic increment between the new line numbers This is an example RENUM of how to use the command: Example: LIST 13 LET A=6 15 LET B=10 17 GOTO 13 RENUM 10,5 LIST 10 LET A=6 15 LET B=10 20 GOTO 10 hanges from 13 to 10 to reflect The target of the GOTO command c the renumbering. Note • is received by the hat takes effect as soon as it This is an interactive command t Comments printer. Programming Guide P1099958-001 1/31/18

439 ZBI Commands 439 Running and Debugging Commands ECHO When Console Mode is enabled, th printer echoes the characters is command controls whether the ECHO ON ts return to the screen. If is entered, keystroke resul back to the communications port. If ECHO OFF is entered, keystro ke results do not return to the screen. Format ECHO ON ECHO OFF Parameters = toggles the ECHO command on or off Example N/A it is received by the This can be an interactive command that takes effect as soon as Comments printer, or a program command th at is preceded b y a line number . Running and Debugging Commands The following commands were writt en before the development of t he ZBI-Developer application. and when using ZBI ve ing commands are essentially rsion 1, the follow With that application, obsolete. However, for those wh oping ZBI applica tions before ZBI-Developer, the o started devel following reference will be helpful. RUN – Starts executing the program c urrently in memo ry at the first line of the program CTRL-C Sends an end-of-transmission character, ETX , to the console to terminate the ZBI program currently running. RESTART – Starts executing the program c urrently in memory where it was last stopped STEP – Executes one line of the program in memor y where it was last stopped DEBUG not the TRACE and BREAK command s are processed – This mode controls whether or TRACE – Shows which lines have been executed and which variables have been changed BREAK – Stops the currently running program ADDBREAK – Adds a break to an existing line DELBREAK – Deletes an existing break Terminates and exits t ZPL he ZBI environment. Programming Guide 1/31/18 P1099958-001

440 ZBI Commands 440 Running and Debugging Commands This example shows many of the Running and Debug Commands in pr actice. Example: Preview: " TEN 10 PRINT " ZBI Program 20 PRINT " TWENTY " 30 PRINT " THIRTY " RUN Runs the whole program TEN TWENTY THIRTY STEP Runs one line TEN g the program Completes runnin RESTART where STEP left off TWENTY THIRTY Adds a breakpoint ADDBREAK 20 on line 20 RUN TEN on line: 20 DEBUG ON Turn Trace On TRACE ON RESTART 20 TWENTY 30 THIRTY P1099958-001 Programming Guide 1/31/18

441 ZBI Commands 441 Running and Debugging Commands RUN This command executes the curren t program, starting with the lo west line number. The interpreter will continue to exec ute the program lines in order unless a co ntrol statement dir ects the flow to a different point. When a higher line number does not exist or th e END command is processed, the RUN command will stop. RUN Format Parameters N/A Example: RUN of how to use the This is an example command: 10 PRINT "ZBI" 20 PRINT "Programming" RUN ZBI Programming 15 END RUN ZBI when the application Ports that are open is activated will rema in open after the Comments application has terminated. Vari ables also remain after the app lication has terminated. To execute programs when the printer is powered on, use the ^JI command in the Autoexec.zpl file. This is an interactive command t the printer. is received by hat takes effect as soon as it P1099958-001 Programming Guide 1/31/18

442 ZBI Commands 442 Running and Debugging Commands CTRL-C ETX Sending an end-of-transmission character, (port 0) terminates the ZBI (3 in hex), to the console program currently running. Format N/A N/A Parameters N/A Example In most terminal programs, you t erminate the program using the Ctrl-C key Comments and have the terminal program send sequence. Another method is to store an ETX character in a file the file to the console port. Note • It is not recommended to use RESTART after using a CTRL-C because a command may ed. Restarting will have an unde fined result. have been prematurely interrupt Programming Guide P1099958-001 1/31/18

443 ZBI Commands 443 Running and Debugging Commands RESTART If a program was halted by a break point or the BREAK command, the RESTART command can be , except the RESTART functions similar to RUN used to reactivate the program at the point it stopped. program attempts to restart fr om the point where it was last te rminated. It also works in conjunction STEP command, picking up where the STEP command ended. with the RESTART Format N/A Parameters Example: An example of the command: RESTART " 10 PRINT " TEN 20 PRINT " TWENTY " 30 PRINT " " THIRTY RUN TEN TWENTY THIRTY STEP TEN RESTART TWENTY THIRTY ADDBREAK 20 RUN TEN on line: 20 DEBUG ON TRACE ON RESTART 20 TWENTY 30 THIRTY Comments If the program has not been run or has finished, runs the program from the RESTART beginning. the printer. hat takes effect as soon as it This is an interactive command t is received by P1099958-001 Programming Guide 1/31/18

444 ZBI Commands 444 Running and Debugging Commands STEP command, If a program was stopped by a BREAK the program one line STEP attempts to execute from where it last ended. If the p rogram has not been run or ha s been completed, this executes the lowest numbered line. STEP Format Parameters N/A Example: of how to use the This is an example command: STEP 10 PRINT "Hello World" 20 Print "TWENTY" STEP Hello World STEP TWENTY Comments is received by the hat takes effect as soon as it This is an interactive command t printer. Programming Guide P1099958-001 1/31/18

445 ZBI Commands 445 Running and Debugging Commands DEBUG enables and disables the TRACE and BREAK commands. DEBUG Format DEBUG ON DEBUG OFF Parameters ON = turns the debug mode on enabling the TRACE and BREAK commands to be processed. mode and causes OFF BREAK = turns the debug mode off. This disables the TRACE commands to be ignored. . and on page 446 TRACE See Example: on page 447 BREAK ZBI-Developer. It is This command has no effect on the processing of break points in Comments command when writing programs in the DEBUG recommended that you avoid using the f ZBI-Developer. ZBI-Developer environment, ins tead use the Debug capabilities o Programming Guide 1/31/18 P1099958-001

446 ZBI Commands 446 Running and Debugging Commands TRACE This command enables you to debug an applicatio n by outputting the executed li ne numbers and changed variables to the console. Format TRACE ON TRACE OFF Parameters = controls whether TRACE is active (ON) or disabled (OFF). DEBUG is activated and the TRACE command is on, trace details are displayed. When If any variables are changed, the new value displays as follows: New Value Variable = line number printed as follows: Every line processed has its Line Number Example: An example of TRACE command in use: 10 LET A=5 20 GOTO 40 30 PRINT "Error" 40 PRINT A DEBUG ON TRACE ON RUN 10 A=5 20 40 5 it is received by the This can be an interactive command that takes effect as soon as Comments . y a line number at is preceded b printer, or a program command th TRACE command when writing programs in the It is recommended that you avoid using the f ZBI-Developer. ZBI-Developer environment, ins tead use the Debug capabilities o Programming Guide P1099958-001 1/31/18

447 ZBI Commands 447 Running and Debugging Commands BREAK This command allows you to stop the program when the program re aches this line. Format BREAK N/A Parameters Example: command in use: An example of BREAK 10 LET A=5 20 BREAK 30 PRINT A DEBUG ON TRACE ON RUN 10 A=5 20 Comments This command is available only when the DEBUG function has been activated. When RUN starts the program from the beginning. DEBUG is on, BREAK halts processing. allows RESTART the program to continue from where it left off. ommand will inte When using ZBI-Developer, this c rfere with the debugging operations built into the application. eded by a line numbe This is a program comm and that must be prec r. P1099958-001 Programming Guide 1/31/18

448 ZBI Commands 448 Running and Debugging Commands ADDBREAK the program when the program re Description This command allows you to stop aches a specified line. Format ADDBREAK Parameters in the program, the A = the line number to break on. I f the number spec ified is not program will not break. ADDBREAK command. An example of the Example: 10 LET A=5 20 PRINT A ADDBREAK 20 RUN ON LINE:20 RESTART 5 This command is available only when the DEBUG function has bee n activated. Comments RUN starts the program from the beginning. DEBUG is on, BREAK halts processing. When RESTART ue from where it left off. allows the program to contin This is the command used internally by ZBI-Developer when the u ser right-clicks over a program line and adds a Breakpoint via the "Toggle Breakpoint" selection. r setting breakpoints in ZBI. It is the recommended method fo A maximum of 16 breakpoints can be set in an application. is received by This is an interactive command t the printer. hat takes effect as soon as it 1/31/18 Programming Guide P1099958-001

449 ZBI Commands 449 Running and Debugging Commands DELBREAK This command allows you to remove existing breakpoints. DELBREAK Format A = the line number from which to remove the break. If 0 is spec ified, all break points Parameters will be removed. If the number spec ified is not a breakpoint, t he command will have no effect. An example of the DELBREAK command: Example: 10 LET A=5 20 PRINT A ADDBREAK 20 DEBUG ON TRACE ON RUN 10 A=5 ON LINE:20 RESTART 20 5 DELBREAK 20 RUN 10 A=5 20 5 This command is available only when the DEBUG function has bee n activated. Comments halts processing, BREAK is on, DEBUG starts the program from the beginning, and RUN When RESTART allows the program to continue where it left off. ser right-clicks over a program line This is the command used internally by ZBI-Developer when the u and removes a Breakpoint via the "Toggle Breakpoint" selection. can be set in an application. A maximum of 16 breakpoints the printer. This is an interactive command t hat takes effect as soon as it is received by P1099958-001 Programming Guide 1/31/18

450 ZBI Commands 450 Base Types and Expressions ZPL This command terminates and exits the ZBI environment. Format ZPL Parameters N/A e ZPL command. An example of th Example: ZPL ZBI TERMINATED This is an interactive command t is received by the Comments hat takes effect as soon as it printer. and Expressions Base Types There are two base types in the ZBI language. These types are I ntegers and Strings. Integers are whole numbers that contain no fra ues for integers is: ctional part. The range of val -2,147,483,648 to +2,147,483,647 by the amount of memory in the system Strings are character arrays. The string length is only limited haracter can have a value betwe en 0 and 255 (version 2.0 and (version 2.0 and higher). Each c higher). based on the handl ing of control racters (0-31) may be difficult to debug The use of control cha rminate a ZBI characters in different communica e ETX (3) will te tions programs. In addition th R$ function when control characters application when it is received on the console port. Use the CH must be placed into strings. Note • f 255 characters. here was a string length limit o In ZBI version 1.4 and lower, t This section is organized as follows: • Variable Names • Variable Declarations • Constants • Arrays • Assignment • Numeric Expressions • String Concatenation (&) • Sub-strings • Boolean Expressions • Combined Boolean Expressions Programming Guide P1099958-001 1/31/18

451 ZBI Commands 451 Base Types and Expressions Variable Names To distinguish strings from inte t end in a $. Variable names must gers, string variable names mus nd can include any se quence of letters, di start with a letter a gits, and underscores. Function and command names must not be used as a variabl e name. Variable nam es are not case sensitive and are converted to uppercase by the interpreter. A common mistake is to use a comma nd or function name as a vari able. To avoid using these reserved words, ZBI-Developer can be a useful resource. Reserve d words are highlighted making it easier to spot this occurrence an d thus, saving debugging time. Valid variable names: I, J, K, VARNAME, VARSTR$, MYSTR$,MY_STR9$ Invalid Names: STR$ = Reserved word ORD = Reserved word VAL = Reserved word W# = Invalid character (# ) 9THSTR = Variable can no t start with a number Variable Declarations using arrays to s are needed, consider 255 variables. If more variable ZBI will allow storage of up to store data. The base array will t slots, but it can be declared to allow ake up one of the 255 variable for many indices. Variables can be declared explic itly or implicitly. If a variab le has not been use d before, it will be declared when used. The default value for an integer will be ze ro and the default value of a string will be an empty string. Explicit: DECLARE NUMERIC DECLARE STRING he DECLARE statement, it will b If the variable existed before t e defaulted. Implicit: LET = NUMERIC EXPRESSION LET = STRING EXPRESSION The Interpreter is limited to 25 5 variables. If more variables are required, consider using arrays. Constants Integers are represen ted simply by numbers , such as 5, -10, 100 00. Do not use com mas in integer constants. Strings are enclosed by quotes. If a q uote is requir ed in the string, use double quotes, result in the string – Look her such as “Look here->””<-“ would e->”<-. Programming Guide 1/31/18 P1099958-001

452 ZBI Commands 452 Base Types and Expressions Arrays ng or integer values used by a program. Array indices are accessed An array is a collection of stri through parentheses. Array indice s start at 1 and end at the le ngth of an array (for example, he third location of the varia ble array). One- and two-dimensional MyArray(3) returns the value in t onal arrays are referenced with two indices in parentheses, arrays are allowed. Two-dimensi separated by a comma. DECLARE command. Arrays can be re-dimensioned Arrays must be allocated through the use of the DECLARE , however, this will replace the original array. by using he size of the memory available. Array size is limited only by t Format DECLARE STRING () DECLARE STRING (,) DECLARE NUMERIC () DECLARE NUMERIC (,) Parameters = number of entries in a single dimension array = number of rows in a two dimensional array = number of columns in a two dimensional array code is: ARRAY An example of Example: 10 DECLARE STRING INARRAY$(3) 20 FOR I = 1 TO 3 30 PRINT "Name "; I; ": "; 40 INPUT INARRAY$(I) 50 NEXT I 60 PRINT INARRAY$(1); ", "; INARRAY$(2); ", and "; INARRAY$(3); 70 PRINT " went to the park" RUN Name 1: Jim Name 2: Jose Name 3: Jack Jim, Jose, and Jack went to the park If you attempt to acce Comments ss an array outside of its allocated boun ds, an error will occur. Assignment All lines must start with a command. In order to assign a value to a variable, use the LET command. es must match the expression type. Multiple variables can be plac ed before the =. T he variable typ t is always calculated completel y before the assignment is made. The right side of the assignmen This allows a variable to be the target and source of the assig nment. qualifier, it replaces the value of the h a sub-string ring variable wit When a value is assigned to a st sub-string qualifier. The length of the value of the string var iable may change as a result of this replacement. 1/31/18 Programming Guide P1099958-001

453 ZBI Commands 453 Base Types and Expressions example: ASSIGNMENT An Example: 10 LET A=5 20 LET B$="HELLO" 30 LET B$(5:5)=B$ P1099958-001 Programming Guide 1/31/18

454 ZBI Commands 454 Base Types and Expressions LET The LET command is used to assign value to a specific variable. The expression is evaluated and on page 452 assigned to each variable in the variable list. See Assignment . Format LET [,]* = essage will be displayed. The variable types must match the expression type or an error m Error: Poorly formed expression. qualifier, it replaces the When a value is assigned to a string variable with a sub-string he string variable may change value of the sub-string qualifier. The length of the value of t as a result of this replacement. N/A Parameters This is an example Example: LET command: of how to use the 10 LET A$= "1234" 15 LET A$(2:3)= "55" ! A$ NOW = 1554 20 LET A$(2:3)= "" ! A$ NOW = 14 10 LET A$= "1234" 15 LET A$(2:3)= A$(1:2) ! A$ NOW = 1124 10 LET A$= "1234" 15 LET A$(2:1)= "5" ! A$ NOW = 15234 Comments This can be an interactive command that takes effect as soon as it is received by the printer, or a program command th at is preceded b y a line number . Numeric Expressions be either a constant, variable, A base numerical expression can or another numerical expression enclosed in parentheses. The five types used (addition, subtrac tion, multiplication, division, and ted below. When evalu exceeding the maximum or ating an expression exponentiation) are lis um value: 2,147,487,647; ates an undefined result. (maxim minimum values at any point cre minimum value: -2,147,483,648) Floating point is not supported. to MOD mple, 5/2=2. Use is always rounded down. For exa When using division, the number determine the remainder. Format 1. + (addition) Addition expressions use this format: + 5+2 result = 7 ) +2 result =27 " " 25 VAL ( 1/31/18 Programming Guide P1099958-001

455 ZBI Commands 455 Base Types and Expressions – (subtraction) Subtraction 2. expressions use this format: - 5-2 result = 3 " 25 ) -2 result =23 " VAL ( 3. * (multiplication) Multiplicatio n expressions use this format: * 5*2 result = 10 " 25 " ) *2 result =50 VAL ( 4. / (division) Division expressions use this format: / 5/2 result = 2 " 25 " ) /2 result =12 VAL ( 5. (exponentiation) Exponentiation expressions use this format: ^ ^ 5^2 result = 25 ) ^2 result =625 " 25 " VAL ( Order of Precedence In mathematics, the order of pr ecedence describes the sequence that items in an expression are processed. All expres sions have a predefin ed order of precedenc e. e is listed below: The order of precedenc Functions Parenthetical Expressions () ^ * and / + and - same precedence. Items with the The * and / have the same precede nce, and the + and - have the ocessed from left to right. same order of precedence are pr For example, this expression 5+(8+2)/5 is processed as 8+2=10, followed by 10/5=2, then 5+2 to give a result of 7. lways have the highest order of precedence, meaning Functions and parenthe tical expressions a that they are processed first. Programming Guide 1/31/18 P1099958-001

456 ZBI Commands 456 Base Types and Expressions String Concatenation (&) The basic string expression may b e either a constant or a varia ble, and concatenation (&) is string to the first string. (&) adds the second supported. Using the c oncatenation operator & command: STRING CONCATENATION (&) This is an example of how to use the Example: 10 LET A$= "ZBI-" 20 LET B$= "Programming" 30 LET C$= A$ & B$ 40 PRINT C$ RUN ZBI-Programming Sub-strings be accessed. This on of the string to a string allows a specific porti Using a sub-string operator on ence to a portion o portion may be the target of an f the string. To assignment operation or a refer determine the coordinates of the string portion t o be used, cou nt the characters from the beginning ng, including spaces. to the end of the stri Format LET (:)= = (:) LET Parameters aracter in the desired string = the position of the first ch = the position of the last character in the desired string. = base string variable of 1. Because the A parameter is less than 1, it is automatically assigned a value If the string is calculated starting wi less than 1. th 1, the A parameter cannot be B is greater than the length of the string, it is replaced with the length of the string. If A is greater than B "" ), which points to the location of the smaller of A , a NULL string ( If a string in the middle of rned. This is used when adding or the end of the string, is retu another string without removing a character. 1/31/18 Programming Guide P1099958-001

457 ZBI Commands 457 Base Types and Expressions This is an example of a sub-string reference: Example 1: LET A$="Zebra Quality Printers" LET B$=A$(1:13) PRINT B$ Zebra Quality This is an example of a sub-string assignment. LET A$= "1234" LET A$(2:3)= "55" ! A$ NOW = 1554 LET A$(2:3)= "" ! A$ NOW = 14 LET A$= "1234" LET A$(2:3)= A$(1:2) ! A$ NOW = 1124 LET A$= "1234" LET A$(2:1)= "5" ! A$ NOW = 15234 The best way to think of assignmen t to a sub-string is as follo ws: an assignment is like selecting a word, and pasting over the selection with the new string. Boolean Expressions ue. ro) as false and non-zero as tr A Boolean expression holds 0 (ze Formats NOT() Parameters = a string variable, string constant or any combination with concatenation = any mathematical operation Comments A numeric expression cannot be compared to a string expression. value of 0 (zero) represents false Numeric expressions can substitute a Boolean expression where a and a non-zero value represents true. Base Boolean expressions: < (less than) 1. Result Expression 1< 2 true 2<2 false 2<1 false 1/31/18 Programming Guide P1099958-001

458 ZBI Commands 458 Base Types and Expressions 2. <= (less than or equal to) Result Expression true 1<=2 true 2<=2 false 2<=1 3. > (greater than) Expression Result false 1> 2 false 2>2 true 2>1 >= (greater than or equal to) 4. Expression Result 1>=2 false true 2>=2 2>=1 true 5. = (equal to) Expression Result 1=2 false true 2=2 " false = " A AA " " " A true " A " = " 6. <> (not equal to) Expression Result 1<>2 true 2<>2 false true AA " <> " " A " " A " <> " A " false Combined Boolean Expressions , base Boolean expressions to re can be used in conjunction with create expanded AND NOT OR , and Boolean expressions. P1099958-001 1/31/18 Programming Guide

459 ZBI Commands 459 Control and Flow 1. NOT — Negate the target expression. Result Expression NOT 1=2 true false NOT 1=1 2. AND — Both expressions must be true for a true result. Result Expression 1=2 AND 1=2 false 2=2 AND 1=2 false 1=2 AND 2=2 false true 2=2 AND 2=2 3. OR — If either expression is t rue, the result will be true. Result Expression 1=2 OR 1=2 false true 1=2 OR 2=2 true 2=2 OR 1=2 2=2 OR 2=2 true Order of Precedence e is listed below: The order of precedenc Expressions and Functions Parenthetical expressions () <, <=, <>, =, =>, > NOT, AND, OR Control and Flow This section outlines the command s to conditionally execute cod e and control the flow of the program. Here is a quick list of these commands: Executes or skips a sequence of s lue of a tatements, depending on the va IF Statements Boolean expression. Repeats instructions based on the results of a comparison. DO Loops FOR Loops tively. executed itera llows code to be A control flow statement which a int in a program GOTO/GOSUB Causes an unconditional jump or tr ansfer of control from one po to another. P1099958-001 Programming Guide 1/31/18

460 ZBI Commands 460 Control and Flow s and GOSUB as the target of SUB Allows you to “substitute” name s instead of act ual line numbers GOTO s. Used to exit the EXIT loops. DO and FOR END Terminates any program currently running. Programming Guide P1099958-001 1/31/18

461 ZBI Commands 461 Control and Flow IF Statements in an IF statement is true and a program line follows If the value of the , this program line is executed. If the value of the Boolean ex pression is false and THEN the keyword a program line follows the keyword , this program line is executed. If ELSE is not present, then ELSE IF statement. END execution continues in sequence, with the line following the DO-LOOP s (no Nesting of blocks is permitted, s me nesting con straints as ubject to the sa overlapping blocks). IF line followed by an ELSE IF line, with the exception that the statements are treated as an ELSE ELSE IF statement. END IF line of the original IF shares the Format IF THEN ~~BODY~~ [ELSE IF THEN ~~BODY~~]* [ELSE ~~BODY~~] END IF N/A Parameters IF Example: This is an example of how to use the statement command: 10 IF A$="0" THEN 20 PRINT "ZBI IS FUN" 30 ELSE IF A$="1" THEN 40 PRINT "ZBI IS EASY" 50 ELSE IF TIME=1 THEN 60 PRINT "It is one second past midnight" 70 ELSE 80 PRINT "X=0" 90 END IF Programming Guide 1/31/18 P1099958-001

462 ZBI Commands 462 Control and Flow DO Loops Processing of the loop is controlled by a expression loca DO or LOOP ted on the line. LOOP statement is the same on either the DO or WHILE lines. The Boolean expression Processing a statement. LOOP continues at the line after the DO statement is true, the is evaluated and if the is the next line to be processed. LOOP Otherwise, the line after the corresponding Processing an UNTIL statement is the same on either the DO or LOOP lines. The Boolean expression is evaluated and if t he statement is false, the LOOP continues at the line after the DO is the next to be processed. LOOP ine after the corresponding statement. Otherwise, the l If is on the LOOP line, the BODY of the loop is execute d before the Boolean expression is evaluated. line has a DO or LOOP statement, the loop continues indefinitely. If neither the Some notes about s: DO-LOOP • can be nested • cannot overlap • have two formats Format DO [ ] ~~BODY~~ LOOP [ ] Example: This is an example of how to use the DO-LOOP command with the conditional on the DO line: 10 DO WHILE A$="70" 20 INPUT A$ 30 LOOP DO UNTIL LOOP command with conditional on the This is an example of how to use the Example: LOOP line: 10 DO 20 INPUT A$ 30 LOOP UNTIL A$="EXIT" s preceded by a line number. This is a program command that i Comments P1099958-001 Programming Guide 1/31/18

463 ZBI Commands 463 Control and Flow FOR Loops FOR loops are an easy way to iterate run a body of code for each through a range of values and value iterated. Format FOR = TO [STEP ] ~~BODY~~ NEXT Parameters = indicates a numeric variable is used. increments each ti me through the FOR-LOOP . = the value assigned to the first time through the loop = the last value through the loop increments each time through th = (Optional) the amount e loop Values of I for the following situations: Result Statement FOR I=1 TO 10 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} FOR I=10 TO 1 {10, 9, 8, 7, 6, 5, 4, 3, 2, 1} FOR I=1 TO 10 STEP 2 {1, 3, 5, 7, 9} FOR I=10 TO 1 STEP 2 {10, 8, 6, 4, 2} FOR I=10 TO 1 STEP 2 { } FOR LOOP skipped of how to use the Example: FOR LOOP command: This is an example 10 FOR X=1 TO 10 STEP 1 20 PRINT X; ":ZBI IS FUN" 30 NEXT X used by the ariables cannot be re but cannot overlap. V loops can be nested FOR Comments nested loops. Programming Guide 1/31/18 P1099958-001

464 ZBI Commands 464 Control and Flow GOTO/GOSUB GOSUB is followed by a line number. The program will attempt to proc ess the line the GOSUB GOSUB statement, command points to rather than t he next line of the program. Upo n executing the the interpreter continues running at the line number specified following . If the line number GOSUB , an error will occur. referenced does not exist GOSUB command stores the line number of the GOSUB line. When Before executing the next line, the statement is called, the program RETURN . moves back to t he next line f ollowing the GOSUB the statement causes an error. statement without a corresponding RETURN GOSUB Executing a statements can be nested. GOSUB GOTO GOSUB except that no return address will be stored. works the same way as Format GOSUB RETURN GOTO or GOSUB. = the program location execut ed immediatel y after the GOTO Parameters Example: This is an example of how to use the GOSUB command: 10 PRINT "Call Subroutine" 20 GOSUB 1000 30 PRINT "Returned from Subroutine" 40 END 1000 PRINT "In Subroutine" 1010 RETURN command: Example: This is an example of how to use the GOTO 10 PRINT "Prepare to Jump!" 20 GOTO 1000 30 PRINT "Jump Missed..." 1000 PRINT "Jump Successful" 1010 END ust be preceded by line numbers . Comments These are program commands and m Programming Guide P1099958-001 1/31/18

465 ZBI Commands 465 Control and Flow SUB GOSUB s names instead o f actual line num bers as the target of This command allows you to use GOTO AUTONUM can be used at the beg inning of a file and there is no need to compute the s. and line number where the jump will go. Format 10 SUB GOSUB / = the integer variable to use as a target for the Parameters GOTO command: SUB of how to use the Example: This is an example AUTONUM 1,1 GOSUB INITCOMM DO GOSUB GETINPUT GOSUB PROCESSINPUT LOOP SUB INITCOMM OPEN #1:NAME "SER" RETURN SUB GETINPUT INPUT #1: A$ RETURN SUB PROCESSINPUT PRINT A$ RETURN ram, any Comments is a numeric variab le. If this variable is changed in the prog to this variable may fail. GOSUB/GOTO 1/31/18 Programming Guide P1099958-001

466 ZBI Commands 466 Control and Flow EXIT FOR loops. This command is used to exit the DO and Format EXIT DO EXIT FOR The specified loop type is exited. For the Parameters DO command, the prog ram will continue FOR . Likewise for the command, the program will LOOP following the next execution on the line . NEXT command e after the next continue on the lin N/A Example This is a program command that i s preceded by a line number. To be explicit and Comments EXIT instead of . reduce errors, it is recommended to use GOTO Programming Guide P1099958-001 1/31/18

467 ZBI Commands 467 Input and Output END END END command is received, command terminates any program currently running. When the The the interpreter returns to interpreting commands (>). END Format Parameters N/A of how to use the END command: This is an example Example: 10 PRINT "THIS PROGRAM WILL TERMINATE" 20 PRINT "WHEN THE END COMMAND IS RECEIVED" 30 END 40 PRINT "THIS SHOULD NOT PRINT" RUN THIS PROGRAM WILL TERMINATE WHEN THE END COMMAND IS RECEIVED Comments s preceded by a line number. This is a program command and i Input and Output unicate with physical ports, in ternal ports, and the network. This section oulines how to comm ZBI allows access to the physical and network connections in th e printer. Most ports are, by default, connected to the ZPL processor . When a port is opened in ZBI, t he port will be disconnected from f connection, there are two methods ZPL and connected into the interpreter. Depending on the type o , the command should be used. OPEN you may use to start the connection. For the static connections ram and leave open for the you open when starting your prog These are the connections that clients are set up following the ynamic connections, servers and duration of your program. For d ACCEPT . upon successful calls to actual connections are started "Sockets" model. On servers, the Below are the available connecti eferred accessors. ons that can be made and the pr Available Ports ZBI Port/Connection Preferred Access Commands/Functions Name Serial "SER" OPEN, CLOSE "PAR" Parallel OPEN, CLOSE USB "USB" OPEN, CLOSE ZPL parser "ZPL" OPEN, CLOSE TCP Server "TCP", SERVERSOCKET, SERVERCLOSE, ACCEPT, CLOSE "TCPX" TCP Client "TCP" CLIENTSOCKET, CLOSE "UDP" SERVERSOCKET, SERVERCLOSE, ACCEPT, CLOSE UDP Server Note: TCPx will not work on PS2 or PS100 print servers. Programming Guide P1099958-001 1/31/18

468 ZBI Commands 468 Input and Output ZBI Port/Connection Preferred Access Commands/Functions Name UDP Client "UDP" CLIENTSOCKET, CLOSE "EML" Email Sender OPEN, CLOSE "BLU" OPEN, CLOSE Bluetooth Note: TCPx will not work on PS2 or PS100 print servers. Creating Connections his section: Here is a quick list of the commands in t OPEN Opens a port for transmitti ng and receiving data. Closes specific ports that are in use. CLOSE Determines if there is data received on a specified port. DATAREADY t for incoming UDP packets or TCP connec tions. SERVERSOCKET Opens a listening socke Closes a listenin SERVERCLOSE g server socket. . ion or sets up UDP transmissions Creates an outgoing TCP connect CLIENTSOCKET Accepts incoming TCP or UDP connections and assigns a channel f ACCEPT or the connection. 1/31/18 Programming Guide P1099958-001

469 ZBI Commands 469 Input and Output OPEN ing data. This command is used to open a port for transmitting and receiv Format OPEN #: NAME Parameters nications = a number to use as a handle to the port for all future commu Values: 0 to 9 Default: a port must be specified onpage467 Available Ports See = port name to open . . Example: This is an example of how to use the OPEN command: 10 OPEN #1: NAME "ZPL" to its buffer, it disconnects, and the ows data to pass directly in The port being opened no longer all interpreter now controls the data flow. r stays in the buffer. Data already in the buffe Comments This can be an interactive command that takes effect as soon as it is received by the . y a line number at is preceded b printer, or a program command th Programming Guide 1/31/18 P1099958-001

470 ZBI Commands 470 Input and Output CLOSE rts that are in use. If a port is open on a channel This command is implemented to c lose specific po CLOSE command is entered, t he port closes and returns to communicati ng with the ZPL and the buffer. Format CLOSE # CLOSE ALL Parameters = Numeric value of port to close Values: 0 through 9 All = closes all open ports and network connections CLOSE ALL Note • will close the console. Example: This example shows the closing of channel 1: 10 CLOSE #1 Comments it is received by the This can be an interactive command that takes effect as soon as . y a line number at is preceded b printer, or a program command th Programming Guide P1099958-001 1/31/18

471 ZBI Commands 471 Input and Output DATAREADY This function is used to determi ne if there is data received on a specified port. Format DATAREADY (A) A = the port to check Parameters Returns 1 if there is data, 0 if there is no data. Example: This is an example of how to che : data on a port ck if there is a 10 PRINT DATAREADY(0) RUN The result, assuming no data is waiting, is: 0 INPUT If this command follows the Comments command, it may return 1 if the line received was can be used to take t INBYTE he LF out of the buffer. ended with a CRLF. In this case, P1099958-001 Programming Guide 1/31/18

472 ZBI Commands 472 Input and Output SERVERSOCKET ng UDP packets or TCP connections. It must be This function opens a listening s ocket for incomi ACCEPT function. used in conjunction with the SERVERSOCKET (TYPE$,PORT) Format Parameters TYPE$ = listens for any of the following communication protocols: ed. = TCP – PORT parameter is ignored. The current port will be us "TCP" = TCP – any open port "TCPX" "UDP" = UDP – any open port NUMERIC = returns the handle of the server upon success. Returns Example: on page 487 UDP Server and on page 485 TCP Server . See the examples for , care needs to be tak TCPX Comments When using on that is already open en not to use a port ACCEPT the printer. No error messa ge will be returned until the function is called. 1/31/18 Programming Guide P1099958-001

473 ZBI Commands 473 Input and Output SERVERCLOSE RSOCKET. listening server socket created by SERVE This function closes a Format SERVERCLOSE(SOCKET) Parameters SOCKET = the socket handle returned fr om a successful SERVERSOCKET in vocation. ready closed or a 1 if the sock et was closed successfully. Returns a 0 if the socket was al Returns how to close a listening server socket. Example: This example shows 10 LET SERVER_HANDLE = SERVERSOCKET("TCPX", 19100) 20 LET SCERR = SERVERCLOSE(SERVER_HANDLE) Programming Guide P1099958-001 1/31/18

474 ZBI Commands 474 Input and Output CLIENTSOCKET ection or sets up UDP transmissions. Once set up for This function create s an outgoing TCP conn sent when the size limit is met or a UDP, packets can be sent by printing to the socket. Packets are character is written. EOT Format CLIENTSOCKET (TYPE$, IPADDR$, PORT) Parameters TYPE$ = set to "UDP" or "TCP". = connects to this address. IPADDR$ PORT = connects to this IP port. The port number assigned to the connection. Returns on page 487 UDP Server and on page 485 TCP Server See the examples for Example: . Comments um of 10. Each Multiple communications connecti ons can be made up to the maxim limit based on the support of the print server used. Test the worst case protocol may have a different to recover from failed connection ONERROR situation based on your a pplication’s needs or use attempts. 1/31/18 Programming Guide P1099958-001

475 ZBI Commands 475 Input and Output ACCEPT ng TCP or UDP connections and a ssign a channel for the This function will accept incomi SERVERSOCKET must be used to set up th e listening socket before ACCEPT can be connection. used. Format ACCEPT (SERVER, CLIENT_INFO$) Parameters SERVER call. SERVERSOCKET = the handle returned by the and port connecting client’s IP address = string variable will have the CLIENT_INFO$ separated by a space when using UDP. The channel number to use to communicate with the client. Returns UDP Server on page 485 TCP Server See the examples for Example: and . on page 487 Comments It is best to poll this function at regular intervals. When the re is no connection waiting, ON ERROR command to divert to a the rror. Follow this function with this function will trigger an e section of code that handles an unsuccessful connection. s for processing multiple ACCEPT can be called before closing a previous connection. This allow are limits on th incoming streams of data. There e number of sim ultaneous incoming connections based on the print serve r model on the printer. Connection closure can be detec ted when any input or output com mand to the port triggers an error. ON ERROR he program into a statement to send t These commands should be followed by an recovery state and to shutd own the connection cleanly. Reading and Writing all of the ports. The following section functions to read and write to This manual has detailed various gives an overview of the comma nds, functions, and when each sho uld be used. nderstand the term "blocking". In communications code , a function or To start, it is important to u to be received before it returns. command is "blocking" if it wait s for all of the requested data INPUT (blocking) Reads one line into each string specified. pecified expressions out. PRINT (blocking) Simple method to write s OUTBYTE (blocking) Writes one byte out. INBYTE (blocking) Reads in one byte. READ (non-blocking) Reads in all available data up to the maximum amount specified. a maximum specified WRITE (non-blocking) Writes out as much d ata as possible up to amount. . SEARCHTO$ (blocking) Reads in data (does not keep) until a sear ch parameter is found an be redirected to another port. Non-matching data c P1099958-001 Programming Guide 1/31/18

476 ZBI Commands 476 Input and Output INPUT If the variable is numeric and the value entered cannot be conv erted to a number, it writes as 0. This operation scans the data from lef t to right, shifting any numbe r into the variable. It ignores any non- ) which ^C the input, or Ctrl-C ( numeric character except the retu rn character, which terminates terminates the program. The vari able can be in string or numeri c form. Format INPUT [:] [,]* INPUT [:] [,]* If the [:] is omitted, the default port, 0, will be used. Parameters = read data from this port. Default = 0. = variables to write. When using multiple variables as targets, a corresponding numbe r of lines are read. String and numeric variables can be intermixed. This is an example Example: of how to use the INPUT command: 10 OPEN #1: NAME "ZPL" 20 PRINT #1: "~HS" 30 FOR I = 1 TO 3 40 INPUT #1: A$ 50 PRINT A$ 60 NEXT I In this example, a host status prints to the console after subm itting the host status request ~HS to the mited to the commu nd of the ZBI interpreter is li nications ports. ZPL port. The Input/Output comma File I/O is not supported. . This leads to a tricky situation. There are many ways LF or CR ends processing a line with a INPUT INPUT , the next execution CR , CRLF , LF . If the ZBI prog ram only uses different systems end a line: LFCR LF or CR , in case of . However, if the program INPUT command will remove the extra of the on the port. INBYTE , DATAREADY will show up LF or the other commands, the extra instead uses Here’s a simple workaround to explicitly look for the CRLF that is in use: SEARCHTO(,CHR$(13)&CHR$(10),) he delete chara cter. If command does not accept control INPUT The characters or t Note • these characters nee d to be processed, use the READ command. it is received by the This can be an interactive command that takes effect as soon as Comments . at is preceded b printer, or a program command th y a line number is returned. Error: Invalid port t is specified, If an invalid por Example: This shows the input command r eading in multiple lines. 10 INPUT A$,B,C,D$,E$ Five lines would be read in: 3 strings and 2 numbers. P1099958-001 Programming Guide 1/31/18

477 ZBI Commands 477 Input and Output PRINT This command sends data to the printer to be printed. Format PRINT [CHANNEL:] [,or; ]* [;] Parameters < CHANNEL> = write data to this port = the value to write The expression can be either a string or a numeric expression. Using a , to separate expressions adds a space between them. them. Using a ; to separate expressions does not put a space between Using a ; at the end of a line ends the print statement without adding a new line (CR/LF). of how to use the PRINT command: This is an example Example: 10 LET A$ = "This is an example" 20 LET B$ = "of the PRINT Command." 30 PRINT A$, B$ ! adds a space between expressions 40 PRINT A$; B$ ! no space added RUN The result is: f the PRINT Command. This is an example o This is an exampleof the PRINT Command. it is received by the This can be an interactive command that takes effect as soon as Comments . y a line number at is preceded b printer, or a program command th Programming Guide 1/31/18 P1099958-001

478 ZBI Commands 478 Input and Output OUTBYTE This command output s a byte to a port. Format OUTBYTE [:] OUTBYTE [:] Parameters = sends the byte to t his port. Default = 0. = This is a numeric expression. Values: 0 through 255. If it is not within that range, it is truncated. In the case of a NULL . The first character is used. = This is the string expression string, 0 is sent. of how to use the command: OUTBYTE This is an example Example: LET A$="Hello" OUTBYTE A$ This would only print the H character to the console. OUTBYTE 4 CII table for a list of EOT to the console. See an AS This would print the control character the control characters. it is received by the This can be an interactive command that takes effect as soon as Comments . y a line number at is preceded b printer, or a program command th Programming Guide P1099958-001 1/31/18

479 ZBI Commands 479 Input and Output INBYTE This command forces the interpr eter to pause until data is avai lable. Use the DATAREADY function to data on the port. determine if there is Format INBYTE [:] INBYTE [:] Parameters = reads from this port. Default = 0. = integer value is set to the byte received. = A single byte string is created with the byte received.The f irst character is used. In the case of a NULL string, 0 is sent. Example: This is an example of how to use the INBYTE to create an echo program: 10 INBYTE A$ !Takes one byte (char) from port #0 20 PRINT A$ !Prints the character to the console 30 GOTO 10 ed, then continues processing. This pauses until the data is enter In this example, the interpreter ring or integer, including cont command enters all bytes in a st rol codes. Comments INBYTE will block until a byte is rece ived on the specified port. Thi s can be an by the printer, or a program command fect as soon as it is received interactive command that takes ef y a line number. that is preceded b Programming Guide 1/31/18 P1099958-001

480 ZBI Commands 480 Input and Output READ Description he bytes available on the This is a non-blocking input function. It will read in all of t specified port. READ (, , ) Format Parameters = reads from this port. Default = 0. = the string where the data will be placed = the maximum number of bytes to read Returns The number of bytes read. READ command: This is an example of the Example: 1 CLOSE ALL 2 LET INPORT = CLIENTSOCKET("TCP","192.168.0.1",9100) 3 ON ERROR GOTO RECOVERY 4 LET WATERMARK = 5000 5 DO WHILE 1 6 IF LEN(DATA$) < WATERMARK THEN 7 LET BYTESREAD = READ(INPORT,DATA$,500) 8 ON ERROR GOTO RECOVERY 9 END IF 10 IF (LEN(DATA$) > 0) THEN 11 LET BYTES_WRITTEN = WRITE(INPORT,DATA$,LEN(DATA$)) 12 ON ERROR GOTO RECOVERY 13 LET DATA$(1,BYTES_WRITTEN) = "" 14 END IF 15 IF BYTESREAD = 0 AND BYTESWRITTEN = 0 THEN 16 SLEEP 1 ! DON'T BOMBARD IF IDLE 17 END IF 18 LOOP 19 SUB RECOVERY 20 CLOSE #INPORT Programming Guide P1099958-001 1/31/18

481 ZBI Commands 481 Input and Output WRITE Description ytes as the output ction. It will write as many b This is a non-blocking output fun buffer can hold. Format WRITE (, , ) Parameters = reads from this port. Default = 0. = the string to write out. = The number of bytes to write The number of bytes written. Returns WRITE command: Example: This is an example of 1 CLOSE ALL 2 LET INPORT = CLIENTSOCKET("TCP","192.168.0.1",9100) 3 ON ERROR GOTO RECOVERY 4 LET WATERMARK = 5000 5 DO WHILE 1 6 IF LEN(DATA$) < WATERMARK THEN 7 LET BYTESREAD = READ(INPORT,DATA$,500) 8 ON ERROR GOTO RECOVERY 9 END IF 10 IF (LEN(DATA$) > 0) THEN 11 LET BYTES_WRITTEN = WRITE(INPORT,DATA$,LEN(DATA$)) 12 ON ERROR GOTO RECOVERY 13 LET DATA$(1,BYTES_WRITTEN) = "" 14 END IF 15 IF BYTESREAD = 0 AND BYTESWRITTEN = 0 THEN 16 SLEEP 1 ! DON'T BOMBARD IF IDLE 17 END IF 18 LOOP 19 SUB RECOVERY 20 CLOSE #INPORT Programming Guide 1/31/18 P1099958-001

482 ZBI Commands 482 Input and Output SEARCHTO$ nd. The string the search yields is This function performs a search un til a specified string is fou displayed. Format SEARCHTO$(A,B$) SEARCHTO$(A,B$,C) SEARCHTO$(A$,B$) SEARCHTO$(A$,B$,C$) Parameters = port number (0 to 9) to wh A ich requested data is sent A$ = string to search for B$ B$ is an array, this command searches for all B$ = string variable or string array. If array. B$ non-null strings in the C = a port in which the input i s directed until B$ is found C$ = a string in which the characters in A$ are directed until B$ is found Returns The string found. ws how to use SEARCHTO Example: This example sho ng on a port: to find a stri 10 OPEN #1: NAME "SER" 20 LET A$ = SEARCHTO$(1,"^XA") 30 PRINT "FOUND:", A$ Example: This example shows how to search for an array of strings: 10 OPEN #1: NAME "SER" 20 DECLARE STRING FIND$(3) 30 LET FIND$(1) = "ONE" 40 LET FIND$(2) = "TWO" 50 LET FIND$(3) = "THREE" 60 LET A$ = SEARCHTO$(1,FIND$) 70 PRINT "FOUND:", A$ Programming Guide P1099958-001 1/31/18

483 ZBI Commands 483 Input and Output This example shows unuse d data routed to a port. Example: 10 OPEN #1: NAME "PAR" 20 OPEN #2: NAME "SER" 30 DECLARE STRING FIND$(3) 40 LET FIND$(1) = "ONE" 50 LET FIND$(2) = "TWO" 60 LET FIND$(3) = "THREE" 70 LET A$ = SEARCHTO$(1,FIND$,2) 80 PRINT "FOUND:", A$ to find a string within a SEARCHTO ws how to use This example sho Example: string and direct the unused part of the stri ng to another string: 10 LET A$ = "The faster you go, the shorter you are - Einstein" 20 LET B$ = SEARCHTO$(A$,"you", C$) 30 PRINT "FOUND:", B$ 40 PRINT "DISCARDED:", C$ il the search string is found. If you wan SEARCHTO Comments will block (wait) unt t to be able to . READ with POS run other code while doing som ething similar, consider using with ports, it will block (wait SEARCHTO ) until the search string is fo und. If you want to be When using to place data into a string. able to run other code while doing something similar, consider using READ SEARCHTO for processing. That string can be passed to Port Usage Examples Before diving into the t some simple applications using the syntax of all the commands, let’s look a mmunications systems in ZBI. different features of the co ® Physical Ports (Serial, Parallel, USB, Bluetooth ) s may vary greatly, internal to the Though the types of devices inter acting with the printer's port OPEN are opened with the ZBI led in the same way. These ports printer, the ports are all hand command and closed with the ZBI s opened, it is of these ports i command. When one CLOSE disconnected from the ZPL parse r and any data in the buffer wil l be redirected to the ZBI environment. P1099958-001 Programming Guide 1/31/18

484 ZBI Commands 484 Input and Output BLU ", or " " depending ", " PAR " could be replaced by " SER USB In the following example, " Example: on the application. 10 CLOSE ALL 20 LET INPORT = 1 25 SLEEP 1 30 OPEN #INPORT: NAME "SER" 35 ON ERROR GOTO 25 40 PRINT #INPORT: "Enter your name:"; 50 INPUT #INPORT: YOURNAME$ 55 ON ERROR GOTO 70 60 PRINT #INPORT: "You entered: "; YOURNAME$ 70 CLOSE #INPORT ZPL Parser To make a ZBI program print, i t is necessary to create a connec tion from the program to the ZPL parser on the printer. The connect ion will function in the same way as a connection to a physical te. The ZPL parser in the printer can port, except that the connection will not automatically termina handle many incoming connections simultaneously. For example, a ZBI program cou ld take control of the serial port and send label formats to the ZPL parser, wh ile the parallel port (unopened by ZBI) could also be used to send label formats dir ectly into the pars er. command). So, The ZPL parser will lock onto one Note • ^XA (via the port once a format is started in some cases, is it desirable t o start and stop your communica tions to ZPL in one continuous sequence. plication prints to another port. inter status, while another ap Another use of ZBI is to check pr Example: Here is how that can be done: 10 OPEN #1: NAME "ZPL" 20 PRINT #1: "~HS" 30 FOR I = 1 TO 3 40 INPUT #1: A$ 50 PRINT A$ 60 NEXT I TCP Client rver. The first method uses the There are two methods for makin g a TCP connection to another se CLIENTSOCKET method. OPEN command while the second method uses the rred method. is the prefe CLIENTSOCKET P1099958-001 1/31/18 Programming Guide

485 ZBI Commands 485 Input and Output Example: The following example demonstrates this method: 10 CLOSE ALL 20 LET INPORT = CLIENTSOCKET("TCP","192.168.0.1",9100) 40 LET OUTSTR$ = "REQUESTING SERVER NAME"; 50 DO WHILE (LEN(OUTSTR$) > 0) 60 LET BYTES_WRITTEN = WRITE(INPORT,OUTSTR$,LEN(OUTSTR$)) 70 ON ERROR GOTO RECOVERY 80 LET OUTSTR$ = OUTSTR$(1+BYTES_WRITTEN:LEN(OUTSTR$)) 90 LOOP 100 INPUT #INPORT: YOURNAME$ 110 PRINT #INPORT: "Server returned: "; YOURNAME$ 120 CLOSE #INPORT 130 SUB RECOVERY 140 END TCP Server SERVERSOCKET Setting up a listening server in the printer can be accomplishe d with the function. ACCEPT function. To connect to incoming TCP sessions, use the . This function will create a handle for this SERVERSOCKET When starting the application, call function. If ACCEPT ming connections at regular int listening server. Check for inco ervals with the function will return with an error. Handle the error using ACCEPT there are no pending sessions, the ON ERROR the ng for other sessions later. command and continue looki P1099958-001 Programming Guide 1/31/18

486 ZBI Commands 486 Input and Output Depending on how the program is se t up, it is possible to handl e one or more sessions at a time. If the program is confi gured to allow only one session, the other connections will rem ain pending until the requesting client they are shut down by connects them. or the ZBI program Here is an example of the Example: commands: SERVERSOCKET and ACCEPT 10 CLOSE ALL 20 LET SERVER_HANDLE = SERVERSOCKET("TCPX",19100) 30 REM There are no connections yet we are just listening for them 40 REM Lets loop until we get a connection 50 SLEEP 1 60 LET INPORT = ACCEPT(SERVER_HANDLE,CLIENT_INFO$) 70 ON ERROR GOTO 50 80 PRINT #INPORT: "You have successfully connected!" 90 PRINT #INPORT: "Login:"; 100 INPUT #INPORT: LOGIN$ 110 PRINT #INPORT: "Password:"; 120 INPUT #INPORT: PASSWORD$ 130 REM We will not be nice and reject the connection 130 PRINT #INPORT: "Login failed" 140 CLOSE #INPORT 150 GOTO 60 ! Go look for the next connection 160 END UDP Client making a UDP connection to anoth There are also two methods for er server. The first method uses command, while the second method uses the method. UDP is a one way OPEN CLIENTSOCKET the communication medium, thus, you can only use output commands. B ecause UDP is connectionless, EOT character is written or t he maximum pa cket size is the output will be queued up until an EOT character is written, the packet is formatted and sent. exceeded. Once the t the network being used will support. With UDP, it is important to be careful about understanding wha In many cases, there will be a limit to the size of the packet that can be used, typically between 1000 600 byte range. To be safe, keep cut this down into the 500 to and 1500 bytes, but some networks your packets less than 500 bytes. more details. ssion. See UDP spec UDP does not guarantee transmi ifications for n example is shown below. is the preferred method, a CLIENTSOCKET Example: Since 10 CLOSE ALL 20 LET INPORT = CLIENTSOCKET("UDP","192.168.0.1",22222) 30 LET EOT$ = CHR$(4) 40 PRINT #INPORT: "Packet #"; I; EOT$; 50 LET I = I + 1 60 SLEEP 1 70 GOTO 40 P1099958-001 Programming Guide 1/31/18

487 ZBI Commands 487 Input and Output UDP Server the printer can be accomplishe d with the SERVERSOCKET function. Setting up a listening server in ACCEPT . When starting your Then, to connect to incoming UDP packets, use the function SERVERSOCKET . This function will create a handl e for this listening server. Check application, call for incoming packets at a regular interval with the function. If there are no pending sessions, ACCEPT ACCEPT function will return with an e rror. Just handle the error usin g the ON ERROR command the ACCEPT for each incoming packet. call and continue looking for other sessions later. You will need to READ with a MAX string size of When the accept is successful, all of the data will be availabl e. Call he port and wait for the next packet. he whole packet in your string. Close t 2000 and you will have t You can only read in data using a UDP server. Example: Here is an example of how to set up to receive UDP messages: 10 CLOSE ALL 20 LET ZPLPORT = 1 35 OPEN #ZPLPORT: NAME "ZPL" 40 LET SERVER_HANDLE = SERVERSOCKET("UDP",33333) 50 REM There are no connections yet: listening 60 REM Let’s loop until we get a connection 70 SLEEP 1 80 LET INPORT = ACCEPT(SERVER_HANDLE,CLIENT_INFO$) 90 IF INPORT = -1 THEN 92 GOTO 70 94 END IF 100 LET PACKET_SIZE = READ(INPORT,PACKET$,2000) 110 PRINT #ZPLPORT: "^XA^FO100,100^A0N,40,40^FDPACKET FROM:"; 115 PRINT #ZPLPORT: CLIENT_INFO$; "^FS" 120 PRINT #ZPLPORT: "^FO100,150^A0N,40,40^FDPACKET SIZE:"; 125 PRINT #ZPLPORT: PACKET_SIZE; "^FS" 130 PRINT #ZPLPORT: "^FO100,200^A0N,40,40^FDPACKET DATA:"; 135 PRINT #ZPLPORT: PACKET$; "^FS^XZ" 140 CLOSE #INPORT 150 GOTO 60 ! go look for the next connection 160 END E-mail ZBI can be used to enh ance the printer’s ability to send status via e-mail messages. The process is simple: open the email port "EML", send the recipient list, sen d the header, and send the body of the message. f outgoing email The printer can only process a messages at one time. For this limited number o reason, error handling should be used when opening the connecti on to wait for the printer to be ready to send the message. The EO T character is important for d elimiting sections of the email message will not be sent proper message. If it is left out, the ly. Programming Guide 1/31/18 P1099958-001

488 ZBI Commands 488 File System Before the following code will work, the email settings for the print server must be set up. Consult the print server manual to learn how to configure the unit. Example: Here is an example of how to send e-mails: 1 REM EOT$ this is used to denote end of transmission 5 LET EOT$ = CHR$(4) 1 REM Open a connection to the e-mail port and if it errors 1 REM try again until complete 10 OPEN #1: NAME "EML" 15 ON ERROR GOTO 10 1 REM Specify address to send message to then end signal end 1 REM of recipients with EOT$ 1 REM To send to multiple addressees separate addressees by 1 REM space 20 PRINT #1: "[email protected]";EOT$; 1 REM Fill in the message information 30 PRINT #1: "From: HAL" 40 PRINT #1: "To: Dave" 50 PRINT #1: "Subject: A message from HAL" 60 PRINT #1: "" 70 PRINT #1: "Dave, I am sorry I can not let you do that." 80 PRINT #1: i 1 REM Terminate message 90 PRINT #1: "";EOT$ 1 REM You must close the port, each open port is only good 1 REM for sending one message 100 CLOSE #1 File System and formats can be saved and re called. Here’s a quick list of This section shows how programs these commands: Saves the program currently in me mory as the spec ified file nam e. STORE LOAD ly stored in the printer’s mem ory and opens it in the ZBI Transfers a program file previous Program Memory. DIR With no filter included, promp ts the printer to list all of the ZBI programs residing in all printer memory locations. Removes a specified file f DELETE rom the printer’s memory. 1/31/18 Programming Guide P1099958-001

489 ZBI Commands 489 File System Runtime Access The following example is a method to store runtime data in the printer memory. The file system in the inter can have write printer is limited to writing one file at a time. Since only on e component of the pr access to the file system, the ZP L parser is the component with this access. For Z BI to use the ZPL ) is used. ^FX parser as a gateway into printer memory, the ZPL comment comman d ( Example: AUTONUM 1,1 REM ******* TEST FOR SUBROUTINES ********************** LET ZPLPORT = 1 OPEN #ZPLPORT: NAME "ZPL" LET SIZE = 5 LET FILENAME$ = "R:TESTSYS.ZPL" DECLARE STRING DATAIN$(SIZE) LET DATAIN$(1) = "ONE" LET DATAIN$(2) = "TWO" LET DATAIN$(3) = "THREE" LET DATAIN$(4) = "FOUR" LET DATAIN$(5) = "FIVE" GOSUB STOREDATA GOSUB GETDATA FOR I = 1 TO SIZE IF DATAIN$(I) <> DATAOUT$(I) THEN PRINT #ZPLPORT: "^XA^FO100,100^A0N,50,50^FDERROR:"; PRINT #ZPLPORT: DATAOUT$(I);"^XZ" END IF NEXT I END REM **** SUBROUTINE STOREDATA ************************** REM INPUT: ZPLPORT, DATAIN$, SIZE, FILENAME$ *********** SUB STOREDATA PRINT #ZPLPORT: "^XA^DF" & FILENAME$ & "^FS" PRINT #ZPLPORT: "^FX"; SIZE; "^FS" FOR I = 1 TO SIZE PRINT #ZPLPORT: "^FX" & DATAIN$(I) & "^FS" NEXT I PRINT #ZPLPORT: "^XZ" RETURN REM **** SUBROUTINE GETDATA - ************************** REM INPUT: ZPLPORT, FILENAME$ ************************** REM ** OUTPUT: DECLARES AND FILLS DATAOUT$ AND FILLS SIZE SUB GETDATA PRINT #ZPLPORT: "^XA^HF" & FILENAME$ & "^XZ" SLEEP 1 LET RESULT$ = "" FOR J = 1 TO 25 LET A = READ(ZPLPORT,TEMP$,5000) LET RESULT$ = RESULT$ & TEMP$ IF POS(RESULT$,"^XZ") <> 0 THEN EXIT FOR END IF SLEEP 1 NEXT J LET RESULT$(1:POS(RESULT$,"^FX")+2) = "" LET SIZE = VAL(EXTRACT$(RESULT$,"","^")) DECLARE STRING DATAOUT$(SIZE) FOR I = 1 TO SIZE LET RESULT$(1:POS(RESULT$,"^FX")+2) = "" LET DATAOUT$(I) = EXTRACT$(RESULT$,"","^") NEXT I LET RESULT$ = "" LET TEMP$ = "" RETURN Programming Guide 1/31/18 P1099958-001

490 ZBI Commands 490 File System STORE This command saves the program c urrently in memo ry as the speci fied file name. T he format listed below is used. STORE Format tion and file na Parameters = the name of the file to be st ored. Drive loca me must be in quotation marks. command: STORE of how to use the This is an example Example: STORE "E:PROGRAM1.BAS" ach file must have no must conform to the 8.3 Rule: e Comments For a file name to be valid, it aracter extension. Here the more than eight characters in th e file name and ha ve a three-ch .BAS (for example, MAXIMUM8.BAS ). extension is always This is an interactive command t hat takes effect as soon as it is received by the printer. The ZBI-Developer IDE will take care of this for you with the option on your program. SEND TO 1/31/18 Programming Guide P1099958-001

491 ZBI Commands 491 File System LOAD This command transfers a program file previously stored in the printer’s memory and opens it in the ZBI Program Memory. If the program file does not exist, the ZBI Program Memory is c leared and no program is opened. Format LOAD ile o memory. Drive location and f = the file name to be loaded int Parameters name must be in quotation marks . If the drive location is not s pecified, all drives will be searched. command: LOAD Example: Here are examples of how to use the LOAD "PROGRAM1.BAS" LOAD "E:PROGRAM1.BAS" Comments This is an interactive command t hat takes effect as soon as it is received by the printer. Programming Guide 1/31/18 P1099958-001

492 ZBI Commands 492 File System DIR This command, with no filter incl ist all of the ZBI programs residing in all uded, prompts the printer to l printer memory locations. Including a filter signals the printer to limit the search; inc luding a drive location signals the printer to search in only one location. rds. A wild card (*) finds eve ry incidence of a particular request. The Asterisks (*) are used as wild ca DIR "B:*.BAS" , signals the printer to sea rch for every file with a .BAS extension example here, in B: memory. Format DIR [] cessed (optional). Drive locati = the name of the file to be ac [] Parameters on and file name must be in quotation marks. Default = "*:*.bas" Quotes must be around what you are doing. This shows you how to use the Important • * memory: B: files in .BAS ) to search for all wildcard ( Quotes surrounding action DIR "B:*.BAS" file type wildcard memory N/A Example is received by the hat takes effect as soon as it This is an interactive command t Comments printer. Programming Guide P1099958-001 1/31/18

493 ZBI Commands 493 Comma Separated Values (CSV) DELETE This command removes a specified file from the pr inter’s memory . DELETE Format leted. Drive location and filena Parameters = the name of the file to be de me must be in quotation marks. specified file from printer me This is an example of deleting a Example: mory: DELETE "E:PROGRAM1.BAS" hat takes effect as soon as it This is an interactive command t Comments is received by the printer. Comma Separated Values (CSV) Accessing Comma Separ ated Value (CSV) and Text File Functions SV files and AS CII plain-text files . Here is a quick This section describes the func tions to access C list of these commands: Loads the contents dimensional string ar CSVLOAD ray. of a CSV file in a two nsional string array in a CSV Stores the contents of a two dime CSVSTORE file. in-text file into a string va riable. TXTLOAD Loads the contents of an ASCII pla variable in an ASCII plain text file. TXTSTORE Stores the contents of a string P1099958-001 Programming Guide 1/31/18

494 ZBI Commands 494 Comma Separated Values (CSV) CSVLOAD FILENAME$ , and store them efined by This function will load the delimited values from a CSV file, d DEST$ . in the two-dimensional array, Format CSVLOAD(DEST$, FILENAME$) CSVLOAD(DEST$, FILENAME$, DELIM$) Parameters DEST$ = two dimensional array that will hold the rows and columns fr om the CSV file variable. If there is not enough room in DEST$ FILENAME$ , or if it has the specified by the DEST$ will he data originally in wrong size, it will be changed to fit the data from the file. T be overwritten. be in quotation = name of the file to load. Drive location and file name must FILENAME$ .CSV " or " .TXT ". marks. The file extension must be either " DELIM$ is DELIM$ = optional delimiter that is use d in the CSV file instead of a comma. If not provided a comma will be used by default. The delimiter mus t be a single character that is not a quote, carriage return, or newline. in each row of the C n will return 0 if errors The number of elements SV file. The functio Returns . r if the file cou were detected in the CSV file, o ld not be read comma delimiter. Example: This example shows how to print the values i n a CSV file with a 10 DECLARE STRING CSVDB$(1,2) 20 LET FILENAME$ = "E:RECORDS.CSV" 30 LET NUMOFCOLS = CSVLOAD(CSVDB$, FILENAME$) 40 LET NUMOFROWS = ROWSIZE(CSVDB$) 100 FOR I = 1 TO NUMOFROWS STEP 1 110 FOR J = 1 TO NUMOFCOLS STEP 1 120 PRINT CSVDB$(I, J), " "; 200 NEXT J 210 PRINT "" 300 NEXT I Programming Guide 1/31/18 P1099958-001

495 ZBI Commands 495 Comma Separated Values (CSV) Example: This example shows how to print the values i n a CSV file that u ses a '|' as a delimiter. 10 DECLARE STRING CSVDB$(1,2) 20 LET FILENAME$ = "E:EMPLOYEE.CSV" 30 LET NUMOFCOLS = CSVLOAD(CSVDB$, FILENAME$, "|") 40 LET NUMOFROWS = ROWSIZE(CSVDB$) 100 FOR I = 1 TO NUMOFROWS STEP 1 110 FOR J = 1 TO NUMOFCOLS STEP 1 120 PRINT CSVDB$(I, J), " "; 200 NEXT J 210 PRINT "" 300 NEXT I Comments The maximum CSV file size supported will vary based upon availa ble RAM within the printer. CSV File Information http://tools.ietf.org/html/rfc4180 F RFC 4180: the rules in IET The file format should follow The maximum number of columns per row in a CSV file is 256. Each row must be 2048 characters r. The carriage return/line feed or less including the delimite (CRLF) does not count toward the limit. If there are any missing elements Each row in the CSV file must have the same number of elements. in the CSV file (indica ted by two adjacent commas or a comma at the end of a row), they will be represented as empty strings. presented as two quotes. Additionally, if If an element in the CSV file contains a quote, it should be re the delimiter character, the element ew line, a carriage return, or an element contains a quote, a n must be within quotes. For example, a value that is used to sto re a measurement in feet and inches "4' 5""" within the CSV file. (4' 5") must be formatted as P1099958-001 Programming Guide 1/31/18

496 ZBI Commands 496 Comma Separated Values (CSV) CSVSTORE the file system. This function will store the valu es of a two dimensional array into a CSV file on in the CSV file. treated as a single value with Each element within the array is Format CSVSTORE(SRC$, FILENAME$) CSVSTORE(SRC$, FILENAME$, DELIM$) Parameters = two dimensional array of stri ngs to be written to a CSV file SRC$ . = name of the file to store the array contents. Drive location and file name FILENAME$ ". CSV " or ". TXT . file extension must be either " must be in quotation marks. The comma. If DELIM$ is d in the CSV file instead of a = optional delimiter that is use DELIM$ t be a single character not provided a comma will be used by default. The delimiter mus that is not a quote, carriage return, or newline. A 0 if there were no errors. A 1 is returned if is not a string array, if the file could not SRC$ Returns contains errors that prevent the file from being stored. be written, or if SRC$ to a "^" delimited TXT This example shows how to convert a comma delimited CSV file in Example: file and print the contents. 10 DECLARE STRING CSVDB$(1,2) 20 LET NUMOFCOLS = CSVLOAD(CSVDB$, "E:RECORDS.CSV") 30 LET CSVERROR = CSVSTORE(CSVDB$, "E:NEWREC.TXT", "^") 40 LET NUMOFCOLS = CSVLOAD(CSVDB$, "E:NEWREC.TXT", "^") 50 LET NUMOFROWS = ROWSIZE(CSVDB$) 100 FOR I = 1 TO NUMOFROWS STEP 1 110 FOR J = 1 TO NUMOFCOLS STEP 1 120 PRINT CSVDB$(I, J), " "; 200 NEXT J 210 PRINT "" 300 NEXT I rray should follow the Comments The elements of the a rules in IETF RFC 4 180: http://tools.ietf.org/html/rfc4180 There is no limit on the number of columns per row when storing to a CSV file. However, a file stored column limit with rows that exceed the imposed by CSVLOAD will not be loaded by the CSVLOAD function. e. However, a file stored with rows that There is no limit on the size of a row when stored to a CSV fil exceed the size limit imposed by will not be loaded by the function. CSVLOAD CSVLOAD 1/31/18 Programming Guide P1099958-001

497 ZBI Commands 497 Comma Separated Values (CSV) TXTLOAD a ZBI string variable. This function will read the cont ents of an ASCII text file into Format TXTLOAD(DEST$, FILENAME$) Parameters = string to store the contents of FILENAME$ . DEST$ FILENAME$ = name of the file to read. Drive location and file name must be in quotation ". CSV " or ". TXT marks. The file extension must be either ". read from the file. T he function will retur n 0 if the file could not be The number of bytes Returns read. how to print out the contents of a file. This example shows Example: 10 LET TXTSIZE = TXTLOAD(TXTDATA$, "E:MYDATA.TXT") 20 PRINT STR$(TXTSIZE), "bytes:", TXTDATA$ pletion of this function. will be overwritten upon com The data originally in Comments DEST$ P1099958-001 Programming Guide 1/31/18

498 ZBI Commands 498 Events TXTSTORE II text file. ents of a ZBI string in an ASC This function will store the cont Format TXTSTORE(SRC$, FILENAME$) Parameters FILENAME$ . SRC$ = string to store to = name of the file to store. Drive location and file name must FILENAME$ be in quotation CSV " or ". TXT ". marks. The file extension must be either ". Returns a 0 if there were no e rrors, otherwise a 1 is returned. Returns This example shows how to append a text file. Example: 10 LET TXTSIZE = TXTLOAD(TXTDATA$, "E:MYDATA.TXT") 11 REM Append a date/time stamp to the file 20 LET TXTDATA$ = TXTDATA$ & " " & DATE$ & " " & TIME$ 30 LET TXTSIZE = TXTSTORE(TXTDATA$, "E:MYDATA.TXT") 40 PRINT TXTDATA$ Events s in the printer. Here’s a quick list of This section explains how to capt ure and trigger internal event these commands: A table that correlates a ZBI er. event with an iden Available Events tification numb mes, and ZBI Details the names of each printer’s front panel buttons, ZBI na ZBI Key Names event ID. REGISTEREVENT function to receive notification when the HANDLEEVENT Sets up the specified event has occurred. Allows events that are currently set to be captured by the prog ram to no UNREGISTEREVENT longer be captured. HANDLEEVENT what events Once events have been registered, this function is used to see have occurred. ogramatically. TRIGGEREVENT Allows for front panel buttons to be triggered pr t a ZBI 2.0 program There are certain even ts in the printer tha can receive. To do this, the program ion to handle events. When an event first registers for t he event. On a regular basis, call a funct tered for, the function will re ification number. turn the event’s ident occurs that the program is regis 1/31/18 Programming Guide P1099958-001

499 ZBI Commands 499 Events Available Events ZBI Event ZBI Event ID menu key 1 pause key 2 feed key 3 cancel key 4 up arrow key 5 plus key 6 minus key 7 enter key 8 setup exit key 9 select key 10 cancel all event 11 config label 12 timer1 13 timer2 14 timer3 15 timer4 16 timer5 17 spare unused 18 previous key 19 next save key 20 calibrate key 21 paper out set 22 paper out clear 23 ribbon out set 24 ribbon out clear 25 head too hot set 26 head too hot clear 27 head cold set 28 head cold clear 29 head open set 30 head open clear 31 supply too hot set 32 supply too hot clear 33 ribbon in set 34 Programming Guide 1/31/18 P1099958-001

500 ZBI Commands 500 Events ZBI Event ZBI Event ID ribbon in clear 35 rewind full set 36 rewind full clear 37 cutter jammed set 38 cutter jammed clear 39 paused set 40 paused clear 41 pq completed set 42 pq completed clear 43 label ready set 44 label ready clear 45 head element bad set 46 head element bad clear 47 basic runtime set 48 basic runtime clear 49 basic forced set 50 basic forced clear 51 power on set 52 power on clear 53 clean printhead set 54 clean printhead clear 55 media low set 56 media low clear 57 ribbon low set 58 ribbon low clear 59 replace head set 60 replace head clear 61 battery low set 62 battery low clear 63 rfid error set 64 rfid error clear 65 any messages set 66 any messages clear 67 auto baud 68 factory default 69 P1099958-001 Programming Guide 1/31/18

501 ZBI Commands 501 Events ZBI Event ZBI Event ID networking default 70 networking factory 71 print width 72 darkness adjust 73 calibrate 74 scroll key 75 soft key 1 76 soft key 2 77 ZBI Key Names This section details panel buttons when creating ZBI 2.0 the names to use for each printer’s front programs to capture the buttons. ZT200/ZT400/ZD500/Qln ZBI Event ZBI Name ZT2X0 ZT400 ZD500 Qln ID soft key 1 Left Soft button 76 soft key 2 Right Soft Button 77 plus key Plus Up Arrow 6 minus key 7 Minus Down Arrow previous key Left Arrow 19 next save key Right Arrow 20 select key Setup OK Check OK 10 pause key Pause no key 2 feed key Feed 3 cancel key Cancel no key 4 Plus III RXi4/Xi 4/105 Xi4/ SL/ZE500 PAX / XiIIIPlus/PAX4/Xi4/RXi4/ ZBI Event SL 105 ZBI Name ZE500/105SL Plus ID Front Panel Key Front Panel Key plus key 6 Right Oval Plus (+) minus key 7 Left Oval Minus (-) previous key Previous 19 Programming Guide P1099958-001 1/31/18

502 ZBI Commands 502 Events XiIIIPlus/PAX4/Xi4/RXi4/ ZBI Event 105 SL ZE500/105SL Plus ZBI Name ID Front Panel Key Front Panel Key next save key 20 Next/Save setup exit key Setup/Exit 9 pause key 2 Pause feed key 3 Feed cancel key Cancel 4 calibrate key Calibrate 21 HC100 ZBI Event ZBI Name Front Panel Key ID pause key 2 Pause feed key Feed 3 eject key Eject ZM400/ZM600/RZ400/RZ600/Z4Mplus/Z6Mplus ZBI Event Front Panel Key ZBI Name ID feed key Feed 3 pause key 2 Pause cancel key 4 Cancel setup exit key Setup/Exit 9 select key Select 10 plus key Plus (+) 6 minus key Minus (-) 7 S4M ZBI Event Front Panel Key ZBI Name ID menu key 1 Menu enter key 8 Enter cancel key Cancel 4 Programming Guide 1/31/18 P1099958-001

503 ZBI Commands 503 Events ZBI Event Front Panel Key ZBI Name ID feed key Feed 3 pause key 2 Pause cancel key Left Arrow 4 feed key Right Arrow 3 up arrow key Up Arrow 5 pause key Down Arrow 2 G-Series ZBI Event ZBI Name Front Panel Key ID Feed key Feed key 3 Select key 10 Select key Scroll key 75 Scroll key KR403 / 2824 Plus Series ZBI Event ZBI Name Front Panel Key ID Feed key Feed key 3 Programming Guide P1099958-001 1/31/18

504 ZBI Commands 504 Events REGISTEREVENT Description This function will set up the HANDLEEVENT function to receive notification when . Events can be r egistered for he program is the specified event has occurred one time or until t exited. If an event occurs twice or more before the function is called, Important • HANDLEEVENT only one event will be received. Format REGISTEREVENT(X) REGISTEREVENT(X,Y) REGISTEREVENT(X,Y,Z) Parameters (X) = This is the ID of the event being registered for. = If Y=1: the event happens once; If Y=0: the event stays regi stered for the duration (Y) of the program, or until it is unregistered. y the printer. If Z=1, then = For System Events: if Z=0, the event will still be handled b (Z) only ZBI will receive the event. terval is less than 0 or greater For Timer Events: this is the timer interval in mSec. If the in than 1,000,000,000, it is set to 1000. tered event. If an event was no The ID of the successfully regis t successfully registered, a Returns -1 is returned. 1/31/18 Programming Guide P1099958-001

505 ZBI Commands 505 Events ISTEREVENT command: f how to use the REG Here is an example o Example: 1 REM This example shows how to override the functionality of the feed 1 REM key 1 REM using the event system. After all why waste a label when you 1 REM could put 1 REM valuable information there AUTONUM 1,1 CLOSE ALL LET ZPLPORT = 1 OPEN #ZPLPORT: NAME "ZPL" LET FEEDKEY = 3 LET TMP = REGISTEREVENT(FEEDKEY, 0, 1) DO WHILE 1 = 1 LET EVT = HANDLEEVENT() IF EVT = FEEDKEY THEN GOSUB PRINTINFO END IF SLEEP 1 LOOP REM **** SUBROUTINE PRINTINFO *** expects ZPLPORT ******* SUB PRINTINFO PRINT #ZPLPORT: "^XA" PRINT #ZPLPORT: "^FO30,30^A0N,50,50^FDZebra Technologies^FS" PRINT #ZPLPORT: "^FO30,85^A0N,35,35^FDwww.zebra.com^FS" PRINT #ZPLPORT: "^FO30,125^A0N,35,35^FDsupport.zebra.com^FS" PRINT #ZPLPORT: "^FO30,165^A0N,35,35^FDFW Version: " PRINT #ZPLPORT: GETVAR$("appl.name") & "^FS" PRINT #ZPLPORT: "^FO30,205^A0N,35,35^FDPrinter Unique ID:" PRINT #ZPLPORT: GETVAR$("device.unique_id") & "^FS" PRINT #ZPLPORT: "^FO30,245^A0N,35,35^FDActive Network: " PRINT #ZPLPORT: GETVAR$("ip.active_network") & "^FS" PRINT #ZPLPORT: "^FO30,285^A0N,35,35^FDZBI Memory Usage: " PRINT #ZPLPORT: GETVAR$("zbi.start_info.memory_alloc") & "^FS" PRINT #ZPLPORT: "^FO30,325^A0N,35,35^FDOdometer: " PRINT #ZPLPORT: GETVAR$("odometer.total_print_length") & "^FS" PRINT #ZPLPORT: "^XZ" Comments None 1/31/18 Programming Guide P1099958-001

506 ZBI Commands 506 Events UNREGISTEREVENT Description ed by the program to This function allows events that are currently set to be captur ed events will re no longer be captured. Once call rmal method of pr ocessing if the turn to the no REGISTEREVENT function Z parameter was set to 1. Format UNREGISTEREVENT(X) (X) the ID of the event to stop = Parameters 0 if the event is a valid event t does not exist. Returns to unregister. A -1 if the even command: UNREGISTEREVENT of how to use the Here is an example Example: AUTONUM 1,1 LET OUTSTR$ = "Processing" LET LOOPCTR = 200 LET TIMER5 = 17 LET TMP = REGISTEREVENT(TIMER5, 0, 1000) DO WHILE LOOPCTR > 0 LET EVT = HANDLEEVENT() IF EVT = TIMER5 THEN LET A = SETVAR("device.frontpanel.line2",OUTSTR$) LET OUTSTR$ = OUTSTR$ & "." IF LEN(OUTSTR$) >16 THEN LET OUTSTR$ = "Processing" END IF END IF LET LOOPCTR = LOOPCTR - 1 SLEEP 1 LOOP LET TMP = UNREGISTEREVENT(TIMER5) LET A = SETVAR("device.frontpanel.line2","") END Comments None Programming Guide 1/31/18 P1099958-001

507 ZBI Commands 507 Events HANDLEEVENT what events have this function is used to see Once events have been registered, Description occurred. HANDLEEVENT() Format Parameters N/A Returns returned through this The ID of the event that occur red. One event at a time will be iority is based on the ID number of the function. The order of the events are based on priority. The pr timer events, which have the h ighest priority. event, with the exception of the P1099958-001 Programming Guide 1/31/18

508 ZBI Commands 508 Events command: HANDLEEVENT Here are examples of how to use the Example: 1 REM This example shows how to override the feed key functionality 1 REM using the event system. Why waste a label when you could put 1 REM valuable information there AUTONUM 1,1 CLOSE ALL LET ZPLPORT = 1 OPEN #ZPLPORT: NAME "ZPL" LET FEEDKEY = 3 LET TMP = REGISTEREVENT(FEEDKEY, 0, 1) DO WHILE 1 = 1 LET EVT = HANDLEEVENT() IF EVT = FEEDKEY THEN GOSUB PRINTINFO END IF SLEEP 1 LOOP REM ******** SUBROUTINE PRINTINFO *** REM *** expects ZPLPORT ************* SUB PRINTINFO PRINT #ZPLPORT: "^XA" PRINT #ZPLPORT: "^FO30,30^A0N,50,50"; PRINT #ZPLPORT: "^FDZebra Technologies^FS" PRINT #ZPLPORT: "^FO30,85^A0N,35,35"; PRINT #ZPLPORT: "^FDwww.zebra.com^FS" PRINT #ZPLPORT: "^FO30,125^A0N,35,35"; PRINT #ZPLPORT: "^FDsupport.zebra.com^FS" PRINT #ZPLPORT: "^FO30,165^A0N,35,35"; PRINT #ZPLPORT: "^FDFW Version: "; PRINT #ZPLPORT: GETVAR$("appl.name") & "^FS" PRINT #ZPLPORT: "^FO30,205^A0N,35,35"; PRINT #ZPLPORT: "^FDPrinter Unique ID:"; PRINT #ZPLPORT: GETVAR$("device.unique_id") & "^FS" PRINT #ZPLPORT: "^FO30,245^A0N,35,35"; PRINT #ZPLPORT: "^FDActive Network: "; PRINT #ZPLPORT: GETVAR$("ip.active_network") & "^FS" PRINT #ZPLPORT: "^FO30,285^A0N,35,35"; PRINT #ZPLPORT: "^FDZBI Memory Usage: "; PRINT #ZPLPORT: GETVAR$("zbi.start_info.memory_alloc") & "^FS" PRINT #ZPLPORT: "^FO30,325^A0N,35,35"; PRINT #ZPLPORT: "^FDOdometer: "; PRINT #ZPLPORT: GETVAR$("odometer.total_print_length") & "^FS" PRINT #ZPLPORT: "^XZ" Comments None P1099958-001 Programming Guide 1/31/18

509 ZBI Commands 509 Systems TRIGGEREVENT ogramatically. This function allows for front panel buttons to be triggered pr Format TRIGGEREVENT(X) Parameters X possible event list to TRIGGER. = the ID of the event from the ed by this command: See the following printer tables for events that can be trigger Xi4/RXi4/XiIIIPlus/PAX4/105SL/ZE500 • onpage501 • 105SL Front Panel Key onpage501 onpage502 • ZM400/ZM600/RZ400/RZ600/Z4Mplus/Z6Mplus • S4M onpage502 Always returns 0. Returns Here are examples Example: of how to use the TRIGGEREVENT command: 1 REM THIS IS AN EXAMPLE OF HOW TO TRIGGER AN EVENT AUTONUM 1,1 LET PAUSEKEY = 2 DO WHILE 1 = 1 LET A = TRIGGEREVENT(PAUSEKEY) LET A = SETVAR("device.frontpanel.line2",str$(A)) SLEEP 2 LOOP Comments None Systems Here’s a quick list of these This section contain miscellaneous systems interface functions. commands: error set in t ISERROR Returns a non-zero value if ther e is an internal he printer. ISWARNING e is an internal warning set in Returns a non-zero value if ther the printer. Specifies the time that the interpreter pauses. SLEEP ter to set the error flag. Sends a message to the prin SETERR CLRERR ter to clear the error flag. Sends a message to the prin P1099958-001 Programming Guide 1/31/18

510 ZBI Commands 510 Systems ON ERROR Prevents a program from halting in the event of an error. P1099958-001 Programming Guide 1/31/18

511 ZBI Commands 511 Systems ISERROR This function returns a non-zero value if there i s an internal error set in the printer. Otherwise, the numeral returned will 0. ISERROR Format Parameters N/A Returns 0 for no errors; 1 if there is an error. command. ISERROR Example: Here is an example of the 10 PRINT ISERROR RUN 0 Comments None Programming Guide 1/31/18 P1099958-001

512 ZBI Commands 512 Systems ISWARNING This function returns a non-zero value if there is an internal warning set in the printer. Otherwise, the numeral returned will 0. ISWARNING Format N/A Parameters Returns 0 for no errors; 1 if there is an error. command. ISWARNING Example: Here is an example of the 10 PRINT ISWARNING RUN 0 Comments None Programming Guide P1099958-001 1/31/18

513 ZBI Commands 513 Systems SLEEP This command specifies the time t hat the interpreter pauses. Th is command could be sent to the rocessing for the eter pauses in its p printer after sending a label fo rmat to be printed. The interpr amount of time specified. Format SLEEP Parameters = the time in seconds (0 to 500) the interpreter pauses. command: SLEEP This is an example Example: of how to use the 10 SLEEP 450 system. The timer will allo Event If a timer is needed, use the w for processing other Comments ZBI commands for the specified SLEEP period. items, where SLEEP will stop execution of any . a line number This is a program command and m ust be preceded by Calling set to zero will force the ZBI task to yield to the rest of th e system and allow SLEEP with are no pending tasks, ZBI will any pending tasks to run (e.g. , pending ZPL commands). If there sleep for a minimum of 8 milliseconds. P1099958-001 Programming Guide 1/31/18

514 ZBI Commands 514 Systems SETERR This command sends a message to the printer to set the error fl ag. A logical interpreter flag is triggered in the printer. This error is referenced as a BASIC F orced Error. Format SETERR Parameters N/A commands. CLRERR and SETERR An example of the Example: AUTONUM 1,1 OPEN #1:NAME "ZPL" PRINT #1: "^XA^SXO,A,Y,Y^XZ" CLOSE #1 FOR I=1 TO 10 SLEEP 5 IF MOD(I,2)=1 THEN SETERR ELSE CLRERR ENDIF NEXT I . ust be preceded b This is a program command and m y a line number Comments 1/31/18 Programming Guide P1099958-001

515 ZBI Commands 515 Systems CLRERR This command sends a message to the printer to clear the error flag. A logical interpreter flag is rror is referenced as a BASIC For cleared in the printer. This e ced Error. Format 10 CLRERR Parameters N/A . on page 514 SETERR See Example: Comments s preceded by a line number. This is a program command that i Programming Guide 1/31/18 P1099958-001

516 ZBI Commands 516 Systems ON ERROR ON ERROR o prevent a program fr om halting in the e vent of an error. If The command can be used t statement calls the ON ERROR e during program execution, th an error occurs in a previous lin e GOTO or GOSUB statement and a llows the program to continue. Format ON ERROR GOTO ON ERROR GOSUB Parameters = the destination location in the program should an error be t riggered on the previous line. of how to use the ON ERROR Example: command: This is an example 30 LET A = B/C 40 ON ERROR GOTO 100 ... 100 PRINT "DIVIDE BY ZERO OCCURRED" 110 LET A = 0 120 GOTO 50 ... TCP Server See Example: UDP Server or . on page 487 on page 485 Comments If there is no error, this line is ignored. y a line number. This is a program command that is preceded b Applicator Functions 2. When ZBI takes The printer applicator port option can be controlled in part or completely by ZBI ss to that pin. This control of a pin, the printer’s built-in applicat or functionali ty will not have acce of the function function will allow the printer ality that a programmable logic to perform some controller (PLC) could. AUXPORT_STEALPIN Takes control of a pin and allows ZBI to perform other actions on the pin. on an applicator pin. Sets the output level AUXPORT_SETPIN AUXPORT_GETPIN Retrieves the state of the applicator pin. AUXPORT_RELEASEPIN Returns a pin controlled by ZBI to normal printer operation. 1/31/18 Programming Guide P1099958-001

517 ZBI Commands 517 Systems AUXPORT_STEALPIN rm other actions on the pin. e control of a pin and allow ZBI to perfo This function will tak Format AUXPORT_STEALPIN (X) X = perform action on this applicator port pin. Parameters This function returns -1 upon failure and 0 upon success. Returns command: AUXPORT_STEALPIN This is an example of the Example: 1 REM Demo applicator to show control of applicator pins 1 REM on the printer 1 REM The application is to create a light pole with an 1 REM external feed button AUTONUM 1,1 LET RED = 9 LET YELLOW = 10 LET GREEN = 11 LET BUTTON = 4 LET FEED_KEY = 3 LET TMP = AUXPORT_STEALPIN(RED) LET TMP = AUXPORT_STEALPIN(YELLOW) LET TMP = AUXPORT_STEALPIN(GREEN) LET TMP = AUXPORT_STEALPIN(BUTTON) DO WHILE 1 = 1 SLEEP 1 IF ISERROR = 1 THEN LET TMP = AUXPORT_SETPIN(RED,1) LET TMP = AUXPORT_SETPIN(YELLOW,0) LET TMP = AUXPORT_SETPIN(GREEN,0) ELSE IF ISWARNING = 1 THEN LET TMP = AUXPORT_SETPIN(RED,0) LET TMP = AUXPORT_SETPIN(YELLOW,1) LET TMP = AUXPORT_SETPIN(GREEN,0) ELSE LET TMP = AUXPORT_SETPIN(RED,0) LET TMP = AUXPORT_SETPIN(YELLOW,0) LET TMP = AUXPORT_SETPIN(GREEN,1) END IF IF AUXPORT_GETPIN(BUTTON) = 1 THEN LET A = TRIGGEREVENT(FEED_KEY) END IF LOOP ZBI (power pin), this functio If this pin is not controlled via n will return -1. Comments 1/31/18 Programming Guide P1099958-001

518 ZBI Commands 518 Systems AUXPORT_SETPIN the output level on an applicator pin. This function sets AUXPORT_SETPIN (X,Y) Format Parameters X = perform action on this applicator port pin. Y = The value to set on the pin (1 = high, 0 = low). Returns This function returns -1 upon failure and 0 upon success. . on page 517 AUXPORT_STEALPIN See Example: ZBI (power pin), this functio n will return -1. See If this pin is not controlled via Comments . on page 517 AUXPORT_STEALPIN P1099958-001 Programming Guide 1/31/18

519 ZBI Commands 519 Systems AUXPORT_GETPIN state of the applicator pin. Description This function will retrieve the Format (X) AUXPORT_GETPIN Parameters X = perform action on this applicator port pin. Returns This function returns 1 if pin is in high state, 0 in low state , and -1 upon failure. . on page 517 AUXPORT_STEALPIN See Example: ZBI (power pin), this functio n will return -1. See If this pin is not controlled via Comments . on page 517 AUXPORT_STEALPIN 1/31/18 Programming Guide P1099958-001

520 ZBI Commands 520 String Functions AUXPORT_RELEASEPIN operation. Description This function returns a pin contr olled by ZBI to normal printer Format AUXPORT_RELEASEPIN (X) X = perform action on this applicator port pin. Parameters failure and 0 upon success. Returns This function returns -1 upon Example: This is an example of the command: AUXPORT_RELEASEPIN 90 LET TMP = AUXPORT_RELEASEPIN(X) n will return -1. See ZBI (power pin), this functio If this pin is not controlled via Comments . AUXPORT_STEALPIN on page 517 String Functions is a quick list of these commands: This section identifies how to handle string manipulation. Here LCASE$ Converts a string to all lowercase characters. Takes a value between value into a stri CHR$ 0 and 255 and puts that ng. Removes leading spaces from a string. LTRIM$ REPEAT$ Creates multiple copies of a st ring combined into a new string. RTRIM$ Returns a string with trailing spaces removed SPLIT Splits a string into sub-strings sub-strings that would be returned by the Returns the number of SPLITCOUNT SPLIT function. UCASE$ Converts a string to all uppercase characters EXTRACT$ Searches for a string based on a starting and ending string. A$ first character of string . Returns the ASCII value of the ORD Returns the location o f the first occurrenc e of a search string in the target string. POS Returns the lengt LEN h of a string. 1/31/18 Programming Guide P1099958-001

521 ZBI Commands 521 String Functions LCASE$ . ing to all lowercase characters This function will convert a str Format LCASE$ (A$) Parameters (A$) = the string that will be converted A$ converted to lowercase. The characters in Returns This is an example command. LCASE$ Example: of how to use the 10 LET B$=LCASE$ ("Hello World") 20 PRINT B$ RUN hello world Comments acters, A-Z. ented Latin char This will only work on non-acc Programming Guide 1/31/18 P1099958-001

522 ZBI Commands 522 String Functions CHR$ This function takes a value be tween 0 and 255 and puts that val ue into a string. Format CHR$(VAL) = The numeric value of the string character. (VAL) Parameters Returns A single character string containing the value entered. This is an example command to easily put control characters CHR$ of how to use the Example: into strings: 10 LET NULL$=CHR$(0) 20 LET STX$=CHR$(2) 30 LET ETX$=CHR$(3) 40 LET EOT$=CHR$(4) None Comments Programming Guide P1099958-001 1/31/18

523 ZBI Commands 523 String Functions LTRIM$ ing spaces from a string. This function removes lead Format LTRIM$(A$) Parameters (A$) = the string to convert. A$ with no spaces. The string in Returns of how to use the Example: This is an example command: LTRIM$(A$) 10 LET A$=" Hello" 20 PRINT LTRIM$(A$) RUN Hello Comments None Programming Guide 1/31/18 P1099958-001

524 ZBI Commands 524 String Functions REPEAT$ This function creates multiple c a new string. opies of a string combined into REPEAT$(A$,M) Format Parameters = the base string to duplicate A$ M = the number of times to duplicate A$ When M=0, an empty string is returned. Note: . Returns A string containing M copies of A$ command: REPEAT$(A$,M) This is an example Example: of how to use the 10 PRINT REPEAT$("Hello",3) RUN HelloHelloHello Comments None Programming Guide P1099958-001 1/31/18

525 ZBI Commands 525 String Functions RTRIM$ This function return s a string with trailing spaces removed. Format RTRIM$(A$) = the base string Parameters (A$) with trailing spaces removed. A$ Returns This is an example of how to use the Example: command: RTRIM$(A$) 10 LET A$="Hello " 20 LET B$="World" 30 PRINT A$ & B$ 40 PRINT RTRIM$(A$)& B$ RUN Hello World HelloWorld Comments None 1/31/18 Programming Guide P1099958-001

526 ZBI Commands 526 String Functions SPLIT This function allows a string Description o sub-strings to be split int Format SPLIT(DEST$,SOURCE$,DELIMITER$) SPLIT(DEST$,SOURCE$,DELIMITER$,MAXCOUNT) Parameters DEST$ = the array to populate with th lit e sub-strings created by the sp SOURCE$ = the string that will be searched for the provided delimiter = the delimiter string (may be more than one character) to sea rch for DELIMITER$ = the maximum number of sub-stri ngs the string should be split into. A MAXCOUNT t. A value of zero will return negative value will return every sub-string created by the spli the maximum size of the array. empty strings in the array. If not specified, the limit will be The number of sub-st rings placed into the DEST$ array. If the n umber of sub-strings is Returns emaining elements of the arra y will be set to em pty strings. less than the size of DEST$, the r 1/31/18 Programming Guide P1099958-001

527 ZBI Commands 527 String Functions Table 26: command: Example 1: This is an example of how to use the SPLIT 1 REM Example - This example show how the SPLIT and SPLITCOUNT 1 REM commands can be 1 REM used to merge a comma separated variable string(CSV) 1 REM into a stored format AUTONUM 1,1 SLEEP 10 DECLARE STRING TESTDATA$(5) REM data format = ,,,..., LET TESTDATA$(1) = "E:PRICETAG.ZPL,FRED'S OATS,$1.25,C:126789:325,123456789" LET TESTDATA$(2) = "E:PRICETAG.ZPL,FRED'S OATS,$2.25,C:126789:325,123456789" LET TESTDATA$(3) = "E:PRICETAG.ZPL,FRED'S OATS,$3.25,C:126789:325,123456789" LET TESTDATA$(4) = "E:PRICETAG.ZPL,FRED'S OATS,$4.25,C:123489:325,123456789" LET TESTDATA$(5) = "E:PRICETAG.ZPL,FRED'S OATS,$5.25,C:123459:325,123456789" LET ZPLPORT = 2 OPEN #ZPLPORT: NAME "ZPL" FOR T = 1 TO 5 LET DATA$ = TESTDATA$(T) GOSUB CSVPRINTER NEXT T END REM ******* Subroutine CSVPRINTER, expects DATA$ and ZPLPORT **************** SUB CSVPRINTER LET CNT = SPLITCOUNT(DATA$, ",") DECLARE STRING SPLITSTRING$(CNT) ON ERROR GOTO RECOVERY LET CNT = SPLIT(SPLITSTRING$,DATA$,",") PRINT #ZPLPORT: "^XA^XF";SPLITSTRING$(1);"^FS" IF CNT >= 2 THEN FOR I = 2 TO CNT PRINT #ZPLPORT: "^FN";I-1;"^FD";SPLITSTRING$(I);"^FS" NEXT I END IF PRINT #ZPLPORT: "^XZ" SUB RECOVERY RETURN Programming Guide 1/31/18 P1099958-001

528 ZBI Commands 528 String Functions Example 2: SPLIT command: This is an example of how to use the 1 REM Example - Shows how the SPLIT and SPLITCOUNT commands can be used to 1 REM merge a comma separated variable string(CSV) into a stored format AUTONUM 1,1 SLEEP 10 DECLARE STRING TESTDATA$(5) REM data format = ,,,..., LET F$="E:PRICETAG.ZPL" LET TESTDATA$(1) = F$&",FRED'S ROLLED OATS,$1.25,C:123456789:325,123456789" LET TESTDATA$(2) = F$&",FRED'S ROLLED OATS,$2.25,C:123456789:325,123456789" LET TESTDATA$(3) = F$&",FRED'S ROLLED OATS,$3.25,C:123456789:325,123456789" LET TESTDATA$(4) = F$&",FRED'S ROLLED OATS,$4.25,C:123456789:325,123456789" LET TESTDATA$(5) = F$&",FRED'S ROLLED OATS,$5.25,C:123456789:325,123456789" LET ZPLPORT = 2 OPEN #ZPLPORT: NAME "ZPL" FOR T = 1 TO 5 LET DATA$ = TESTDATA$(T) GOSUB CSVPRINTER NEXT T END REM ******* Subroutine CSVPRINTER, expects DATA$ and ZPLPORT ***************** SUB CSVPRINTER LET CNT = SPLITCOUNT(DATA$, ",") DECLARE STRING SPLITSTRING$(CNT) ON ERROR GOTO RECOVERY LET CNT = SPLIT(SPLITSTRING$,DATA$,",") PRINT #ZPLPORT: "^XA^XF";SPLITSTRING$(1);"^FS" IF CNT >= 2 THEN FOR I = 2 TO CNT PRINT #ZPLPORT: "^FN";I-1;"^FD";SPLITSTRING$(I);"^FS" NEXT I END IF PRINT #ZPLPORT: "^XZ" SUB RECOVERY RETURN Comments ng, or does not appear in the SOURCE$ string, the first If the delimiter is an empty stri be the source string and all other elem entry of the array will ents will be empty strings. SPLIT function encounters a delimiter at the beginning or end of the source string, or two When the it populates the corre sponding array eleme delimiters in a row, nt with an empty string. MAXCOUNT eturned sub-strings (N), the las t MAXCOUNT - N array is larger than the number of r If is larger than the destinati on array or is negative, the MAXCOUNT elements will be empty strings. If MAXCOUNT . Therefore, the smallest v alue among the value of size of the array will be used as the MAXCOUNT , the size of the return array, or the number of sub-strings fo und determines the maximum number of sub-strings t hat will be returned. 1/31/18 Programming Guide P1099958-001

529 ZBI Commands 529 String Functions If is less than the number of delim iters in a string the last str ing in the array will hold the MAXCOUNT SOURCE$ = here the last delimiter was fo und. For example, if end of the string starting from w = ",", and "one,two,three,four,five", = 2, the output would be two strings: MAXCOUNT DELIMITER$ "one" and "two,th ree,four,five". , the array will be filled DEST$ linearly. For example, an If a two dimensional array is provided for array that is 2 x 3 (for example, ) will be filled from (0,0), then DECLARE STRING MYARRAY$(2,3) o (2,3). (0,1) up t Programming Guide 1/31/18 P1099958-001

530 ZBI Commands 530 String Functions SPLITCOUNT eturned by the Description r of sub-strings that would be r This function returns the numbe SPLIT function. Format SPLITCOUNT(SOURCE$, DELIMITER$) Parameters SOURCE$ = the string that will be searched for the provided delimiter. DELIMITER$ =5 function. SPLITCOUNT at would be returned by the The number of sub-strings th Returns ermine the number that the of sub-strings This function shows how to det Example: SPLITCOUNT command would produce 10 LET CNT = SPLITCOUNT("ONE,,,FOUR,FIVE,,SEVEN,", ",") 20 PRINT "Number of sub-strings returned is", STR$(CNT) RUN Number of sub-strings returned is 8 Comments None Programming Guide 1/31/18 P1099958-001

531 ZBI Commands 531 String Functions UCASE$ This function converts a strin g to all uppercase characters. Format UCASE$(A$) Parameters A$ = the base string to convert converted to uppercase. A$ Returns UCASE$(A$) command: of how to use the This is an example Example: 10 LET A$="Zebra Technologies" 20 PRINT UCASE$(A$) RUN ZEBRA TECHNOLOGIES ow to capitalize a line. This is an example of h Example: 10 LET A$="The Cow jUmped Over THE Moon." 20 LET A$=LCASE$(A$) 30 LET A$(1:1)=UCASE$(A$(1:1)) 40 PRINT A$ RUN The cow jumped over the moon. This will only convert non-acce nted Latin characters, a-z. Comments P1099958-001 Programming Guide 1/31/18

532 ZBI Commands 532 String Functions EXTRACT$ ing string. When these two strings are This function searches for a string based on a starting and end en them is returned. found, the string betwe Table 27: EXTRACT$ If the Important • command encounters a carriage return line feed before t returns null. cter or the ending character, i encountering the beginning chara Format EXTRACT$ (CHANNEL, START$, STOP$) EXTRACT$ (A$, START$, STOP$) Parameters = extracts data from this channel CHANNEL A$ = the source string = Once this string is found, the diately following. extract pulls characters imme START$ = the extraction stops when this string is found STOP$ is string: to extract the word Technologies from th This example shows how Example: Zebra,Technologies,Corporation. This is what the program l ooks like to accomplish this: 10 LET A$ = "Zebra,Technologies,Corporation," 20 LET DATA$ = EXTRACT$(A$,",",",") This example shows how the EXTRA Example: CT$ command works from an open port: " 10 OPEN #1: NAME " SER , " 20 LET DATA$ = EXTRACT$(1, " ) " , " , Notice how the quotes are used to show a literal character, in this case a comma. This example shows how the start Example: and stop points are variable; a variable name is used instead of the literal: 10 LET B$ = "," 20 LET A$ = "Zebra,Technologies,Corporation" 30 LET DATA$ = EXTRACT$(A$,B$,B$) 40 PRINT DATA$ RUN Technologies Programming Guide P1099958-001 1/31/18

533 ZBI Commands 533 String Functions rom the start of the string can be used to extract f This example shows how an empty Example: o the end string: input string t 10 LET IN$ = "BLAH BLAH " 20 LET B$ = EXTRACT$(IN$, "", "") 30 PRINT B$ RUN BLAH BLAH a line: This example will use an empty str Example: ing to extract to the end of 10 LET IN$ = "BLAH THE DATA" 20 LET B$ = EXTRACT$(IN$, "", "") 30 PRINT B$ RUN THE DATA met. Then, all data is Comments EXTRACT$ reads in and discards data until the star t criteria is returned up to the stop criteria. 1/31/18 Programming Guide P1099958-001

534 ZBI Commands 534 String Functions ORD This function returns the ASCII v alue of the first character of string A$ . Format ORD(A$) A$ irst character will be used. = Input string: only the f Parameters Returns The ASCII value of the first character. This is an example Example: command: of how to use the ORD(A$) 10 LET A$="ABC" 20 PRINT ORD(A$) RUN 65 None Comments Programming Guide P1099958-001 1/31/18

535 ZBI Commands 535 String Functions POS This function return s the location of the first occurrence of a search string in the target string. It can be assigned an index. Format POS(A$,B$) POS(A$,B$,M) Parameters A$ = the target string to search B$ = the search string to find in A$ M B$ start at the beginning of . If omitted, the search will = The index to start looking for M must be greater than zero. the string. ll return 0. Returns The location of the string. If t he string is not found, this wi This is an example of how to use the Example: POS command: 10 LET A$="Hello World" 20 LET B$="o" 30 PRINT POS(A$,B$) 40 PRINT POS(A$,B$,1) 50 PRINT POS(A$,B$,6) RUN 5 5 8 Comments None Programming Guide 1/31/18 P1099958-001

536 ZBI Commands 536 Math Functions LEN This function returns the length of a string. Format LEN(A$) = the target string from which to determine the length. Parameters A$ Returns The length of the string. 11 characters, as follows: h of a string. Hello World is This example identifies the lengt Example: 10 LET A$="Hello World" 20 PRINT LEN(A$) RUN 11 None Comments Math Functions . Here is a quick andle mathematical calculations This section identifies how to h list of these commands: STR$ Converts a number to a string. lue between two numbers. MAX Returns the greater va MIN Returns the smaller va lue of two numbers. permitted by this machine. returns the largest number MAXNUM Computes the remainder from division. MOD Evaluates the number represented by a string. VAL . s it into a hexadecimal string Takes a numeric value and convert INTTOHEX$ Converts hexadecimal strings to integers. HEXTOINT 1/31/18 Programming Guide P1099958-001

537 ZBI Commands 537 Math Functions STR$ a number to a string. This function converts Format STR$(X) Parameters X = the number to convert to a string X . A string representing Returns of how to use the Example: This is an example command: STR$(X) 10 LET A=53 20 PRINT STR$(A) RUN 53 Comments None Programming Guide 1/31/18 P1099958-001

538 ZBI Commands 538 Math Functions MAX er value between two numbers. This function returns the great Format MAX(X,Y) Parameters X = the first number to compare = the second number to compare Y The greater of Returns X or Y. This is an example command: MAX(X,Y) of how to use the Example: 10 LET A=-2 20 LET B=1 30 PRINT MAX(A,B) RUN 1 None Comments Programming Guide P1099958-001 1/31/18

539 ZBI Commands 539 Math Functions MIN This function returns the smaller value of two numbers. MIN(X,Y) Format Parameters X = the first number to compare = the second number to compare Y Returns The smaller of X or Y. This is an example command: MIN(X,Y) of how to use the Example: 10 LET A=-2 20 LET B=0 30 PRINT MIN(A,B) RUN -2 None Comments Programming Guide 1/31/18 P1099958-001

540 ZBI Commands 540 Math Functions MAXNUM This function return s the largest number permitted by this mach ine: 2,147,483,647. Format MAXNUM Parameters N/A 647). IC type can handle (2,147,483, The largest number that the NUMER Returns command: MAXNUM This is an example Example: of how to use the 10 PRINT MAXNUM RUN 2147483647 None Comments Programming Guide P1099958-001 1/31/18

541 ZBI Commands 541 Math Functions MOD This function computes the remai nder from division. (This is kn own as the modulus.) Format MOD(X,Y) Parameters X = the value to be modulated (numerator). Y = the base number or divisor (denominator). Returns The remainder of the division (X/Y). MOD(X,Y) command: of how to use the Example: This is an example 10 PRINT MOD(25,10) 20 PRINT MOD(2,1) 30 PRINT MOD(3,2) 40 PRINT MOD(9,2) 50 PRINT MOD(-2,9) 60 PRINT MOD(2,0) RUN 5 0 1 1 -2 ERROR OCCURRED ON LINE 60:DIVIDE BY ZERO None Comments P1099958-001 Programming Guide 1/31/18

542 ZBI Commands 542 Math Functions VAL mber represented by a string. This function evaluates the nu Format VAL(A$) s are ignored. Parameters A$ = This is the input string to pull the number from. Non-number The numeric representation of the string. Returns This is an example of how to use the Example: VAL(A$) command: 10 LET A$="123" 20 LET C=VAL(A$) 30 PRINT C RUN 123 PRINT VAL("321A123") 321123 Comments None Programming Guide P1099958-001 1/31/18

543 ZBI Commands 543 Math Functions INTTOHEX$ exadecimal string. ic value and convert it into a h This function will take a numer Description for integers is: The range of values -2,147,483,648 to +2,147,483,647 INTTOHEX$(A) Format = The numeric value to convert. A Parameters Returns A string representing the integer in hex. show the output of the These print statements Example: function given different INTTOHEX$ values. PRINT INTTOHEX$(1) 1 PRINT INTTOHEX$(10) A PRINT INTTOHEX$(16) 10 PRINT INTTOHEX$(20) 14 PRINT INTTOHEX$(30) 1E PRINT INTTOHEX$(100) 64 PRINT INTTOHEX$(123124) 1EOF4 PRINT INTTOHEX$(-5) 0 PRINT INTTOHEX$(-99) 0 Comments Negative values will be returned as 0. 1/31/18 Programming Guide P1099958-001

544 ZBI Commands 544 Array Functions HEXTOINT This function will convert hex adecimal strings to integers. Format (A$) HEXTOINT Parameters A$ = The hex string to convert. Returns A integer string computed from the hexadecimal string. These print statements show the output of the Example: function given different values. INTTOHEX PRINT HEXTOINT("0") 0 PRINT HEXTOINT("A") 10 PRINT HEXTOINT("a") 10 PRINT HEXTOINT("1A") 26 PRINT HEXTOINT("10") 16 PRINT HEXTOINT("AaAa") 43690 PRINT HEXTOINT("AAAA") 43690 PRINT HEXTOINT("-1") 0 PRINT HEXTOINT("-A") 0 Comments be returned as 0. Negative values will Array Functions This section describes the func ry arrays. tions to search, resize, and que Changes the size of an array. REDIM P1099958-001 Programming Guide 1/31/18

545 ZBI Commands 545 Array Functions row into an existing array. INSERTROW Inserts a new DELROW Deletes a new row from an existing array ROWSIZE Returns the number of rows in an array. COLUMNSIZE Returns the number of columns in an array. FIND Searches a string array for an occurrence of a sub-string. P1099958-001 Programming Guide 1/31/18

546 ZBI Commands 546 Array Functions REDIM dimensions of an array. This command will change the Format REDIM () REDIM (,) REDIM () REDIM (,) Parameters = new number of entries in a single dimension array. = new number of rows in a two dimensional array. = new number of columns i n a two dimensional array. y. e a one dimensional numeric arra Example: This example shows how to chang 10 DECLARE NUMERIC SCORES(3) 20 LET SCORES(1) = 85 30 LET SCORES(2) = 92 40 LET SCORES(3) = 98 50 REDIM SCORES(2) ! Discard the last one . a two dimensional string array This example shows how to change Example: 10 DECLARE STRING NAMEAGES$(3,2) 20 LET NAMEAGES$(1,1) = "Abraham" 30 LET NAMEAGES$(1,2) = "Lincoln" 40 LET NAMEAGES$(2,1) = "Dwight" 50 LET NAMEAGES$(2,2) = "Eisenhower" 60 LET NAMEAGES$(3,1) = "Theodore" 70 LET NAMEAGES$(3,2) = "Roosevelt" 80 REDIM NAMEAGES$(5,2) ! Make room for more The REDIM must have the same number of dimensions as the original declar ation of Comments the array. change. It must have the same • If the array has two dimensions, the second array bound cannot value as the original declaration. REDIM al array) at the end of two dimension s (or rows, for a makes an array smaller, element •If the array are discarded. REDIM of the array, and ts (or rows) are added at the end makes an array larger, elemen •If initialized as they would be with a . DECLARE ct as soon as that takes effe This can be an interactive command it is received by the printer, or a ceded by a line number. program command that is pre 1/31/18 Programming Guide P1099958-001

547 ZBI Commands 547 Array Functions INSERTROW row into an existing array. This command will insert a new Format INSERTROW (, ) Parameters = array where the row will be inserted = index of the row in the array that the new row will be inser ted before to insert a row into the middle of an ar Example: ray. This example shows how 10 DECLARE NUMERIC SCORES(3) 20 LET SCORES(1) = 85 30 LET SCORES(2) = 92 40 LET SCORES(3) = 98 50 INSERTROW(SCORES, 2) 60 LET SCORES(2) = 100 Example: row into the end of an array. This example shows how to add a 10 DECLARE NUMERIC SCORES(3) 20 LET SCORES(1) = 85 30 LET SCORES(2) = 92 40 LET SCORES(3) = 98 50 INSERTROW(SCORES, 4) 60 LET SCORES(4) = 100 Inserting a row increases the si ze of the array by one row, and moves all the rows Comments INDEX sition INDEX to the end of the array up one ro . w, leaving an empty row at po from INDEX If the number of rows plus of rows in the array plus one. cannot be any larger the number ll be added to the end of the ar ray. one is provided, the new row wi it is received by the printer, or a ct as soon as that takes effe This can be an interactive command program command that is pre ceded by a line number. P1099958-001 Programming Guide 1/31/18

548 ZBI Commands 548 Array Functions DELROW This command will delete a ro w from an existing array. Format DELROW (, ) Parameters = the array where the row will be deleted = index of the row to delete from the array ray. the middle of an ar to delete a row from This example shows how Example: 10 DECLARE NUMERIC SCORES(5) 20 LET SCORES(1) = 85 30 LET SCORES(2) = 92 40 LET SCORES(3) = 98 50 LET SCORES(4) = 45 60 LET SCORES(5) = 100 70 DELROW(SCORES, 4) ! Remove the low score This decreases the size of A by one row, and moves all the rows from INDEX to the Comments NDEX. end of the array down by one, over writing the row at position I ber of rows in the array. cannot be any larger the num INDEX that row may n If the array only has one row, ot be deleted. it is received by the printer, or a ct as soon as that takes effe This can be an interactive command ceded by a line number. program command that is pre 1/31/18 Programming Guide P1099958-001

549 ZBI Commands 549 Array Functions ROWSIZE urn the number of rows in an array. This function will ret Format ROWSIZE(A) ROWSIZE(A$) Parameters = integer array to query for the number of rows. A = string array to query for the number of rows. A$ Returns of elements in the array if Returns a 0 if the variable is not an array. Returns the number he size of the first dimension if the array has two dimension. Returns t the array has only one dimensions. one dimensional rmine the number of elements in a This example shows how to dete Example: string array. 10 DECLARE STRING NAMES$(3) 20 LET NAMES$(1) = "Fred" 30 LET NAMES$(2) = "Wilma" 40 LET NAMES$(3) = "Barney" 50 REDIM NAMES$(4) ! Make room for Betty 60 LET NAMES$(4) = "Betty" 70 LET NUMOFNAMES = ROWSIZE(NAMES$) 80 PRINT NUMOFNAMES Example: dimensional numeric This example shows how to determine the number of rows in a two array. 10 DECLARE NUMERIC SQROFTWOLOOKUP(3,2) 20 LET SQROFTWOLOOKUP (1,1) = 1 30 LET SQROFTWOLOOKUP (1,2) = 2 40 LET SQROFTWOLOOKUP (2,1) = 2 50 LET SQROFTWOLOOKUP (2,2) = 4 60 LET SQROFTWOLOOKUP (3,1) = 3 70 LET SQROFTWOLOOKUP (3,2) = 8 80 LET NUMOFSQRS = ROWSIZE(SQROFTWOLOOKUP) 90 PRINT NUMOFSQRS Programming Guide 1/31/18 P1099958-001

550 ZBI Commands 550 Array Functions COLUMNSIZE urn the number of co This function will ret lumns in an array. Format COLUMNSIZE(A) COLUMNSIZE(A$) Parameters = integer array to query for the number of columns. A = string array to query for the number of columns. A$ Returns A 0 if the variable is not an array. Returns 1 if the array has only one dimension. Returns the size of the second dimension if the array has two dimension s. one dimensional rmine the number of elements in a This example shows how to dete Example: string array. 10 DECLARE STRING NAMES$(3) 20 LET NAMES$(1) = "Fred" 30 LET NAMES$(2) = "Wilma" 40 LET NAMES$(3) = "Barney" 50 REDIM NAMES$(4) ! Make room for Betty 60 LET NAMES$(4) = "Betty" 70 LET NUMOFCOLS = COLUMNSIZE(NAMES$) 80 PRINT NUMOFCOLS Example: This example shows how two dimensional to determine the number of columns in a numeric array. 10 DECLARE NUMERIC SQROFTWOLOOKUP(3,2) 20 LET SQROFTWOLOOKUP (1,1) = 1 30 LET SQROFTWOLOOKUP (1,2) = 2 40 LET SQROFTWOLOOKUP (2,1) = 2 50 LET SQROFTWOLOOKUP (2,2) = 4 60 LET SQROFTWOLOOKUP (3,1) = 3 70 LET SQROFTWOLOOKUP (3,2) = 8 80 LET COLCNT = COLUMNSIZE(SQROFTWOLOOKUP) 90 PRINT COLCNT Programming Guide P1099958-001 1/31/18

551 ZBI Commands 551 Array Functions FIND nt of a string a This function will find an eleme ins an identified search string. rray that conta Format FIND(A$, B$) FIND(A$, B$, START) FIND(A$, COLUMN, B$) FIND(A$, COLUMN, B$, START) Parameters B$ . A$ = string array to search for A$ . B$ = string to search for within mensional array, to = index within a single dimensional array, or row for a two di START start the search. = column to isolate search to in a two dimensional array. This must be supplied COLUMN A$ is a two dimensional array. if is not found or if there was an Returns a 0 if index that B$ error. Otherwise, returns the Returns (the element index for one dimensional arrays, the row B$ contains the first occurrence of the string for two dimensional arrays). ray. Example: This example shows how to find a string in a one dimensional ar 10 DECLARE STRING NAMES$(4) 20 LET NAMES$(1) = "Fred" 30 LET NAMES$(2) = "Wilma" 40 LET NAMES$(3) = "Barney" 50 LET NAMES$(4) = "Betty" 60 LET BARNEYIX = FIND(NAMES$, "Bar") 70 PRINT "Found Barney in element "; STR$(BARNEYIX) Programming Guide P1099958-001 1/31/18

552 ZBI Commands 552 Time and Date Functions This example shows how to find a string that occurs more than o nce in a two dimensional Example: array. 10 DECLARE STRING CLOTHING$(5,2) 20 LET TYPECOL = 1 30 LET MATERIALCOL = 2 40 LET CLOTHING$(1,1) = "Gloves" 50 LET CLOTHING$(1,2) = "Knit" 60 LET CLOTHING$(2,1) = "Pants" 70 LET CLOTHING$(2,2) = "Cotton" 80 LET CLOTHING$(3,1) = "Gloves" 90 LET CLOTHING$(3,2) = "Leather" 100 LET CLOTHING$(4,2) = "Shirts" 110 LET CLOTHING$(4,2) = "Polyester" 120 LET CLOTHING$(5,2) = "Pants" 130 LET CLOTHING$(5,2) = "Denim" 140 LET GLOVEIX = 1 150 DO 160 LET GLOVEIX = FIND(CLOTHING$, TYPECOL, "Gloves", GLOVEIX) 170 IF NOT GLOVEIX = 0 THEN 180 PRINT CLOTHING$(GLOVEIX, MATERIALCOL), "gloves are available" 190 LET GLOVEIX = GLOVEIX + 1 200 END IF 210 LOOP WHILE NOT GLOVEIX = 0 must be greater than 0. COLUMN Comments START is given, it must be greater than 0. If FIND will match the first occurrenc e of B$, even if it is a sub string of a string within the A$ array. For example, “Coat” wil l be found in both locations 1 and 4. 5 DECLARE STRING A$(5) 10 LET A$(1) = “Over Coat” 20 LET A$(2) = “Hat” 30 LET A$(3) = “Jacket” 40 LET A$(4) = “Coat” 50 LET A$(5) = “Boots” urned or the item is found and should be called until 0 is ret FIND If an exact match is needed, t the expected item , it should match exactly. See CSV confirmed. To confirm, check the item agains ing how to do this. Program on page 560 for an example show Time and Date Functions This section describes the functions to access the real time cl ock option. Here is a quick list of these commands: Returns the date as a string DATE$ Returns the curren TIME$ t time in a string. 1/31/18 Programming Guide P1099958-001

553 ZBI Commands 553 Time and Date Functions DATE Gets the current date as a number. TIME Gets the current time as a number. 1/31/18 Programming Guide P1099958-001

554 ZBI Commands 554 Time and Date Functions DATE$ This function returns the date as a string. Format DATE$ Parameters N/A The current date in string form YYYYMMDD . If the Real-Time Clock is not installed, an Returns empty string is returned. of how to use the This is an example Example: DATE$ command: 10 PRINT DATE$ RUN The result, assuming the date is January 1, 2003 is: 20030101 This is another example of the sub-string operator to command used with the DATE$ Example: get the day of the month: 10 LET A$=DATE$(7:8) 20 IF A$ <> DATE$(7:8) 30 LET A$=DATE$(7:8) 40 IF A$="01" 50 PRINT "IT IS THE FIRST OF THE MONTH" 60 END IF 70 END IF 80 SLEEP 100 90 GOTO 20 None Comments P1099958-001 Programming Guide 1/31/18

555 ZBI Commands 555 Time and Date Functions TIME$ This function returns the current time in a string. Format TIME$ Parameters N/A of day in format HH:MM:SS (hours This function returns the time :minutes:seconds). If Returns ed. not installed, an empty string is return the Real-Time Clock is command: TIME$ Example: This is an example of how to use the 10 PRINT TIME$ RUN 10:00:00 Comments None P1099958-001 1/31/18 Programming Guide

556 ZBI Commands 556 Time and Date Functions DATE This function gets the current date as a number. Format DATE Parameters N/A is the year and YYYY format, where YYYYDDD This function returns the current date in Returns 0 Real-Time Clock is not installed, DDD is the number of days since the beginning of the year. If the is returned. Example: the current date is January 1, 2003: This example assumes 10 PRINT DATE RUN 2003001 None Comments Programming Guide 1/31/18 P1099958-001

557 ZBI Commands 557 Set/Get/Do Interactions TIME This function gets the current time as a number. Format TIME Parameters N/A This function returns the time past midnight (2400h) in seconds . If the Real-Time Clock is Returns not installed, 0 is returned. ime is one minute past command [assuming the t TIME of how to use the This is an example midnight]: Example: 10 PRINT TIME RUN 60 Comments None Set/Get/Do Interactions The printer’s Set/Get/Do data can be directly accessed via ZBI. For a complete listing of what can be SGD Printer Commands on page 571 , or type the following: accessed, see ! U1 getvar "allcv" Here’s a quick list of these commands: Allows the direct setting SETVAR of printer parameters. GETVAR$ Retrieves printer parameters. P1099958-001 Programming Guide 1/31/18

558 ZBI Commands 558 Set/Get/Do Interactions SETVAR SETVAR Description of printer parameters. allows the direct setting SETVAR (PARAM$, VALUE$) Format Parameters = The printer parameter to set. PARAM$ VALUE$ = the value to set Returns Parameter dependent. Table 28: Example: command: SETVAR This is an example of the AUTONUM 1,1 LET OUTSTR$ = "Processing" LET LOOPCTR = 200 LET TIMER5 = 17 LET TMP = REGISTEREVENT(TIMER5, 0, 1000) DO WHILE LOOPCTR > 0 LET EVT = HANDLEEVENT() IF EVT = TIMER5 THEN LET A = SETVAR("device.frontpanel.line2",OUTSTR$) LET OUTSTR$ = OUTSTR$ & "." IF LEN(OUTSTR$) >16 THEN LET OUTSTR$ = "Processing" END IF END IF LET LOOPCTR = LOOPCTR - 1 SLEEP 1 LOOP LET TMP = UNREGISTEREVENT(TIMER5) LET A = SETVAR("device.frontpanel.line2","") END None Comments P1099958-001 Programming Guide 1/31/18

559 ZBI Commands 559 Example Programs GETVAR$ This function retrieves printer parameters. Format GETVAR$ (PARAM$) Parameters PARAM$ = the printer parameter to get. The value of the parameter. Refer to SGD Printer Commands onpage571 for Returns specific parameters. Table 29: Example: command: This is an example of the GETVAR$ AUTONUM 1,1 LET SGDCOUNT = 7 DECLARE STRING SGDQUERY$(2,SGDCOUNT) LET SGDQUERY$(1,1) = "appl.name" LET SGDQUERY$(1,2) = "device.printhead.serialnum" LET SGDQUERY$(1,3) = "internal_wired.ip.addr" LET SGDQUERY$(1,4) = "internal_wired.ip.netmask" LET SGDQUERY$(1,5) = "internal_wired.ip.gateway" LET SGDQUERY$(1,6) = "internal_wired.ip.port" LET SGDQUERY$(1,7) = "internal_wired.mac_addr" FOR I = 1 TO SGDCOUNT LET SGDQUERY$(2,I) = GETVAR$(SGDQUERY$(1,I)) NEXT I OPEN #1: NAME "ZPL" PRINT #1: "^XA" FOR I = 1 TO SGDCOUNT PRINT #1: "^FO50,";50*I;"^A0N,25,25^FD";SGDQUERY$(1,I);"="; PRINT #1: SGDQUERY$(2,I);"^FS" NEXT I PRINT #1: "^XZ" None Comments Example Programs programs of common tasks usin g ZBI commands. These The next section provides example http://www.zebra.com/zbi programs are also available for download at: Programming Guide 1/31/18 P1099958-001

560 ZBI Commands 560 Example Programs Array Program This program prompts a user to e nter first a name; when it is e ntered, it is added to an array of all hich is then added to an array of names entered. The user is them p rompted to enter an address, w all addresses entered. After the user enters a to tal or five na mes and addresses, the program uses the arrays to print the ent ered data on five labels. This is an example of Array Example: 1 rem ******************************************************** 1 rem Zebra Technologies ZBI Sample Program 1 rem 1 rem Professional programming services are available. Please contact 1 rem [email protected] for more information. 1 rem 1 rem This is an example of using arrays to store and use data within 1 rem ZBI. 1 rem ******************************************************** 1 rem close all ports except for the console 1 rem********************************************************* 10 for i = 1 to 9 step 1 20 close #i 30 next i 1 rem ******************************************************** 1 rem open a port to the print engine 1 rem ****************************************************** 40 open #1: name "ZPL" 1 rem ******************************************************** 1 rem create string arrays five elements in size to hold names and 1 rem addresses 1 rem ******************************************************** 50 declare string name$(5) 60 declare string address$(5) 1 rem ******************************************************** 1 rem infinite loop to put name and address data from console into 1 rem arrays 1 rem ******************************************************** 70 do 80 for i = 1 to 5 step 1 90 print "PLEASE ENTER THE NAME" 1 rem ******************************************************** 1 rem get data from console; input command looks for CRLF 1 rem ******************************************************** 100 input name$(i) 1 rem ******************************************************** 1 rem if the user inputs end or END, the program will end 1 rem ******************************************************** 110 if name$(i) = "END" or name$(i) = "end" then 120 end 130 end if 140 print "PLEASE ENTER THE ADDRESS" 150 input address$(i) 160 if address$(i) = "END" or address$(i) = "end" then 170 end 180 end if 190 next i 200 for index = 1 to 5 step 1 ! For loop To Print data no label 1 rem ******************************************************** 1 rem semicolon at the end prints with no CRLF 1 rem ******************************************************** 210 print #1: "^XA^FO30,30^A0N,30,30^FD"&NAME$(INDEX)&"^FS"; 1 rem ******************************************************** 1 rem ampersand used to concatenate data into strings 1 rem ******************************************************** 220 print #1: "^FO30,70^A0N,30,30^FD"&ADDRESS$(INDEX)&"^FS^XZ" 230 next index 240 loop ! loops back To Line 60 250 end CSV Program The following program will initia lize and then execute continuo usly, repeating t he same series of operations; process events, read i nput from the serial port, wr ite any processed data out to the ZPL port, and then proces s the data read fro m the serial port. Programming Guide P1099958-001 1/31/18

561 ZBI Commands 561 Example Programs The program first loads the CSV database E:PRODUC TS.CSV (in PRO GRAMINIT subroutine). rst column in the database. If an entry Then, data read from the serial port is compared against the fi is found in the first column of a row (in FINDITEM subroutine), the data for the respective row is inserted into the ZPL format E: PRICELBL.ZPL and printed on a la bel. Example 1: This is an example of a CSV program. 1 REM SUBROUTINES BELOW... 2 REM 3 REM ************************************************************************ 4 REM MAIN LOOP - DO NOT MODIFY 5 REM ************************************************************************ 6 REM 7 GOSUB PROGRAMINIT 8 DO WHILE 1 = 1 9 GOSUB PROCESSEVENTS 10 GOSUB GETINPUT 11 GOSUB WRITEOUTPUT 12 GOSUB PROCESSDATA 13 LOOP 14 REM SUBROUTINES BELOW... 15 REM 16 REM ************************************************************************ 17 REM Program Init 18 REM ************************************************************************ 19 REM 20 SUB PROGRAMINIT 21 LET INPORT = 1 22 LET OUTPORT = 2 23 LET ENDLINE$ = CHR$ ( 13 ) & CHR$ ( 10 ) 24 OPEN # INPORT : NAME "SER" 25 OPEN # OUTPORT : NAME "ZPL" 26 DECLARE STRING DATABASE$ ( 1 , 1 ) 27 LET COLUMNCOUNT = CSVLOAD ( DATABASE$ , "E:PRODUCTS.CSV" ) 28 LET OUTDATA$ = "TABLE WITH " & STR$ ( COLUMNCOUNT ) & " COLUMNS LOADED" & ENDLINE$ 29 RETURN 30 REM 31 REM ************************************************************************ 32 REM Process Events 33 REM ************************************************************************ 34 REM 35 SUB PROCESSEVENTS 36 RETURN 37 REM 38 REM ************************************************************************ 39 REM Get Input 40 REM 41 REM Writes All Data from the serial port to the string INDATA$ 42 REM ************************************************************************ 43 REM 44 SUB GETINPUT 45 IF LEN ( INDATA$ ) < 5000 THEN 46 LET INCOUNT = READ ( INPORT , A$ , 1024 ) 47 LET INDATA$ = INDATA$ & A$ 48 END IF 49 RETURN 50 REM 51 REM ************************************************************************ 52 REM Write Output 53 REM 54 REM Writes All Data from the string OUTDATA$ to the ZPL Port 55 REM ************************************************************************ 56 REM 57 SUB WRITEOUTPUT 58 LET OUTCOUNT = WRITE ( OUTPORT , OUTDATA$ , LEN ( OUTDATA$ ) ) 59 IF OUTCOUNT > 0 THEN 60 LET OUTDATA$ ( 1 : OUTCOUNT ) = "" 61 END IF 62 RETURN 63 REM 64 REM *************************************************************************** 65 REM Process Data 66 REM 67 REM Parse the data in the string INDATA$ and write output to OUTDATA$ 68 REM ************************************************************************ 69 REM 70 SUB PROCESSDATA 71 IF LEN ( OUTDATA$ ) > 1000 THEN 72 RETURN Programming Guide 1/31/18 P1099958-001

562 ZBI Commands 562 Example Programs 73 END IF 74 REM REMOVE ALL LINE FEEDS 75 DO 76 LET LOC = POS ( INDATA$ , CHR$ ( 10 ) ) 77 LET INDATA$ ( LOC : LOC ) = "" 78 LOOP WHILE LOC > 0 79 REM COMPLETED LINE FEED REMOVAL 80 LET LOC = POS ( INDATA$ , CHR$ ( 13 ) ) ! Line ends with CR 81 IF LOC > 0 THEN 82 LET INLINE$ = INDATA$ ( 1 : LOC - 1 ) 83 LET INDATA$ ( 1 : LOC ) = "" 84 GOSUB FINDITEM 85 IF ROW > 0 THEN 86 LET OUTDATA$ = OUTDATA$ & "^XA^XFE:PRICELBL.ZPL^FS" & ENDLINE$ 87 LET OUTDATA$ = OUTDATA$ & "^FN1^FD" & DATABASE$ ( ROW , 1 ) & "^FS" & ENDLINE$ 88 LET OUTDATA$ = OUTDATA$ & "^FN2^FD" & DATABASE$ ( ROW , 2 ) & "^FS" & ENDLINE$ 89 LET OUTDATA$ = OUTDATA$ & "^FN3^FD" & DATABASE$ ( ROW , 3 ) & "^FS^XZ" & ENDLINE$ 90 END IF 91 END IF 92 RETURN 93 REM 94 REM ************************************************************************ 95 REM Find Item 96 REM 97 REM Search the first column of the database for the exact item requested 98 REM ************************************************************************ 99 REM 100 SUB FINDITEM 101 LET ROW = 0 102 LET EXPECTED$ = INLINE$ 103 DO 104 LET FOUNDENTRY$ = "" 105 LET ROW = FIND ( DATABASE$ , 1 , EXPECTED$ , ROW + 1 ) 106 IF ROW <> 0 THEN 107 LET FOUNDENTRY$ = DATABASE$ ( ROW , 1 ) 108 END IF 109 LOOP WHILE ( ROW <> 0 AND FOUNDENTRY$ <> EXPECTED$ ) 110 RETURN DPI Conversion Program This program converts a ZPL format being sent to the printer on the parallel port to 300 dpi (dots per inch) from 200 dpi (dots per inch). This is done by searching for and extracting ZPL commands with resolution-dependent arguments and scaling the arguments for a 300 dpi printer. Example: This is an example of dpi conversion: 1 rem ************************************************** 1 rem Zebra Technologies ZBI Sample Program 1 rem 1 rem Professional programming services are available. Please contact 1 rem [email protected] for more information. 1 rem 1 rem This is an example of converting a printer from 200 dpi (dots 1 rem per inch 1 rem to 300 dpi. This example covers only some of the ZPL commands 1 rem that 1 rem could be affected by converting from 200 to 300 dpi printing. 1 rem ************************************************** 1 rem open the ports for input and output 1 rem ************************************************** 10 close #1 20 close #2 30 open #1 : name "PAR" 40 open #2 : name "ZPL" 1 rem ************************************************** 1 rem create an array with the search parameters 1 rem ************************************************** 50 declare string find$(20) 60 let find$(1) = "^FO" 70 let find$(2) = "^A0" 80 let find$(3) = "^GB" 90 let find$(4) = "^XZ" 100 let find$(5) = "^[email protected]" 110 let find$(6) = "^LL" 120 let find$(7) = "^LH" 130 let find$(8) = "FO" Programming Guide P1099958-001 1/31/18

563 ZBI Commands 563 Example Programs 140 let find$(9) = "A0" 150 let find$(10) = "GB" 160 let find$(11) = "XZ" 170 let find$(12) = "[email protected]" 180 let find$(14) = "LH" 190 let find$(15) = "^BY" 200 let find$(16) = "BY" 210 let find$(17) = "^B3" 220 let find$(18) = "B3" 1 rem ******************************************************* 1 rem search for the parameters 1 rem ******************************************************* 300 do 310 let in$ = searchto$(1, find$, 2) 1 rem ******************************************************** 1 rem once a parameter is found, determine how to handle it 1 rem ******************************************************** 320 if in$ = "^FO" or in$ = "FO" then 330 gosub 520 340 else if in$ = "^LH" or in$ = "LH" then 350 gosub 520 360 else if in$ = "^A0" or in$ = "A0" then 370 gosub 700 380 else if in$ = "^[email protected]" or in$ = "[email protected]" then 390 gosub 700 400 else if in$ = "^GB" or in$ = "GB" then 410 gosub 1100 420 else if in$ = "^LL" then 430 gosub 1300 440 else if in$ = "^BY" or in$ = "BY" then 450 gosub 1400 460 else if in$ = "^B3" or in$ = "B3" then 470 gosub 1600 480 else if in$ = "^XZ" then 490 print #2: in$; 500 end if 510 loop 1 rem ******************************************************** 1 rem convert the ^FO and ^LH commands from 200 to 300 dpi 1 rem ******************************************************** 520 inbyte #1: a$ 530 let a = ord(a$) 540 if a >= 65 then 550 print #2: in$&a$; 560 goto 660 570 end if 580 let x$ = extract$(1, "", ", ") 590 let x2$ = a$&x$ 600 let y$ = extract$(1, "", "^") 610 let x = val(x2$) 620 let y = val(y$) 630 let x2 = (x/2)+x 640 let y2 = (y/2)+y 650 print #2: in$; x2; ","; y2; "^"; 660 return 1 rem ******************************************************** 1 rem convert the ^A0 and ^[email protected] commands from 200 to 300 dpi 1 rem ******************************************************** 700 inbyte #1: a$ 710 let a = ord(a$) 720 let b = 0 730 let c = 0 740 if a >= 65 then 750 print #2: in$&a$; ","; 760 let b = 1 770 end if 780 inbyte #1: a$ 790 let h$ = extract$(1, "", ",") 800 if in$ = "^[email protected]" or in$ = "[email protected]" then 810 let c = 1 820 let w$ = extract$(1, "", ",") 830 let m$ = extract$(1, "", "^") 840 else 850 let w$ = extract$(1, "", "^") 860 end if 870 let h = val(h$) 880 let w = val(w$) 900 let h2 = (h/2) + h 910 let w2 = (w/2) + w 920 if b = 1 then 930 print #2: h2; ","; w2; 940 else Programming Guide 1/31/18 P1099958-001

564 ZBI Commands 564 Example Programs 950 print #2: in$&"N,"; h2; ","; w2; 960 end if 970 if c = 1 then 980 print #2: ","; m$; 990 end if 1000 print #2: "^"; 1010 return 1 rem ******************************************************** 1 rem convert the ^GB command from 200 to 300 dpi 1 rem ******************************************************** 1020 let w$ = extract$(1, "", ",") 1030 let h$ = extract$(1, "", ",") 1040 let t$ = extract$(1, "", "^") 1050 let h = val(h$) 1060 let w = val(w$) 1070 let t = val(t$) 1080 let h2 = (h/2)+ h 1090 let w2 = (w/2)+ w 1100 let t2 = (t/2)+ t 1110 print #2: in$; w2; ","; h2; ","; t2; "^"; 1120 return 1 rem ******************************************************** 1 rem convert the ^LL command from 200 to 300 dpi 1 rem ******************************************************** 1300 let l$ = extract$(1, "", "^") 1310 let l = VAL(l$) 1320 let l2 = (l/2) + l 1330 print #2: in$; l2; "^"; 1340 return 1 rem ******************************************************** 1 rem convert the ^BY command from 200 to 300 dpi 1 rem ******************************************************** 1400 inbyte #1: a$ 1410 let a = ord(a$) 1420 if a >= 48 and a <= 57 then 1460 let x$ = extract$(1, "", ", ") 1470 let x2$ = a$&x$ 1480 let x = val(x2$) 1490 let x2 = (x/2) + x 1500 if x2 > 10 then 1510 let x2 = 10 1520 end if 1530 print #2: in$; x2; ","; 1540 else 1550 print #2: in$; a$; 1560 end if 1570 return 1 rem ******************************************************** 1 rem convert the ^B3 command from 200 to 300 dpi 1 rem ******************************************************** 1600 let o$ = extract$(1, "", ", ") 1610 let e$ = extract$(1, "", ", ") 1620 let h$ = extract$(1, "", ", ") 1630 let h = val(h$) 1640 let h2 = (h/2) + h 1650 print #2: in$; o$; ","; e$; ","; h2; ","; 1660 return Email Program [email protected] , assuming a valid email server is This program sends a simple email message to rver on the print server. In order to write email via ZBI, the port set up by identifying the SMTP se " . EML " t be named written to mus Example: This is an example of email 1 rem ************************************************** 1 rem Zebra Technologies ZBI Sample Program 1 rem 1 rem Professional programming services are available. Please contact 1 rem [email protected] for more information. 1 rem 1 rem This is an example of connecting to an email server to send 1 rem email. 1 rem ************************************************** 1 rem EOT$ is the special character used to denote end of transmission 1 rem ************************************************** Programming Guide P1099958-001 1/31/18

565 ZBI Commands 565 Example Programs 5 let EOT$ = chr$(4) 1 rem ************************************************** 1 rem Open a connection to the email port; if there is an error, try 1 rem again 1 rem ************************************************** 10 open #1: name "EML" 15 on error goto 10 1 rem ************************************************** 1 rem Specify address to send message to, signal end of recipients 1 rem with EOT$ 1 rem Note: To send to multiple addressees, separate addressees with 1 rem a space 1 rem ************************************************** 20 print #1: "[email protected]";EOT$; 1 rem ************************************************** 1 rem Fill in the message information 1 rem ************************************************** 30 print #1: "From: Sample User" 40 print #1: "To: Recipient" 50 print #1: "Subject: This is a test" 60 print #1: "" 70 print #1: "Hello!" 80 print #1: i 1 rem ************************************************** 1 rem Terminate message 1 rem ************************************************** 90 print #1: "";EOT$ 1 rem ************************************************** 1 rem Close the port, since each open port is only good for sending 1 rem one message 1 rem ************************************************** 100 close #1 110 sleep 2 120 let i = i + 1 130 goto 10 Extraction 1 Program ase is found in a format after the string This program finds and stores data of interest, which in this c " " . The extract command is used to get the data fr om the input s tream, and it is inserted DATA = into a simple ZPL fo rmat to be printed. Example: This is an example of Extraction 1. 1 rem ************************************************** 1 rem Zebra Technologies ZBI Sample Program 1 rem 1 rem Professional programming services are available. Please contact 1 rem [email protected] for more information. 1 rem 1 rem This is an example of using ZBI for data extraction. 1 rem There are two methods for doing extraction; this example shows 1 rem data extraction using a string. 1 rem 1 rem The data to extract is as follows: 1 rem START 1 rem DATA = "hello": 1 rem DATA = "goodbye": 1 rem END 1 rem ************************************************** 1 rem close ports except console, open channels to parallel and serial 1 rem ports 1 rem ************************************************** 05 for i = 1 to 9 step 1 10 close #i 20 next i 30 open #1: name "PAR" 40 open #2: name "ZPL" 1 rem ************************************************** 1 rem create string array to hold data 1 rem ************************************************** 50 declare string format$(3) 60 let format$(1) = "START" 70 let format$(2) = "END" 80 let format$(3) = "DATA" 1 rem ************************************************** Programming Guide 1/31/18 P1099958-001

566 ZBI Commands 566 Example Programs 1 rem main program; look for "START" keyword, if found print ^XA to ZPL port 1 rem ************************************************** 90 do 100 let begin$ = searchto$(1,format$,2) 110 if begin$ = "START" then 120 print #2: "^XA"; 1 rem ************************************************** 1 rem if "DATA" keyword is found, get two data strings 1 rem ************************************************** 130 else if begin$ = "DATA" then 140 input #1: data_string1$ 150 input #1: data_string2$ 1 rem ************************************************** 1 rem get data from between quotes and print to ZPL port with formatting 1 rem ************************************************** 160 let extracted_data1$ = extract$(data_string1$,"""","""") 170 let extracted_data2$ = extract$(data_string2$,"""","""") 180 print #2:"^FO30,30^A0N,30,30^FD"&extracted_data1$&"^FS"; 190 print #2:"^FO30,70^A0N,30,30^FD"&extracted_data2$&"^FS"; 200 else if begin$ = "END" then 210 print #2: "^XZ" 220 end if 230 loop Extraction 2 Program This program finds and stores data of interest, which in this c ase is found in a format after the string eam, and it is inserted into " DATA = " . The input command is used to get the data from the input str a simple ZPL format to be printed. This is an example of Extraction 2. Example: 1 rem****************************************************** 1 rem Zebra Technologies ZBI Sample Program 1 rem 1 rem Professional programming services are available. Please contact 1 rem [email protected] for more information. 1 rem 1 rem This is an example of using ZBI for data extraction. 1 rem There are two methods for doing extraction; this example shows 1 rem data extraction from the port directly. 1 rem 1 rem The data to extract is as follows: 1 rem START 1 rem DATA = "hello": 1 rem DATA = "goodbye": 1 rem END 1 rem****************************************************** 1 rem close ports except console, open channels to parallel and serial ports 1 rem****************************************************** 05 for i = 1 to 9 step 1 10 close #i 20 next i 30 open #1: name "PAR" 40 open #2: name "ZPL" 1 rem****************************************************** 1 rem create string array to hold data 1 rem*******quotes and print to ZPL port with formatting 1 rem*************************************************** 50 declare string format$(3) 60 let format$(1) = "START" 70 let format$(2) = "END" 80 let format$(3) = "DATA" 1 rem****************************************************** 1 rem main program; look for "START" keyword, if found print ^XA to ZPL port 1 rem****************************************************** 90 do 100 let begin$ = searchto$(1, format$, 2) 110 if begin$ = "START" then 120 print #2: "^XA"; 1 rem****************************************************** 1 rem if "DATA" keyword is found, get two data strings 1 rem****************************************************** 130 else if begin$ = "DATA" then Programming Guide P1099958-001 1/31/18

567 ZBI Commands 567 Example Programs 1 rem*************************************************** 1 rem get data from between q 140 let extracted_data1$ = extract$(1,"""","""") 150 input #1: junk$ 170 let extracted_data2$ = extract$(1,"""","""") 180 print #2:"^FO30,30^A0N,30,30^FD" &extracted_data1$& "^FS"; 190 print #2:"^FO30,70^A0N,30,30^FD" &extracted_data2$& "^FS"; 200 else if begin$ = "END" then 210 print #2: "^XZ" 220 end if 230 loop Front Panel Control splay to create a and write to the di This example shows how to interc ept front panel button presses this demo are set up for a Z4M /Z6M, ZM400/ZM600, or simple menu. The buttons used in RZ400/RZ600. This could be reconfig ured to work with any other printer. This is an example of Example: front panel control. 1 REM This example shows how to override the functionality of the feed key 1 REM and use the front panel display to show a option list AUTONUM 1,1 REM CLOSE ALL DECLARE STRING OPTIONS$(5) FOR I = 1 TO 5 LET OPTIONS$(I) = "Option " & STR$(I) NEXT I LET ZPLPORT = 1 OPEN #ZPLPORT: NAME "ZPL" LET FEEDKEY = 3 LET SELECTKEY = 10 LET PLUSKEY = 6 LET MINUSKEY = 7 LET EXITKEY = 9 LET TMP = REGISTEREVENT(FEEDKEY, 0, 1) SUB NORMALLOOP DO WHILE 1 = 1 LET EVT = HANDLEEVENT() IF EVT = FEEDKEY THEN LET INDEX = 1 GOSUB REGISTERKEYS GOSUB SHOWMENU GOTO FEEDLOOP END IF SLEEP 1 LOOP SUB FEEDLOOP DO WHILE 1 = 1 LET EVT = HANDLEEVENT() IF EVT = FEEDKEY THEN GOSUB RELEASEKEYS GOSUB HIDEMENU GOTO NORMALLOOP ELSE IF EVT = SELECTKEY THEN GOSUB HANDLEOPTION ELSE IF EVT = PLUSKEY THEN LET INDEX = INDEX + 1 IF INDEX > 5 THEN LET INDEX = 1 END IF GOSUB SHOWMENU ELSE IF EVT = MINUSKEY THEN LET INDEX = INDEX - 1 IF INDEX < 1 THEN LET INDEX = 5 END IF GOSUB SHOWMENU ELSE IF EVT = EXITKEY THEN GOSUB RELEASEKEYS GOSUB HIDEMENU GOTO NORMALLOOP END IF SLEEP 1 LOOP Programming Guide 1/31/18 P1099958-001

568 ZBI Commands 568 Example Programs REM ******** SUBROUTINE SHOWMENU *** SUB SHOWMENU LET LINE1$ = "FEED DISPLAY" LET LINE2$ = OPTIONS$(INDEX) GOSUB UPDATEDISPLAY RETURN REM ******** SUBROUTINE HIDEMENU *** SUB HIDEMENU LET LINE1$ = "" LET LINE2$ = "" GOSUB UPDATEDISPLAY RETURN SUB UPDATEDISPLAY LET A = SETVAR("device.frontpanel.line1",LINE1$) LET A = SETVAR("device.frontpanel.line2",LINE2$) RETURN SUB REGISTERKEYS LET TMP = REGISTEREVENT(SELECTKEY, 0, 1) LET TMP = REGISTEREVENT(PLUSKEY, 0, 1) LET TMP = REGISTEREVENT(MINUSKEY, 0, 1) LET TMP = REGISTEREVENT(EXITKEY, 0, 1) RETURN SUB RELEASEKEYS LET TMP = UNREGISTEREVENT(SELECTKEY) LET TMP = UNREGISTEREVENT(PLUSKEY) LET TMP = UNREGISTEREVENT(MINUSKEY) LET TMP = UNREGISTEREVENT(EXITKEY) RETURN SUB HANDLEOPTION PRINT #ZPLPORT: "^XA^FO100,100^A0N,100,100^FD"; OPTIONS$(INDEX);"^XZ" RETURN Recall Program This program searches f or a ZPL format named " FORMAT.ZPL " that is already saved in printer memory. If the format is found, extracted and shown on the console. a number within the format is The user is then prompted to ent substituted into the format. er a new number, which is then Example: This is an example of Recall.zpl 1 rem ******************************************************** 1 rem Zebra Technologies ZBI Sample Program 1 rem 1 rem Professional programming services are available. Please contact 1 rem [email protected] for more information. 1 rem 1 rem This is an example of recalling a ZPL format and extracting data 1 rem from it. 1 rem ******************************************************** 1 rem close ports except console, open ZPL port and declare search 1 rem array 1 rem ******************************************************** 10 for i = 1 to 9 step 1 ! Close all ports 20 close #i 30 next i 40 let zplport = 2 50 open #zplport: name "ZPL" 60 declare string search_zpl$(2) 70 let search_zpl$(1) = chr$(03) 80 let search_zpl$(2) = "FORMAT.ZPL" 1 rem ******************************************************** 1 rem main program; look for format to recall on printer 1 rem ******************************************************** 90 do 100 print #zplport: "^XA^HWE:*.ZPL^FS^XZ" 110 let present = 0 115 let find$ = "" 120 do until find$ = chr$(03) 130 let find$ = searchto$(zplport, search_zpl$) 140 if find$ = "FORMAT.ZPL" then 150 let present = 1 ! format is present 160 end if 170 loop 1 rem ******************************************************** 1 rem if format is not found, create a format and set data value to 1 rem 000 Programming Guide P1099958-001 1/31/18

569 ZBI Commands 569 Example Programs 1 rem ******************************************************** 180 if present = 0 then 190 print #zplport:"^XA^DFE:FORMAT.ZPL^FS"; 200 print #zplport:"^FX000^FS^XZ" 210 let counter$ = "000" 1 rem ******************************************************** 1 rem if format is found, extract the data from ^FX field 1 rem ******************************************************** 220 else 230 print #zplport:"^XA^HFE:FORMAT.ZPL^FS^XZ" 240 let stop$ = searchto$(zplport, "^FX") 250 let counter$ = extract$(zplport, "", "^FS") 260 let stop$ = searchto$(zplport, "^XZ") 270 end if 1 rem ******************************************************** 1 rem print current data value, prompt user to replace data 1 rem ******************************************************** 280 print "" 290 print "Current number in format is " & counter$ 300 print "Please enter new number (type EXIT to end) "; 310 input new_counter$ 320 if new_counter$ = "EXIT" then 330 print "Program ending" 340 end 350 else 360 print #zplport:"^XA^DFE:FORMAT.ZPL^FS"; 370 print #zplport:"^FX" & new_counter$ & "^FS^XZ" 380 end if 390 loop Scale Program to the scale " W This program reads da ta from a scale connected to the serial po rt by sending a " and waiting for a weight to be returned. When the weight is re ceived, it is inserted into a simple label format and printed. Example: This is an example of Scale 1 rem ******************************************************** 1 rem Zebra Technologies ZBI Sample Program 1 rem 1 rem Professional programming services are available. Please contact 1 rem [email protected] for more information. 1 rem 1 rem This is an example of using ZBI to read scale data from the 1 rem serial port. 1 rem ******************************************************** 1 rem close all ports except console, open channels to parallel and 1 rem serial ports 1 rem ******************************************************** 05 for i = 1 to 9 step 1 10 close #i 20 next i 30 open # 2 : name "SER" 40 open # 1 : name "ZPL" 1 rem ******************************************************** 1 rem main program; send serial port a 'W' in order to get a weight 1 rem ******************************************************** 50 do 60 do 70 sleep 1 ! sleep so scale is not bombarded with incoming 1 rem data 80 print # 2 : "W" ; ! semicolon ends sent W without a CRLF 1 rem ******************************************************** 1 rem get response from scale; note that input requires a CRLF to be 1 rem entered 1 rem ******************************************************** 90 input # 2 : a$ 100 if a$ = "EXIT" then! back door exit - if EXIT is received, ZBI ends 110 close # 2 120 print #1: "^XZ" 130 close #1 140 end 150 end if Programming Guide 1/31/18 P1099958-001

570 ZBI Commands 570 Example Programs 1 rem ******************************************************** 1 rem loop until valid weight is received, then print on label 1 rem ******************************************************** 160 loop while pos ( a$ , "000.00" ) = 1 or pos ( a$ , "?" ) = 1 170 print # 1 : "~SD25^XA^FS"; 180 print # 1 : "^LH0,0^FS"; 190 print # 1 : "^FO56,47^A0N,69,58^FDThis weighs^FS"; 1 rem ******************************************************** 1 rem print weight on label; & character concatenates strings 1 rem ******************************************************** 200 print # 1 : "^FO56,150^A0N,69,58^FD" & A$ & " lbs^FS"; 210 print # 1 : "^PQ1,0,0,N"; 220 print # 1 : "^XZ" 1 rem ******************************************************** 1 rem loop until weight is off scale, then repeat for next item 1 rem weighed 1 rem ******************************************************** 230 do 240 print # 2 : "W" ; 250 input # 2 : A$ 260 loop until pos(A$ , "000.00") = 1 or pos(A$ , "?") = 1 270 loop Programming Guide P1099958-001 1/31/18

571 SGD Printer Commands Set / Get / Do (SGD) commands. For l overview of printer setting This chapter provides a high-leve on page 1393 . SGD Command Support printer support of these SGD commands, see are versions or later: SGD commands are avail able in printers with the following firmw • V66.17.4Z or later • V53.15.2Z or later R53.16.3Z or later • V61.15.xZ or later • • V60.16.2Z or later R60.15.8Z or later • V60.15.xZ or later • • R62.15.8Z or later • V50.15.xZ or later R63.15.8Z or later • • R65.15.8Z or later • V56.15.xZ or later V53.16.x or later • Important • These are important po ints to note w hen using ZPL and SGD comma nds: • SGD commands are case-sensitive. files. • ZPL and SGD commands should be s ent to the printer as separate • ration changes made in ZPL d by both ZPL and SGD. Configu Certain settings can be controlle can affect configuratio n changes made in SGD. • Changes made with one command ty pe (ZPL or SGD) will affect the data returned to the host in response to both ZPL and getvar commands. The command type ( ZPL or SGD) that was sent last determines t he current setting. • Some RF cards do not suppor t all of the SGD commands. Important • These are important po ints to note w hen using a Zebra G-Series printer: ons to the printer usi • You can send instructi ng multiple program ming languages: EPL, ZPL, or SGD. EPL and ZPL commands configure the printer, print labels, and get device status information. SGD comma nds set and get confi guration details. Th ese three languages can be used without the need to send the printer instruct ions to switc h from one langu age to another. • EPL, ZPL, and SGD commands must b e sent to the pr inter as separ ate files. They cannot be used together in one format, or set of commands. For example, i f you send a series of SGD are followed by a printable fo rmat, this needs to be done commands to the printer and they using separate files. Programming Guide P1099958-001 1/31/18

572 SGD Printer Commands 572 Overview Overview commands. It also provides an This section describes how and why to use the Set / Get / Do (SGD) example of a typical command structure. SGD commands are commands that al low you to configure all print ers with firmware versions V60.15.xZ, V50.15.xZ, V61.15.xZ, V56.15.xZ, V53.15.xZ, or later . The printer performs the specified function immediately command. The commands are: after receiving the • setvar • getvar •do a carriage return or a space SGD commands must be terminated by Important • and line , and values must be specified feed, and the command, attributes in lower case. setvar Command Setvar commands: ttings to specific values by s • are used to configure printer se etting them in the printer • must be terminated by a space c haracter or a CR/ LF (0x0D, 0x0 A) getvar Command Getvar commands: current value of the printer settings • are used to get the • must be terminated by a space character or CR/LF (0x0D, 0x0A) The printer responds with th e printer setting of “?” if: • the printer setting does not ex pelling of the printer setting) ist (usually due to incorrect s • it has not been configured yet do Command Do commands: • are used to instruct the prin ter to perform predefined actions haracter or a CR/LF (0x0D, 0x0A ) • must be terminated by a space c Some be enclosed in tings which must commands require additional set Do double quotes. 1/31/18 Programming Guide P1099958-001

573 SGD Printer Commands 573 Command Structure Command Structure It is important to understand t he structure of the command and its components. A command ed for each command in this gui structure illustration is provid de. and structure illustration: This is an example of a comm Example: "ip.addr" "value" ! U1 setvar 3 1 2 point (!) and must with an exclamation Command—always preceded be specified in 1 lower case. A space resides between the ! and U1 and between U1 and the command ). getvar or setvar ( Attribute—always in dou ble quotes and must b e specified in lowe r case. 2 quotes. Only applicable for . Chosen value—always in double setvar and do 3 This command must be terminated by a space character or a CR/ L F (0x0D, 0x0A). How to Send Multiple SGD Commands getvar , setvar and use the END do command, if you issue the syntax without the "1" For any , or ultaneously. command followed by a space, mul tiple SGD commands are sent sim Example: This syntax shows how you can send multiple getvar commands: ! U getvar "ip.telnet.enable" 1 getvar "ip.dhcp.enable" 2 getvar "ip.dhcp.cid_prefix" END 3 The command portion of the string does not use the "1" after th e "! U". 1 Commands issued after the first command do not require the "! U ". 2 pace after the word, The string of co mmands is terminated by t he word "END" with a s 3 and by a carriage return/ line feed. 1/31/18 Programming Guide P1099958-001

574 SGD Printer Commands 574 JSON (JavaScript Object Notation) JSON (JavaScript Object Notation) JSON (JavaScript Object Notati on) is an open standard format th at uses human- and machine- readable text for device manageme nt. It transmits data objects consisting of elements as attribute– value pairs. You can use use JSON as an altern ative to using t he SGD (Set-Ge t-Do) mechanism when reading or writing parameters on QLn and iMZ mobile print ers. JSON is a popular open standard for exchanging data objects and i s well suited to this task. is TCP port 9200, but other ports can be used. JSON The main settings channel for JSON re allowed, and all connected commands are processed when received. Up to eight connections a ports are active, and the JSON co mands will work while the prin ter is printing. e changed or disabled using The port used for JSON can b ip.port_json_config onpage1152 . Note • JSON is available on all communications ports, unless line_print is enabled, in which to port 9200, the printer ONLY case you must use the main TCP JSON port, 9200. If you connect ges . are not supported. accepts JSON commands. CPCL, SGD, ZPL, and other command langua Configuring JSON Usage for Communications All JSON commands should follow ping, spacing, etc. All JSON ation for esca the JSON specific commands are prefixed by for full details on JSON formatting. http://www.json.org/ . Refer to {} in curly braces, it indicates t hat the value is an object. Inside the By enclosing a variable’s value pairing, separated by object, you can declare any num ber of properties using a "name": "value" are separated by commas. colons. Multiple pairings ructure. To con JSON command st figure JSON usage for Use the SGD variable name in the communication, refer to t he following examples. Getvar using JSON Example 1 • To do a getvar in SGD you use the format: ! U1 getvar "sgd.name" ! U1 getvar "ip.port" ! U1 getvar "device.location" To get a variable value using JSON: {}{"sgd.name":null} returns {"sgd.name":"value"} returns {"ip.port":"9100"} {}{"ip.port":null} {}{"device.location":null} returns {"device.location":"my desk"} Example 2 • You can get several values as follows: {}{"device.friendly_name":null, "device.company_name":null, "device.company_contact":null, "device.location":null} The response is: {"device.friendly_name":"XXQLJ120900310", "device.company_name":"Zebra Technologies", "device.company_contact":"123-555-1212", "device.location":"My Desk"} Programming Guide 1/31/18 P1099958-001

575 SGD Printer Commands 575 Object Notation) JSON (JavaScript Setvar using JSON Example 1 • you use th e format: To do a setvar in SGD ! U1 getvar "sgd.name" "value" ! U1 getvar "ip.port" "9200" ! U1 setvar "device.location" "my desk" To set a variable value using JSON: sets the variable value to "value" {}{"sgd.name":"value"} {}{"ip.port":"1234"} sets the variable value to "1234" {}{"device.location":"my desk"} "my desk" sets the variable value to Note • t, or the old value if ll return the value that was se When you set an SGD value, it wi the set failed. If: {}{"sgd.name":"new_value"} fails, the variable value remains "old_value" To set several values at once: Example 2 • {}{"device.friendly_name":"XXQLJ120900310", "device.company_contact":"123-555-1212", "device.location":"My Desk"} The response is: {"device.friendly_name":"XXQLJ120900310", "device.company_contact":"123-555-1212", "device.location":"My Desk"} Get an SGD Branch You can retrieve all branch val ues by specifying the branch. Example: {}{"bluetooth":null} returns all SGDs in branch and their values. Get an allvalues Report allvalues ics. This You can request an all settings with characterist report with just the values for and their values. will return all SGDs Example: {}{"allvalues": {"ip.port":"6101”, "ip.port_alternate":"9100”, "ip.sgd_json_port":"9200”, ... }} 1/31/18 Programming Guide P1099958-001

576 SGD Printer Commands 576 JSON (JavaScript Object Notation) Get an allconfig Report rt using JSON, and it will ret urn all settings wit h characteristics. You can request an allconfig repo To get all SGDs and t heir values along with various other infor Example 1 • mation including defaults: {}{"allconfig":null} Note • For the "allconfig" response, it will start with {"allconfig":{ and end with }} Example 2 • If you do an allconfig , you can get the setting attri butes for all settings as follow s: {"allconfig": {"ip.port":{"value":"6101","type":"integer","range":"0- 65535","clone":true, "archive":true,"access":"RW"}, "ip.port_alternate":{"value":"9100","type":"integer","range":"0- 65535","clone":true, "archive":true,"access":"RW"}, "ip.sgd_json_port":{"value":"9200","type":"integer","range":"0- 65535","clone":true, "archive":true,"access":"RW"}, another setting, ... the last setting}} where: "value" alue stored in the setting. = indicates the current v • • "type" = indicates the type of value. P ossible values are integer, en um, bool, string, double, ipv4-address, ipv6- address. • "range" = indicates the range of a setting. For strings this is the ra nge of the string length. For enums it is the possible enum values. • "clone" = indicates if it is safe to st ore this setting and apply it t o another link-os printer. ame link-os printer at a = indicates if is safe to store this setting and apply it to s • "archive" later time. "access" = indicates if the setting is R W (read/write), R (read-only), or W (write-only). • allconfig , you can get the setting attri Example 3 • If you do an s: butes for all settings as follow {}{"allconfig":null} For the values used above it returns these entries: "device.friendly_name":{"value":"XXQLJ120900310","type":"string","range": "0-17","clone":false,"archive":true,"access":"RW"}, "device.company_contact":{"value":"123-555-1212","type":"string","range": "0-128","clone":true,"archive":true,"access":"RW"}, "device.location":{"value":"my desk","type":"string","range":" 0-128","clone":true,"archive":true,"access":"RW"}, 1/31/18 Programming Guide P1099958-001

577 SGD Printer Commands 577 alerts.addalerts.add alerts.add e the ZebraNet Alert System. It This command is used to configur allows Zebra software to add new alerts without having to use the ZPL ^SX command. This allows software to configure printers which rovides the software with a si do not have ZPL on them, and it p ngle way in for configuring alerts. It ch as USB and serial. gure alerts via local ports su also allows the software to confi command. It can delete the ale rt when both the set and clear f lags The format is similar to the ^SX . FALSE are set to Commands Details specified in the e configuration er to add the new alert with th This command instructs the print setvar comma delimited list. elimited list of the following: The parameter is a comma d • The alert condition. This can be any of the values returned fro m alerts.conditions on page 578 . • The alert destination type. This can be any of the value return ed from alerts.destinations on page 580 . • On Set - Set to Y if the aler t should be sent w hen the event is set On Clear - Set to Y if the ale is cleared rt should be sent when the event • Destination address - applies to • TTP POST destination TCP,UDP,EMAIL,SNMP, SDK, and H is address is 255 characters. types. The maximum length of th • Port - Applies to TCP and UDP types " Quelling - When set to t from being sent. Y " it prevents the aler • "N" is the default. be added. This is val • SGD Name - the name of the SGD command to id only when the alert condition is SGD_SET. Format: ! U1 setvar "alerts.add" "[condition],[destination],[set], [clear],[destination_address],[port],[quelling],[SGD_name]" Values: : onpage578 alerts.conditions Defined via PAPER OUT, RIBBON OUT, HEAD TOO HOT, HEAD COLD, HEAD OPEN, SUPPLY TOO HOT, RIBBON IN, REWIND, CUTTER JAM, MED, PRINTER PAUSED, PQ JOB COMPLETED, LABEL READY, HEAD ELEMENT BAD, BASIC RUNTIME, BASIC FORCED, POWER ON, CLEAN PRINTHEAD, MEDIA LOW, RIBBON LOW, REPLACE HEAD, BATTERY LOW, RFID ERROR, ALL MESSAGES, COLD START, SGD SET NA Default: setvar e functionality as the This command has the sam . do Format: ! U1 do "alerts.add" "[condition],[destination],[set], [clear],[destination_address],[port],[quelling],[SGD_name]" Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ This example shows a "Paper Out" alert sent via the serial port, with no destination Example: address specified. ! U1 setvar "alerts.add" "PAPER OUT,SERIAL,Y,N,,0,," Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

578 SGD Printer Commands 578 alerts.conditionsalerts.conditions alerts.conditions This command lists the available conditions that c an be specifi ed in the first parameter of the alerts.add SGD. See alerts.add onpage577 for information on th e various parameters. Commands Details or the printer. of available alert conditions f This command retrieves the list getvar Format: ! U1 getvar "alerts.conditions" PAPER OUT, RIBBON OUT, HEAD TOO HOT, HEAD COLD, HEAD OPEN, SUPPLY TOO Values: HOT, RIBBON IN, REWIND, CUTTER JAM, MED, PRINTER PAUSED, PQ JOB COMPLETED, LABEL READY, HEAD ELEMENT BAD, BASIC RUNTIME, BASIC FORCED, POWER ON, CLEAN PRINTHEAD, MEDIA LOW, RIBBON LOW, REPLACE HEAD, BATTERY LOW, RFID ERROR, ALL MESSAGES, COLD START, SGD SET Default: "" Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • on page 1393 SGD Command Support . • For printer support, see • For details on SGD command structure, see Command Structure on page 573 . P1099958-001 1/31/18 Programming Guide

579 SGD Printer Commands 579 alerts.configuredalerts.configured alerts.configured This command creates a list o f all the alerts that are configur ed on the printer. The alerts are '|' delimied by the character. new ones. Important • Writing to this SGD will clear ou t the old alerts and setup the Commands Details configured on the printer. Creates the list of alerts setvar Format: ! U1 setvar "alerts.configured" "" A list of alerts to be Values: the format of the individual setup on the printer. See alerts.add for alerts. "COLD START,SNMP,Y,N,255.255.255.255,162,N" Default: Retrieves the currently configu the printer. red alerts on getvar Format: ! U1 getvar "alerts.configured" Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

580 SGD Printer Commands 580 alerts.destinations alerts.destinations alerts.destinations can be speci This command lists the availabl fied in the first parameter of the e destinations that onpage577 for information on the various parameters. alerts.add SGD. See the alerts.add Commands Details destinations. This command returns a comma-de limited list of available alert getvar ! U1 getvar "alerts.destinations" Format: Values: SERIAL, PARALLEL, E-MAIL, TCP, UDP, SNMP, USB, HTTP-POST, BLUETOOTH, SDK NA Default: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • • For printer support, see SGD Command Support on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

581 SGD Printer Commands 581 erts.http.authentication.add alerts.http.authentication.addal alerts.http.authentication.add ssword triplet into the list of This command allows the user to add a single server/username/pa authentication entries. When the printer atte mpts to connect to the URL in the HTTP POS T alert, the server may require , DNS, etc.). There m HTTP authentication (s authentication uch as digest, basic ay be multiple e to the destination (for example, a loc al server first requires HTTP requests along the rout as on the remote ser ver). For each HTTP authentication as well authentication request received while attempting to c ll enumerate the aut hentication entries and attempt to onnect, the printer wi h the username/passw r the respective server. The server satisfy the request wit ord pair provided fo nes which username/password pa ir should be used for which name in the entry is what determi authentication reques IP addresses are acc eptable. t. Both DNS names and The server, username, and passwor d are separated by a single sp ace (not a tab or other white supplied, but a f no username is e is the only required field. I space character). The server nam aces between the server and th e password fields. If there is a password is, there must be two sp ce is required at username but no password, or simp ly just the serv ername, no spa the end of the entry. Commands Details t of authentication entries. e/password triplet into the lis This command adds server/usernam setvar Format: ! U1 setvar "alerts.http.authentication.add" "servername[ username][ password]" Values: Maximum string of 2048 characters. NA Default: . This command has the same settings as the setvar do Format: ! U1 do"alerts.http.authentication.add" "servername[ username][ password]" Maximum string of 2048 characters. Values: NA Default: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Example 1 • A username and a password is supplied: ! U1 setvar "alerts.http.authentication.add" "my.server.lan johndoe password" Example 2 • No password is supplied: ! U1 setvar "alerts.http.authentication.add" "my.server.lan johndoe" Programming Guide 1/31/18 P1099958-001

582 SGD Printer Commands 582 alerts.http.authentication.adda lerts.http.authentication.add (note the double space): No username is supplied Example 3 • ! U1 setvar "alerts.http.authentication.add" "my.server.lan password" No username or password is supplied: Example 4 • ! U1 setvar "alerts.http.authentication.add" "my.server.lan" Note • • For printer support, see SGD Command Support on page 1393 . For details on SGD command structure, see • Command Structure on page 573 . . on page 1493 HTTP POST Alerts • For details on HTTP POST, see Programming Guide P1099958-001 1/31/18

583 SGD Printer Commands 583 iesalerts.http.a uthentication.en tries alerts.http.authentication.entr alerts.http.authentication.entries e authentication names added to th This command lists the server entries list via alerts.http.authentication.add. Only the server name s will be shown; the us ername and passwords will not be shown. The server so that each shows up on its o wn line and is easier to read. names are separated by a \r\n Commands Details This command lists the server names added to the authentication entry list. getvar ! U1 getvar "alerts.http.authentication.entries" Format: A list of ser ver names. Values: Default: NA Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • • For printer support, see SGD Command Support on page 1393 . • For details on SGD command structure, see Command Structure on page 573 . . on page 1383 HTTP POST Alerts • For details on HTTP POST, see Programming Guide 1/31/18 P1099958-001

584 SGD Printer Commands 584 ealerts.http.authentication.rem alerts.http.authentication.remov ove alerts.http.authentication.remove This command allows the user to remove a single server/username /password triplet from the list of authentication entries. To remov e an entry, only the server nam e is supplied, and the entire entry will be removed. If an invalid entry is supplied no action is taken. lets will be updated ( and saved over a reset) but this SGD is Note that the list of authentication trip just a command and doesn't have s tate. Therefore the persistent and restore defaults do not apply. ersistent and defaultable (defaults to The internal list that this command removes from, however, is p an empty list). Commands Details rd triplet into the list of aut Removes a server/username/passwo hentication entries. setvar ! U1 setvar "alerts.http.authentication.remove" "servername" Format: Values: Maximum string of 2048 characters. Default: NA . setvar This command has the same settings as the do ! U1 do "alerts.http.authentication.remove" "servername" Format: Values: Maximum string of 2048 characters. NA Default: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ A username and a password is supplied Example: ! U1 setvar "alerts.http.authentication.remove" "my.server.lan" Note • SGD Command Support • For printer support, see . on page 1393 • For details on SGD command structure, see Command Structure on page 573 . HTTP POST Alerts . on page 1383 • For details on HTTP POST, see Programming Guide 1/31/18 P1099958-001

585 SGD Printer Commands 585 alerts.http.logging.clearalerts.http.logging.clear alerts.http.logging.clear This command clears the weblink alerts log entries. It does not disable logging. Setting this weblink log entries. command to any value, including an empty string , will clear the Commands Details This command clears the w eblink alerts log entires. setvar ! U1 setvar "alerts.http.logging.clear" "value" Format: Any string value, including an empty string. Values: Default: NA eblink alerts log entires. This command clears the w do ! U1 do "alerts.http.logging.clear" "value" Format: Any string value, including an empty string. Values: NA Default: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ ies with an empty string value. This example clears the log entr Example: ! U1 setvar "alerts.http.logging.clear" "" Note • on page 1393 • For printer support, see SGD Command Support . • For details on SGD command structure, see Command Structure on page 573 . . HTTP POST Alerts on page 1383 • For details on HTTP POST, see Programming Guide P1099958-001 1/31/18

586 SGD Printer Commands 586 alerts.http.logging.entriesal erts.http.logging.entries alerts.http.logging.entries This command returns the N number of entries in the http log, w here N has a maximum value that is set by alerts.http.logging.max_entries . g HTTP POST messages. The log The alerts http log is a collect ion of events re lated to sendin entries range anywhere from gener al status to erro rs that preve nted a successful connection. Each log entry contains a timestamp for when it was logged by the sy stem. The newest events will appear at the bottom of the list. Commands Details This command returns the number of entries in the HTTP log. getvar ! U1 getvar "alerts.http.logging.entries" Format: NA Values: NA Default: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ alerts.http.logging.entries: Example: This example shows the result from [01-03-2013 12:48:59.964] [http] Connected to 10.3.4.58 (10.3.4.58) port 80 [01-03-2013 12:48:59.978] [http] HTTP/1.1 100 Continue [01-03-2013 12:49:01.999] [http] Closing connection Note • SGD Command Support • For printer support, see . on page 1393 • For details on SGD command structure, see Command Structure on page 573 . HTTP POST Alerts on page 1383 . • For details on HTTP POST, see Programming Guide 1/31/18 P1099958-001

587 SGD Printer Commands 587 p.logging.max_entries alerts.http.logging. max_entriesalerts.htt alerts.http.logging.max_entries This command specifies the maxi ries that will be stored in the mum number of individual log ent alert.http.logging.entries command. g entries sult in some lo diate and may re Changes to this command are imme Important • being lost. If there are N log entries currently in the log, th e user sets the max_entires to M, moved. st (N-M) log entries will be re where M is less than N, the olde Commands Details This command sets the maximum number of log entires that will b e stored. setvar ! U1 getvar "alerts.http.logging.max_entries" "value" Format: Values: 0 - 10000 Setting the value to 0 disables logging. Note • "0" Default: for the maximum number of log This command returns the setting entries that will be stored. getvar Format: ! U1 getvar "alerts.http.logging.max_entries" number of log entires that will b e stored. This command sets the maximum do Format: ! U1 do "alerts.http.logging.max_entries" "value" Values: 0 - 10000 Setting the value to 0 disables logging. Note • Default: "0" Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ is then set to 2. alert.http.logging.max_entries In this example, Example: [01-03-2013 12:48:59.964] [http] Connected to 10.3.4.58 (10.3.4.58) port 80 [01-03-2013 12:48:59.978] [http] HTTP/1.1 100 Continue [01-03-2013 12:49:01.999] [http] Closing connection When it is set to 2 [01-03-2013 12:48:59.978] [http] HTTP/1.1 100 Continue [01-03-2013 12:49:01.999] [http] Closing connection Note • • SGD Command Support For printer support, see on page 1393 . • For details on SGD command structure, see Command Structure on page 573 . on page 1383 HTTP POST Alerts . • For details on HTTP POST, see Programming Guide P1099958-001 1/31/18

588 SGD Printer Commands 588 alerts.http.proxyalerts.http.proxy alerts.http.proxy the proxy for any HTTP POST ale rts. The proxy se rver protocol, This command assigns the URL of and password are al l encoded into the U port, domain, username, RL via the format outlined in RFC2396 ( http://www.ietf.org/rfc/rfc2396.txt ). The username and password must a void the invalid characters lis ted in RFC2396 (e.g. ':', '@', '/', etc). If a n invalid character must be used it needs to be esc aped using '%' as described in RFC2396. hanged, the next HTTP POST alert will use the new value. When the setting is c Commands Details This command assigns the proxy URL for HTTP POST alerts. setvar ! U1 setvar "alerts.http.proxy" Format: "http://username:[email protected]:3128/" Values: Any valid URL up to 2048 characters http://[user:[email protected]]domain[:port]/[path] URL format expected: Default: • The user:pass, port, and optional. path are all • The default port is 1080. • The default is to omit the username and password. This command retrieves the proxy URL for HTTP POST alerts. getvar Format: ! U1 getvar " alerts.http.proxy" This command assigns the proxy URL for HTTP POST alerts. do Format: ! U1 do "alerts.http.proxy" "http://username:[email protected]:3128/" Values: Any valid URL up to 2048 characters http://[user:[email protected]]domain[:port]/[path] URL format expected: Default: path are all • The user:pass, port, and optional. The default port is 1080. • • The default is to omit the username and password. Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Examples of how to connect to various proxy servers: Example: http://username:[email protected]:3128/ http://mydomain.com/ Note • For printer support, see • on page 1393 SGD Command Support . • For details on SGD command structure, see Command Structure on page 573 . . on page 1383 HTTP POST Alerts • For details on HTTP POST, see Programming Guide 1/31/18 P1099958-001

589 SGD Printer Commands 589 alerts.tracked_settings.clear_ log alerts.tracked_settings.clear_log alerts.tracked_settings.clear_log and to any value, This command clears the alerts.tracked_settings.log . Setting this comm ring, will clear the tracked_sgds log entries. including an empty st Commands Details log entires. tracked_sgds This command clears the setvar ! U1 setvar "alerts.tracked_settings.clear_log" "value" Format: Any string value, including an empty string. Values: Default: NA log entires. tracked_sgds This command clears the do ! U1 do "alerts.tracked_settings.clear_log" "value" Format: Values: Any string value, including an empty string. NA Default: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ This example clears the log entr ies with an empty string value. Example: ! U1 setvar "alerts.tracked_settings.clear_log" "" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

590 SGD Printer Commands 590 alerts.tracked_settings.log_trackedalerts.tracked_settings.log_ tracked alerts.tracked_settings.log_tracked This command creates a comma-de limited list of settings for whi ch sets should be logged. Commands Details tings for which sets should be This command sets the list of set logged. setvar ! U1 setvar "alerts.tracked_settings.log_tracked" Format: "settings.name1,settings.name2..." Values: Settings with commas between names. "" Default: logged. settings being elimited lists of This command returns a comma-d getvar ! U1 getvar "alerts.tracked_settings.log_tracked" Format: logged. tings for which sets should be This command sets the list of set do ! U1 do "alerts.tracked_settings.log_tracked" Format: "settings.name1,settings.name2..." Settings with commas between names. Values: Default: "" Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

591 SGD Wireless Commands 591 alerts.tracked_settings.max_log_entries ngs.max_log_entries alerts.tracked_setti Sets or retrieves the maximum num ber of entries to be shown in the . alerts.tracked_settings.log Commands Details setvar Format: ! U1 setvar "alerts.tracked_settings.max_log_entries" "value" ! U1 do "alerts.tracked_settings.max_log_entries" "value" 0 - 10000 Values: 100 Default: getvar Format: ! U1 getvar "alerts.tracked_settings.max_log_entries" Supported Devices • iMZ220, iMZ320 • QLn220, QLn320, QLn420 • ZD410, ZD420 • ZD500 • ZQ510, ZQ520, ZQ530 • ZT210, ZT220, ZT230 • ZT410, ZT420 Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see 1/31/18 Programming Guide P1099958-001

592 SGD Printer Commands 592 alerts.tracked_sgds.logalerts.tracked_sgds.log alerts.tracked_sgds.log of the settings listed in alerts.tracked_settings.log_tracked . This command reports the log The log entries will be fully JSON complaint. Commands Details This command retrieves the current log. getvar ! U1 getvar "alerts.tracked_sgds.log" Format: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ ! U1 getvar "alerts.tracked_settings.log" Sending returns: Example: :"[{"settingsName":"newValue","timestamp" :"06-24-2012 19:51:28.641"}]" for 1 entry or "[{"settingsName":"newValue","timestamp" :"06-24-2012 19:51:28.641"},\r\n{"settingsName2":"newValue2","timestamp":"06-24-2012 19:51:30.641"}] for 2 entries. Note • When the log is empty, the result will be: "" Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

593 SGD Printer Commands 593 entries alerts.tracked_sgds.max_log_entri esalerts.tracked_sgds.max_log_ alerts.tracked_sgds.max_log_entries This command sets the maximum num ber of entries to be shown in alerts.tracked_settings.log . Commands Details This command sets the maximum nu mber of alert log entires that will be stored. setvar Format: ! U1 setvar "alerts.tracked_sgds.max_log_entries" "value" Values: 0 - 10000 Default: "100" 0 Note • disables logging. Setting the value to t log entires tha This command returns the setting for the maximum number of aler t will be stored. getvar Format: ! U1 getvar "alerts.tracked_sgds.max_log_entries" This command sets the maximum nu will be stored. mber of alert log entires that do Format: ! U1 setvar "alerts.tracked_sgds.max_log_entries" "value" Values: 0 - 10000 Default: "100" disables logging. 0 Setting the value to Note • Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Example: This example sets the ma ximum log entries to 50. ! U1 setvar "alerts.tracked_sgds.max_log_entries" "50" Note • For printer support, see • SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

594 SGD Printer Commands 594 alerts.tracked_sgds.zbi_notifiedalerts.tracked_sgds.zbi_notifie d alerts.tracked_sgds.zbi_notified This command provides a comma-de limited list of settings for wh ich ZBI should be notified when the value is set. Commands Details setting is set. e notified when the settings for which ZBI will b This command sets the list of the setvar ! U1 setvar "alerts.tracked_settings.zbi_notified" Format: "settings.name1,settings.name2,etc." Values: A comma delimited list of settings names Default: "" This command retrieves the list of the settings for which ZBI w ill be notified when the value is set. getvar U1 getvar "alerts.tracked_settings.zbi_notified" Format: e notified when the value is set. settings for which ZBI will b This command sets the list of the do ! U1 do "alerts.tracked_settings.zbi_notified" Format: "settings.name1,settings.name2,etc." Values: A comma delimited list of settings names "" Default: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

595 SGD Wireless Commands 595 apl.enable apl.enable Virtual Device. The getvar ret The setvar enables or disables a urns the currently enabled Virtual Device. Commands Details setvar, do Format: ! U1 setvar "apl.enable" "value" ! U1 do "apl.enable" "value" l, apl-m, apl-mi, apl-o, apl-t Values: none, apl-d, apl-i, apl-e, apl- NA Default: ! U1 setvar "apl.enable" "apl-o" Example: getvar " pl.enable ! U1 getvar "a Format: Supported Devices • iMZ220, iMZ320 • QLn220, QLn320 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZT210, ZT220, ZT230, ZT410, ZT420 Note • on page 1393 SGD Command Support . • For printer support, see • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 P1099958-001 Programming Guide

596 SGD Wireless Commands 596 apl.framework_version apl.framework_version Returns the revision number of the Virtual Device framework. Commands Details getvar Format: ! U1 getvar "apl.framework_version" Supported Devices • iMZ220, iMZ320 • QLn220, QLn320 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZT210, ZT220, ZT230, ZT410, ZT420 Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

597 SGD Printer Commands 597 apl.version apl.version This command returns the revisi on number of the Virtual Device system. Commands Details Displays the revision number of the Virtual Device system. getvar ! U1 getvar "apl.version" Format: Supported Devices rmware Vxx.19.7Z and later. • Link-OS printers with fi Note • . • on page 1393 SGD Command Support For printer support, see • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 Programming Guide P1099958-001

598 SGD Printer Commands 598 appl.link_os_versionappl.link_os_version appl.link_os_version This command lists the version o is supported by the printer. f the Link-OS™ feature set that Commands Details k-OS™ version of the printer. This command retrieves the Lin getvar ! U1 getvar "appl.link_os_version" Format: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ on 1.0 of Link-OS™. command returns versi Example: In this example, the getvar ! U1 getvar "appl.link_os_version" returns 1.0 Note • SGD Command Support • For printer support, see on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

599 SGD Printer Commands 599 appl.option_board_version appl.option_board_version This command returns the version number of the firmware running on the wireless option board. For printer support, see SGD Command Support onpage1393 . Commands Details This command returns the version on the wireless option board. number of the firmware running getvar Format: ! U1 getvar "appl.option_board_version" Command Structure on page 573 . Note • For details on SGD command structure, see number of the firmware running Example: This command returns the version on the wireless option board. ! U1 getvar "appl.option_board_version" "0.0.0 *" P1099958-001 Programming Guide 1/31/18

600 SGD Printer Commands 600 appl.bootblock appl.bootblock This command refers to the bootb lock version. On the configurat ion label, the bootblock number is identified as the hardware ID. For printer support, see SGD Command Support on page 1393 . Commands Details on the configuration label . ck version number that appears This command returns the bootblo getvar Format: ! U1 getvar "appl.bootblock" on page 573 Command Structure . Note • For details on SGD command structure, see Example: In this example, the getvar returns the bootbl ock version number. ! U1 getvar "appl.bootblock" 1/31/18 P1099958-001 Programming Guide

601 SGD Printer Commands 601 appl.date appl.date This command refers to the date the firmware was created. For p rinter support, see SGD Command Support on page 1393 . Commands Details in the mm/dd/yy format. re was created e date the firmwa The printer will respond with th getvar Format: ! U1 getvar "appl.date" Command Structure on page 573 . Note • For details on SGD command structure, see getvar Example: In this example, the returns the date the firmware was created. ! U1 getvar "appl.date" Result: "01/29/10" P1099958-001 Programming Guide 1/31/18

602 SGD Printer Commands 602 appl.name appl.name er’s firmware version. For prin SGD Command This command refers to the print ter support, see Support on page 1393 . Commands Details This command returns the pr inter’s firmware version. getvar Format: ! U1 getvar "appl.name" Command Structure on page 573 Note • For details on SGD command structure, see . returns the printer’s firmware version. Example: In this example, the getvar ! U1 getvar "appl.name" Programming Guide P1099958-001 1/31/18

603 SGD Printer Commands 603 capture.channel1.count capture.channel1.count capture.channel1.count This command indicates t capture.channel1.delimiter was seen on the he number of times that capture.channel1.port port specified in cates how many times . Additionally, it indi capture.channel1.data.raw has been updated with user data as well as the number of times we . capture.channel1.max_length reached the This will be shown in the HZA response under the c apture data section. Commands Details was seen on the capture.channel1.delimiter This command returns the number of times that getvar f times we reached the port specified in as well as the number o capture.channel1.port capture.channel1.max_length . ! U1 getvar "capture.count" Format: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • on page 1393 SGD Command Support . • For printer support, see • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 Programming Guide P1099958-001

604 SGD Printer Commands 604 channel1.data.mime capture.channel1. data.mimecapture. capture.channel1.data.mime red on the port s This command provides a view t pecified by o the data captu capture.channel1.port in a mime/base64 encoded format. Commands Details a captured on the port specified by This command retrieves the dat capture.channel1.port. getvar Format: ! U1 getvar "capture.channel1.data.mime" Data in mime-encoded format. Result: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • on page 1393 • For printer support, see SGD Command Support . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

605 SGD Printer Commands 605 capture.channel1.data.raw capture.channel1.data.raw capture.channel1.data.raw This command retrieves the user data captured off of the port s pecified in capture.channel1.port . th the escaped representation of e.data stream will be replaced wi Any binary zeros in the captur NULL ("\000"). The delim iter data is not sto red as part of the captured data. output within capture data section. This will be shown in the HZA Commands Details This command retrieves the use r data captured off of the port s pecified in getvar capture.channel1.port . ! U1 getvar "capture.channel1.data.raw" Format: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • on page 1393 SGD Command Support For printer support, see • . • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 Programming Guide P1099958-001

606 SGD Printer Commands 606 capture.channel1.delimiter capture.channel1.delimiter capture.channel1.delimiter he delimiter used to ed on the port s pecified by This command stores t partition data receiv capture.channel1.port and and stored in capture.channel1.data.raw . capture.channel1.data.mime ed in the data capture section of the HZA response. This will be report Commands Details This command sets the delimiter u sed to partition data received on the setvar capture.channel1.port. ! U1 setvar "capture.channel1.delimiter" "delimiter" Format: Values: Any character set up to a maxi mum of 64 characters in length. Note • Binary data can be used in the de limiter. To do this enter a '\ ' and then the 3 digit , so to get '\' in some tools you may need to = "\\" \002 octal value of the character. 4 (e.g. a enter “\\002” . Escaped octal characters count as a single character and not delimiter of is 3 characters, not 12) “\001\000\002” "\012" Default: This command retrieves the delimiter. getvar Format: ! U1 getvar "capture.channel1.delimiter" Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ imiter. To do this enter a and then the 3 digit octal '\' Example: Binary data can be used in the del "\\" = '\' in some tools, so to get \002 you may need to enter value of the character. Note: . "\\002" "\000" = NULL (single character) "end\015\012\000" = 'e'+'n'+'d'+'\r'+'\n'+ NULL (total of 6 characters) Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

607 SGD Printer Commands 607 capture.channel1.max_lengthc apture.channel1.max_length capture.channel1.max_length This command sets a to copy captured dat a to the data SGD if the delimiter length indicating when has not been seen yet. If the delimiter and the max_length are reached at the same tim e, the delimiter will not be part of the captured data. Of only part of the delimiter has been received, then the part of the delimiter we have received, will be part of the capture data. When the max_length is changed, a ny data currently in the buffe r will be thrown aw ay, and the new value of max_lengt h will be used. ^JUA , , The Capture Port shall be defaulted to 1000 bytes by any mechan ism (including ^JUF , ^JUN ). and device.restore_defaults Commands Details e length. er to set a default data captur This command instructs the print setvar ! U1 setvar "capture.channel1.max_length" "value" Format: 1-3000 Values: "1000" Default: This command retrieves the d efault data capture length. getvar Format: ! U1 getvar "capture.channel1.max_length" Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

608 SGD Printer Commands 608 capture.channel1.portc apture.channel1.port capture.channel1.port This command determines the port ser data. This allows the user to that should be monitored for u attach an external device, such as a keyboard or barcode scanne r, and have input captured into the capture.channel1.data.raw command. Once the data is in the SGD they can use it as they would any other SGD (this inclu ers to be sent an alert when an SGD des functionality that allows us value changes). The data received on th e specified port wil l be read until the value in capture.channel1.delimiter is seen, at which point the dat a received until (but not inclu ding) the . capture.channel1.data.raw delimiter will be stored in For the port specified in , no data will be sent to any of the parsers on that capture.channel1.port port. All data received is assum ed to be user inp ut that is to be placed in capture.channel1.data.raw . To disable the data capture functionality, set capture.channel1.port to "off" • The delimiter will not be stored in capture.channel1.data.raw . n in the data c apture portio n of the HZA response. • The port will be show • The capture port shall be defaulted to “off” by any mechanism (including ^JUF, ^JUA , and ). device.restore_defaults Commands Details be monitored for user data. This command sets the port to setvar ! U1 setvar "capture.channel1.port" "value" Format: Values: off,serial,usb,bt,usb_host • is sent to the parsers - off - no data is stored in capture.channel1. data.raw and all data normal operation to the parser s on this port. • serial - Data is read off the serial po rt. No data sent • usb - Data is read off the usb port. No data sent to the parsers o n this port. ® he parsers on this port. port. No data sent to t f the Bluetooth - Data is read of bt • - not yet supported. reserved fo • usb_host r when usb host is implemented . "off" Default: t being monitor ed for user data. This command retrieves the print er’s current por getvar ! U1 getvar "capture.channel1.port" Format: Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ , preventing it from capturing data. Example: This example sets th e command value to "off" ! U1 setvar "capture.channel1.port" "off" Note • on page 1393 • For printer support, see SGD Command Support . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

609 SGD Printer Commands 609 CISDFCRC16 CISDFCRC16 Download Files CISDFCRC16 command downloads supported fi les types to the printer. The Note • When using certificate files, your printer supports: ) formatted certificate files. Using Privacy Enhanced Mail (PEM • private key as two files, each Using the client certificate and • downloaded separately. Using exportable PAC • files for EAP-FAST. et correctly for When using certificate files, the time on the printer must be s Important • eed, as the time is used in the certificate validation. the websocket connection to succ Each line should be terminated with a CR/LF. Type ! CISDFCRC16 Parameters Details = CRC value Values: a four digit CRC value in hexadecimal. If 0000 is entered, then the CRC validation is ignored. For examples, see below. = file name sion must be file system. An exten ed on the printer’s Values: file name that is stor specified. Files mus drive. E: t be saved to the file size = an eight digit file siz e specified in hexadecimal which indicat es the number Values: of bytes in the section. checksum = Values: a four digit checksum va lue in hexadecimal. If 0000 is entered, then the value ng the sum of the CRC validation is ignored. The che cksum value is calculated usi section. For examples, see below. bytes in the = data Values: Binary data save d on the printer ’s file system as . Number of bytes in this field must match the parameter. Note • This command can be u sed in place of the ~DG and ~DY command for more saving and loading options. ~DY is the preferred command to d ownload TrueType fonts on printer s with command also supports downloading wireless firmware later than X.13. The CISDFCRC16 certificate files. Programming Guide 1/31/18 P1099958-001

610 SGD Printer Commands 610 CISDFCRC16 ad a private key file Example 1 • This example shows the CISDFCRC16 command used to downlo ( privkey.nrd ) to the printer. The different sections of the command are on separate lines. ! CISDFCRC16 BA0B privkey.nrd 0000037B E3AF -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDQXu/E9YuGlScfWQepZa8Qe/1mJRpmk8oPhPVvam/4M5/WaWQp 3/p1f8J17/hDH8fFq5Dnx3/tHaU7A4SKO8GeghX5hnp/mt4tuQEvsXkCrcgS1puz z5dbO7ThhuzxYClnr7uiXPvSRXawgwDTPas+0q/6gHeUSXtA0EofuIyv7wIDAQAB AoGBAJPnf3wn6wT5pE59DJIyakRiLmkt1wKOzvObJfgS7i2Yv1EbeAy9PnPe3vKG Bovm6A+oi2/qTSTLUTiFc7QHXJPVxLmRiHMbf1Q8j+VJkGTpWt8EY/Px+HSM2HAP jqd+Im0IiE9RQPsxWQH9UaauF6nl5gIfMF74BIPsVzFXLFfxAkEA6zSrCKCycE/P 14cjZibnLiWxdL3U3I9eWuhmIS37RB6UJFBCWUPWr26HlHzOKqhOUMbFf5hOmvkZ gciN9A8kxwJBAOLK7Gyorre8iK9IMMWc7OIJc7H8pH1y/N2OtyaC1XuPfqz0H4PH w2W2m3BhZ7ggHJLLiiFVF+Hr5X7cibFDo5kCQQDFe5lHSzXHWxvViN/N+0gL1RYk QOcisTW1+n8VyLe5wDr+Km0q6eytq44mvIuWAW6QH/TfZxBIynICKFQX4UctAkAm P80iAkz9RfnTfhxjp7S35poxoYdodPU6tLAk+ZnhrfDSYJXUFuPYirSqfnMMtbW7 +EICnyRZAP0CqVU7pUm5AkEAnH2O6dKvUvwOEX+CsCVATRrejKLCeJ+6YZWqiD9X 0XGJgrHNXGpDtQiVSGM59p0XnHTZJYjvVNdNOMnhg333nQ== -----END RSA PRIVATE KEY----- These are examples of Example 2 • CRC and checksum values: CRC example The value of the field is calculated the CRC-16 of a specified file using the for the contents CRC16-CCITT polynomial which is x^16 + x^12 + x^5 + 1. It is ca lculated using an initial CRC of 0x0000. checksum example Given 4 bytes of data : 0x25, 0x62, 0x3F, 0x52: 1. Adding all bytes together gives 0x118. 2. Drop the carry nibble to get 0x18. 3. Get the two's complement o f the 0x18 to get 0xE8. This is the checksum byte. Note • • For printer support, see SGD Command Support on page 1393 . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

611 SGD Printer Commands 611 comm.baud comm.baud This command refers to the print er’s comm (cable ) baud rate. Fo SGD r printer support, see Command Support on page 1393 . ged, the port parameters have been chan Important • Once the printer’s communication host terminal must also be configured to match the new printer settings before the host can communicate again. Commands Details This command instructs the pri nter to change the baud rate. setvar "value" Format: ! U1 setvar "comm.baud" Values: “9600” “19200” “38400” “57600” “115200” Default: "19200" y set printer baud rate. This command instructs the print er to respond with the currentl getvar Format: ! U1 getvar "comm.baud" Note • For details on SGD command structure, see . Command Structure on page 573 Example 1 • In this example, the getvar retrieves the current baud rate. ! U1 getvar "comm.baud" ations baud rate to 19200 BPS. Example 2 • This setvar example sets the communic "19200" ! U1 setvar "comm.baud" Programming Guide 1/31/18 P1099958-001

612 SGD Printer Commands 612 comm.halt comm.halt This command halts all communications to the serial port if an error condition occurs. Commands Details printer. er to halt communication to the This command instructs the print setvar ! U1 setvar "comm.halt" "value" Format: Values: "yes" "no" Default: "yes" This command returns the current value. getvar ! U1 getvar "comm.halt" Format: Values: "yes" "no" "yes" This setvar example sets th e value set to . Example: ! U1 setvar "comm.halt" "yes" Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see P1099958-001 Programming Guide 1/31/18

613 613 comm.pnp_option comm.pnp_option The command configures t he RS-232 Serial Port Plug and Play settin g on the comm.pnp_option SGD Command Support on page 1393 . printer. For printer support, see Commands Details setting. This command instructs the printer to change the comm.pnp_option setvar ! U1 setvar "comm.pnp_option" "value" Format: Values: "off" = sets the printer to not attempt Plug and Pl ay via serial at sta rtup "on" = sets the printer to attempt Plug and Play via serial at startup Default: "off" This command causes the printer to return the current setting f or the comm.pnp_option setting. getvar ! U1 getvar "comm.pnp_option" Format: . Note • For details on SGD command structure, see Command Structure on page 573 Example: . "on" In this example, the setvar sets the serial port communications state to ! U1 setvar "comm.pnp_option" "on" When the setvar value is set to "on", the getvar result is "on". rdware support Plug an d Play over RS-232 Note • Not all Operating Sy stems and computer ha Serial port connections. Programming Guide 1/31/18 P1099958-001

614 SGD Printer Commands 614 comm.type comm.type This printer setting determines the behavior of the serial port interface. It selects one of three serial Autodetect. For printer suppo rt, see SGD Command Support communication states: DTE, DCE or on page 1393 . Commands Details terface type. This command instructs the print er to change the serial port in setvar "value" ! U1 setvar "comm.type" Format: Values: "auto" = Autodetect "dte" = x on pin 2) Force DTE (T "dce" = Force DCE (Rx on pin 2) Default: "auto" serial port interface type. This command instructs the print er to respond with the current getvar ! U1 getvar "comm.type" Format: Supported Devices • LP 2824 Plus . on page 573 Command Structure Note • For details on SGD command structure, see In this example, the getvar retrieves the serial por t communications state. Example 1 • ! U1 getvar "comm.type" Example 2 • ate to Autodetect. This setvar example sets the co mmunications port st "auto" ! U1 setvar "comm.type" Programming Guide 1/31/18 P1099958-001

615 SGD Printer Commands 615 comm.parity comm.parity This command sets t he printer’s communication parity. For print SGD Command er support, see Support on page 1393 . Important • Once the printer’s communication port parameters have been chan ged, the host terminal must also be configured to match the new printer settings before the host can communicate again. Commands Details t parity. This command instructs the print er to set the communication por setvar Format: ! U1 setvar "comm.parity" "value" Values: " N — None " "E" — Even O " — Odd " Default: "N" This command instructs the print er to respond with the currentl y set printer parity. getvar Format: ! U1 getvar "comm.parity" Note • . For details on SGD command structure, see Command Structure on page 573 Example 1 • In this example, the getvar retrieves the currently set printer parity. ! U1 getvar "comm.parity" example sets the parity to None. Example 2 • This setvar "N" ! U1 setvar "comm.parity" Programming Guide 1/31/18 P1099958-001

616 SGD Printer Commands 616 comm.stop_bits comm.stop_bits This command refers to the pri nters’s communication port stop b SGD its. For printer support, see Command Support on page 1393 . Important • Once the printer’s communication port parameters have been chan ged, the host terminal must also be configured to match the new printer settings before the host can communicate again. Commands Details top bit value. This command instructs the print er to configure the comm.port s setvar Format: ! U1 setvar "comm.stop_bits" "value" Values: 1 " " " " 2 Default: "1" This command instructs the print er to respond with the currentl y set stop bit value. getvar Format: ! U1 getvar "comm.stop_bits" Note • . For details on SGD command structure, see Command Structure on page 573 Example 1 • In this example, the getvar retrieves the currently set stop bit value. ! U1 getvar "comm.stop_bits" example configures the comm.port for 1 stop bit. Example 2 • This setvar "1" ! U1 setvar "comm.stop_bits" Programming Guide P1099958-001 1/31/18

617 SGD Wireless Commands 617 cradle.comm.baud cradle.comm.baud baud rate. serial USB port Sets or retrives the cradle Commands Details setvar Format: ! U1 setvar "cradle.comm.baud" "value" Values: 300,1200,2400,4800,9600,19200,38400,57600,115200,230400,460800,921600 "115200" Default: getvar ! U1 getvar "cradle.comm.baud" Format: Supported Devices •ZQ510, ZQ520 Note • on page 1393 SGD Command Support • . For printer support, see • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 Programming Guide P1099958-001

618 SGD Wireless Commands 618 cradle.comm.handshake cradle.comm.handshake Sets or retrives the cradle se rial USB port handshake mode. Commands Details setvar Format: ! U1 setvar "cradle.comm.handshake" "value" ns Values: "rts/cts" = use hardware handshake via the r equest-to-send/clear-to-send pi use software handshake "xon/xoff" = no flow control "none" = Default: "rts/cts" getvar Format: ! U1 getvar "cradle.comm.handshake" Supported Devices •ZQ510, ZQ520 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

619 SGD Printer Commands 619 cutter.clean_cutter cutter.clean_cutter This command determines if the c lean cutter option is enabled o r disabled. For printer support, see onpage1393 . SGD Command Support Commands Details This command instructs the print er to set the clean cutter opti on. setvar Format: ! U1 setvar "cutter.clean_cutter" Values: "on" = turns on clean cutter "off" = turns off clean cutter Default: "on" s of the clean cu tter option. This command retrieves the statu getvar ! U1 getvar "cutter.clean_cutter" Format: Note • For details on SGD command structure, see Command Structure on page 573 . Example: This setvar example shows the value set to "on" . "on" ! U1 setvar "cutter.clean_cutter" result is . "on" When the setvar value is set to "on" , the getvar Programming Guide 1/31/18 P1099958-001

620 SGD Printer Commands 620 device.applicator.data_ready device.applicator.data_ready "low" value is required for the applicator to indicate it is This command will specify if a "high" or ready to receive data. Commands Details This command sets the value. setvar Format: ! U1 setvar "device.applicator.data_ready" "value" Values: high, low Default: low er to respond with the currentl y set value. This command instructs the print getvar Format: ! U1 getvar "device.applicator.data_ready" Supported Devices • ZE500™ series 4™ series PAX • • Xi4™ series III • ™ series Plus Xi Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

621 SGD Printer Commands 621 device.applicator.end_print device.applicator.end_print This command allows you to con trol an online verifier or applic ator device. This command is similar to the b parameter for ^JJ onpage237 . Commands Details for the applicator port mode This command sets the value setvar ! U1 setvar "device.applicator.end_print" "value" Format: Values: off nd low only when the printer i End Print signal normally high, a s moving 1 = the label forward. s moving 2 = End Print signal normally low, a nd high only when the printer i the label forward. has been End Print signal normally high, and low for 20 ms when a label 3 = printed and positioned. has been nd high for 20 ms when a label End Print signal normally low, a 4 = printed and positioned. Default: off y set value. er to respond with the currentl This command instructs the print getvar ! U1 getvar "device.applicator.end_print" Format: Supported Devices • ZE500™ series PAX • 4™ series • Xi4™ series • Plus III Xi ™ series Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

622 SGD Printer Commands 622 device.applicator.feed device.applicator.feed "low" value is required for an applicator to feed media. "high" or This command will specify if a Commands Details This command sets the value. setvar ! U1 setvar "device.applicator.feed" "value" Format: Values: high, low low Default: y set value. er to respond with the currentl This command instructs the print getvar Format: ! U1 getvar "device.applicator.feed" Supported Devices • ZE500™ series 4™ series PAX • • Xi4™ series III • ™ series Plus Xi Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

623 SGD Printer Commands 623 device.applicator.media_out device.applicator.media_out "low" value is required for an applicator to indicate that the This command will specify if a "high" or media has run out. Commands Details This command sets the value. setvar Format: ! U1 setvar "device.applicator.media_out" "value" Values: high, low Default: low er to respond with the currentl y set value. This command instructs the print getvar Format: ! U1 getvar "device.applicator.media_out" Supported Devices • ZE500™ series 4™ series PAX • • Xi4™ series III • ™ series Plus Xi Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

624 SGD Printer Commands 624 device.applicator.pause device.applicator.pause "low" value is required for an ap plicator to pause printing. "high" or This command will specify if a Commands Details This command sets the value. setvar ! U1 setvar "device.applicator.pause" "value" Format: Values: high, low low Default: y set value. er to respond with the currentl This command instructs the print getvar Format: ! U1 getvar "device.applicator.pause" Supported Devices • ZE500™ series 4™ series PAX • • Xi4™ series III • ™ series Plus Xi Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

625 SGD Printer Commands 625 device.applicator.reprint device.applicator.reprint This command will specify if a "high" or "low" value is required for an app licator to reprint a label. ~PR on page 300 . This command is similar to Commands Details This command sets the value. setvar ! U1 setvar "device.applicator.reprint" "value" Format: Values: high, low Default: low y set value. er to respond with the currentl This command instructs the print getvar Format: ! U1 getvar "device.applicator.reprint" Supported Devices • ZE500™ series 4™ series PAX • • Xi4™ series III Plus ™ series • Xi Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

626 SGD Printer Commands 626 device.applicator.rfid_void device.applicator.rfid_void This command will specify if a "high" or "low" value is used for the RFID void signal, which occurs when an RFID label is voided by the printer. Commands Details This command sets the value. setvar ! U1 setvar "device.applicator.rfid_void" "value" Format: Values: high, low Default: low This command instructs the print er to respond with the currentl y set value. getvar Format: ! U1 getvar "device.applicator.rfid_void" Supported Devices • ZE500™ series 4™ series • PAX • Xi4™ series • Plus III Xi ™ series Note • • For printer support, see SGD Command Support on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

627 SGD Printer Commands 627 device.applicator.ribbon_low device.applicator.ribbon_low "low" value is required for an applicator to indicate that the This command will specify if a "high" or ribbon is running out. Commands Details This command sets the value. setvar Format: ! U1 setvar "device.applicator.ribbon_low" "value" Values: high, low Default: high er to respond with the currentl y set value. This command instructs the print getvar Format: ! U1 getvar "device.applicator.ribbon_low" Supported Devices • ZE500™ series 4™ series PAX • • Xi4™ series III • ™ series Plus Xi Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

628 SGD Printer Commands 628 device.applicator.ribbon_out device.applicator.ribbon_out date that the applicator to in value is required for an "high" or "low" This command will specify if a ribbon has run out. Commands Details This command sets the value. setvar ! U1 setvar "device.applicator.ribbon_out" Format: Values: high, low Default: low This command instructs the print er to respond with the currentl y set value. getvar Format: ! U1 getvar "device.applicator.ribbon_out" Supported Devices • ZE500™ series 4™ series • PAX • Xi4™ series • Plus III Xi ™ series Note • • For printer support, see SGD Command Support on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

629 SGD Printer Commands 629 device.applicator.service_required device.applicator.service_required "low" value is required for an applicator to indicate that This command will specify if a "high" or maintenance is required. Commands Details This command sets the value. setvar Format: ! U1 setvar "device.applicator.service_required" "value" Values: high, low Default: low er to respond with the currentl y set value. This command instructs the print getvar Format: ! U1 getvar "device.applicator.service_required" Supported Devices • ZE500™ series 4™ series PAX • • Xi4™ series III • ™ series Plus Xi Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

630 SGD Printer Commands 630 device.applicator.start_print device.applicator.start_print This command will specify if a "high" or "low" value is required for an applicator to start printing. Commands Details This command sets the value. setvar ! U1 setvar "device.applicator.start_print" "value" Format: Values: high, low low Default: y set value. er to respond with the currentl This command instructs the print getvar Format: ! U1 getvar "device.applicator.start_print" Supported Devices • ZE500™ series 4™ series PAX • • Xi4™ series III • ™ series Plus Xi Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

631 SGD Wireless Commands 631 device.bluetooth_installed device.bluetooth_installed Determines if there is a Bluetoo th radio installed in the print er. Commands Details getvar Format: ! U1 getvar "device.bluetooth_installed" "yes" - Result: talled in the printer. a Bluetooth radio is ins o is installed. no Bluetooth radi "no" - Supported Devices • QLn220, QLn320 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZR628, ZR638 • ZT410, ZT420, ZT420 Note • For printer support, see • SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

632 SGD Printer Commands 632 device.command_override.active device.command_override.active This command enables or disabl es the device.command_override fu nction. When enabled, the printer will ignore the list of c ommands previously specified u sing the device.command_override.add. Use o f this command does not modif y the list. Commands Details printer to turn on/off device.command_override . This command sets the the setvar "value" ! U1 setvar "device.command_override.active" Format: Values: yes = active = inactive no yes Default: tive/inactive state of device.command_override . This command returns the ac getvar Format: ! U1 getvar "device.command_override.active" Values: = active yes no = inactive Default: yes Examples: "yes" ! U1 setvar "device.command_override.active" ! U1 setvar "device.command_override.active" "no" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see P1099958-001 Programming Guide 1/31/18

633 SGD Printer Commands 633 device.command_override.add device.command_override.add This command adds a specified command to the list of commands t hat will be ignored by the printer. The list is saved when the printer is powered off. The list is not cleared when the printer is defaulted. in the list and the device.command_override.active • If there are items "yes" , then is set to the config la bel will show ACTIVE COMMAND OVERRIDE. , then the • If there are no items in the list or device.command_override.active is set to "no" INACTIVE COMMAND OVERRIDE. config label will show Commands Details add The command instructs the printer t e list of override o add a specifie d command to th setvar commands.. "command" ! U1 setvar "device.command_override.add" Format: Values: any ZPL or Set/Get/Do command NA Default: When specifying a ZPL command, the command must be preceded by the current format Example: . ^ or ~). Multiple commands mu st be declared with its own setvar or control prefix character (e.g declaration. ! U1 setvar "device.command_override.add" "^MN" ! U1 setvar "device.command_override.add" "^PR" ! U1 setvar "device.command_override.add" "comm.baud" ! U1 setvar "device.command_override.add" "device.reset" Example: The following example would NOT be valid. ! U1 setvar "device.command_override.add" "~HI,~HS,^MN" and would have to be re-sent as ! U1 setvar "device.command_override.add" "~HI" ! U1 setvar "device.command_override.add" "~HS" ! U1 setvar "device.command_override.add" "^MN" Important • You can not add "device.command_override.clear" to the list of accepted override commands. Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

634 SGD Printer Commands 634 device.command_override.clear device.command_override.clear This command clears all commands from the command override list . Commands Details The clear command clears the list of ov erride commands specified in setvar on page 635 device.command_override.list . ! U1 setvar "device.command_override.clear" "value" Format: Values: NA Default: NA Note • • For printer support, see SGD Command Support on page 1393 . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

635 SGD Printer Commands 635 device.command_override.list device.command_override.list st a list of the current set of c This command returns to the ho ommands that the printer will ignore. Commands Details list command prints a comma-delimited list of override commands. The getvar ! U1 getvar "device.command_override.list" Format: Values: NA NA Default: Note • • For printer support, see SGD Command Support on page 1393 . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

636 SGD Printer Commands 636 device.company_contact device.company_contact accessed from the This command sets the company co ntact information, which can be server/sysinfo.htm webpage. Commands Details Sets the company contact information. setvar ! U1 setvar "device.company_contact" "value" Format: Values: Any string up to 128 characters in length Default: "" Displays the current company contact information. getvar ! U1 getvar "device.company_contact" Format: d later. Supported Devices Link-OS print ers with firmware Vxx.19.7Z an . "Zebra" e value set to Example: This setvar example shows th ! U1 setvar "device.company_contact" "Zebra" Note • SGD Command Support • For printer support, see on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

637 SGD Wireless Commands 637 device.configuration_number device.configuration_number Returns the current SKU number of the printer. Commands Details getvar Format: ! U1 getvar "device.configuration_number" Supported Devices •ZQ510, ZQ520 Note • For printer support, see . on page 1393 • SGD Command Support • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 Programming Guide P1099958-001

638 SGD Printer Commands 638 device.cpcl_synchronous_mode device.cpcl_synchronous_mode sync mode, This command enables/disables CP CL synchronous mode. When the p rinter is in parsing will "lock" while printin g is going on, allowing behavi or similar to that of the legacy SH3 mobile printers. Commands Details This command sets the the printer to turn on/off device.cpcl_synchronous_mode . setvar ! U1 setvar "evice.cpcl_synchronous_mode" "value" Format: Values: on = puts the printer in CPCL synchronous mode off = puts the prin ter in default mode off Default: This command returns the the current value of the setting. getvar Format: ! U1 getvar "evice.cpcl_synchronous_mode" Supported Devices QLn™ series Consider issuing a label immediately followed by an SGD request . When sync mode is " off ", the ", the on bel. When sync mode is " SGD will be returned nearly immedi ately after submitting the la the label has printed. SGD will be returned after Examples: ! U1 setvar "evice.cpcl_synchronous_mode" "on" ! U1 setvar "evice.cpcl_synchronous_mode" "off" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

639 SGD Printer Commands 639 device.cutter_installed device.cutter_installed This command reports if a cutter unit is installed. Commands Details This command checks if a cutter is installed. getvar ! U1 getvar "device.cutter_installed" Format: Yes or No Values: No Default: Note • SGD Command Support • For printer support, see on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

640 SGD Printer Commands 640 device.download_connection_timeout device.download_connection_timeout r to abort a firmware download if the printer fails to receive any This command instructs the printe f seconds. If download data in the set amount o f seconds is exceeded, the the set amount o download will be aborted, and the printer automatically restart s. This command pr events the printer from being locked into the downloa ding state, if the communicat ion to the host is interrupted. For printer support, see onpage1393 . SGD Command Support Commands Details r fails to receive any This command instructs the print er to abort a firmware download if the printe setvar download data in the set amount of seconds. Format: ! U1 setvar "device.download_connection_timeout" "value" "0" "65535" through Values: Default: ("0" disables this feature) "0" s). This command retrieves the con nection time out value (in second getvar Format: ! U1 getvar "device.download_connection_timeout" Note • . For details on SGD command structure, see Command Structure on page 573 Example: This setvar example shows the value set to "0" . ! U1 setvar "device.download_connection_timeout" "0" . "0" result is When the setvar value is set to "0" , the getvar Programming Guide P1099958-001 1/31/18

641 SGD Printer Commands 641 device.epl_legacy_mode device.epl_legacy_mode This command places the printe r in a 2824/2844 compatibility mo de for vertical registration. Commands Details e setting. This command instructs the printer to change the epl_legacy_mod setvar* ! U1 setvar "device.epl_legacy_mode" "value" Format: Values: off = epl_legacy_mode not active registration = EPL legacy registration mode on print orientation = EPL legacy print orientation mode on all = all EPL legacy modes on "off" Default: This command causes the printer to return the current setting f or the device.epl_legacy_mode getvar setting. ! U1 getvar "device.epl_legacy_mode" Format: Supported Devices • G-Series printers • LP2824 Plus and TLP 2824 Plus Note • For printer support, see • SGD Command Support on page 1393 . on page 573 . • For details on SGD command structure, see Command Structure This example shows the value set to setvar Example 1 • "registration" . ! U1 setvar "device.epl_legacy_mode" "registration" setvar . example shows the value set to This "print_orientation" Example 2 • ! U1 setvar "device.epl_legacy_mode" "print_orientation" Example 3 • This getvar example shows the response when the value was set t o "registration" and "print_orientation" . ! U1 getvar "device.epl_legacy_mode" registration, print_orientation " " Example 4 • "all" This getvar example shows the response when value was set to ! U1 getvar "device.epl_legacy_mode" " all " These are the possible responses to getvar "device.epl_legacy_mode" • "off" • "registration" • "print_orienation" • "registration, print_orientation" • "all" 1/31/18 Programming Guide P1099958-001

642 SGD Printer Commands 642 device.epl_legacy_mode Note • This setting is not defaulted as part of a factory default ( ^JUF or ^default) . The setting is persistent across a pow er cycle or rest ( ~JR or device.reset ). When setting the “reg istration” mode, the "print_orienation" mode is not cha nged. Likewise, mode, the "print_orienation" mode is not changed. Using "registration" when setting the "off" or "all" changes all modes. Print Orientation Mode ^PON Note • When the printer is powered on, the print orientation defaults to (EPL ZB mode). The print orientation setting is n ot saved across power cycles. Thi s is different tha n TLP2844, LP2844, TLP2824, LP2824, and TLP3842 prin ters. Those printers have a de fault of ZB (ZPL ^PON mode) is saved across To make the printer have the print power cycles. and the print orientation setting 2844, LP2844, TLP2824, LP2824, a nd TLP3842 printers, set the orientation behavior of the TLP "print_orienation" epl_legacy_mode to . Registration Mode When printing labels using EPL c ommands, printing starts 1mm fr om the top edge of the Note • label (from the gap). This is k nown as the “no print zone”. Wh en printing in ZT mode, the “no print zone” starts at the g ap on the leading edge o f the label. When printing in ZB mode, the “no print zone” starts from the gap on the trailing edge of the label. In the TLP2844, LP2844, TLP2824, LP2824, and TLP3842 printers, the distance from gap to start of print (the “no print zone”) is not always 1mm. The table below shows the nominal distance. Distance from Edge of Label to F irst Print Line (No Print Zone) Legacy Printer l New Printer Mode ZT Mode ZB Mode Model GX420, GK420 (direct thermal) 1.9 mm 0.0 mm LP2844 TLP2844 GX420, GK420 (the rmal transfer) 0.4 mm 1.6 mm TLP3842 GX430 (thermal transfer) 0.0 mm 1.2 mm 0.4 mm 1.5 mm LP2824 thermal) LP 2824 Plus (direct TLP2824 TLP 2824 Plus (therma l transfer) 0.1 mm 1.8 mm af. Setting epl_legacy_mode to "registration" selects the distance shown in the table. "off" selects a no print zone distance of 1mm. Setting epl_legacy_mode to ag. 1/31/18 Programming Guide P1099958-001

643 SGD Wireless Commands 643 e.bluetooth_le device.featur device.feature.bluetooth_le Indicates whether or not the pr inter supports Bluetooth LE. Commands Details getvar Format: ! U1 getvar "device.feature.bluetooth_le" a Bluetooth LE radio is installed "present" = Values: "not present" = no Bluetooth LE radio is installed is not available on this printer Bluetooth LE radio "not available" = Supported Devices •ZQ510, ZQ520 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

644 SGD Wireless Commands 644 device.feature.mcr device.feature.mcr Indicates if the magnetic card reader is installed and availabl e. Commands Details getvar Format: ! U1 getvar "device.feature.mcr" eader is not available on the printer the magnetic card r "not available" = Values: available but not installed the magnetic card reader is "not present" = the magnetic card re printer "present" = ader is both available and installed on the Default: NA Supported Devices • iMZ220, iMZ320 • QLn220, QLn320, QLn420 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZR338, ZR628, ZR638 • ZT210, ZT220, ZT230 • ZT410, ZT420 Note • . on page 1393 SGD Command Support • For printer support, see • For details on SGD command structure, see Command Structure on page 573 . P1099958-001 1/31/18 Programming Guide

645 SGD Wireless Commands 645 device.feature.nfc device.feature.nfc Indicates if the printer supports the optional Active Near Fiel d Communication (NFC) feature, and if it is currently installed. Commands Details getvar Format: ! U1 getvar "device.feature.nfc" active NFC is not supported. "not available" = Values: ut no reader is installed. active NFC is supported, b "not present" = "present" = active NFC is supported with a reader is installed. Default: NA Supported Devices • iMZ220, iMZ320 • QLn320, QLn220, QLn420 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZR338, ZR638, ZR628 • ZT210, ZT220, ZT230 • ZT410, ZT420 Note • on page 1393 SGD Command Support . • For printer support, see • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 P1099958-001 Programming Guide

646 SGD Wireless Commands 646 device.feature.ribbon_cartridge device.feature.ribbon_cartridge Indicates if the printer can acc ept a ribbon cartridge, and if so, if one is installed. Commands Details getvar Format: ! U1 getvar "device.feature.ribbon_cartridge" Result: - the ribbon cartridge is no "not available" t available on the platform one is not cartridge, but ccepting a ribbon - the printer is capable of a "not present" currently installed - a ribbon cartridge is installed "present" Supported Devices • iMZ220, iMZ320 • QLn320, QLn220, QLn420 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZR338, ZR638, ZR628 • ZT210, ZT220, ZT230 • ZT410, ZT420 Note • . on page 1393 SGD Command Support • For printer support, see • For details on SGD command structure, see Command Structure on page 573 . P1099958-001 1/31/18 Programming Guide

647 SGD Printer Commands 647 device.friendly_name device.friendly_name This command shows the name assig ned to the printe r. For printe r support, see SGD Command . on page 1393 Support Commands Details This command sets the printer’s name. setvar Format: ! U1 setvar "device.friendly_name" " value " represents the main logic board "xxxxxxxxxx" Default: "xxxxxxxxxx" ( serial number) ame assigned to the printer. This command retrieves the n getvar ! U1 getvar "device.friendly_name" Format: Note • For details on SGD command structure, see Command Structure on page 986 . setvar Example: This example shows the value set to "xxxxxxxxxx" . "xxxxxxxxxx" ! U1 setvar "device.friendly_name" "xxxxxxxxxx" . result is When the setvar value is set to "xxxxxxxxxx" , the getvar Programming Guide 1/31/18 P1099958-001

648 SGD Printer Commands 648 device.frontpanel.feedenabled device.frontpanel.feedenabled This command can be used to enable or disable the FEED key or any other key on the printer. For SGD Command Support onpage1393 . printer support, see Commands Details front_panel.feedenable This command instructs the printer to change the d setting. setvar Format: ! U1 setvar "device.frontpanel.feedenabled" Values: "yes" = Front Panel keys are enabled "no" = Front Panel keys are disabled Default: for GX420s printers "no" = all supported printers except GX420s "yes" = Power On Default: for GX420s printers "no" = all supported printers except GX420s "yes" = This command retrieves the current setting for the command: front_panel.feedenable getvar Format: ! U1 getvar "device.frontpanel.feedenabled" Supported Devices •GK420 • GX420, GX430, GX420s • LP/TLP 2824 Plus, For details on SGD command structure, see on page 573 Note • . Command Structure In this example, the Example: sets the value to "no" . setvar ! U1 setvar "device.frontpanel.feedenabled" "no" LCD display, there is a key in SELECT Note • On GX420 printers with an and SCROLL addition to the FEED key. Both the SCROLL and SELECT keys are enabled or disabled key is enabled or disabled using this command. FEED when the Note • On power up, for model GX420s pri nter, the command value is set to "no" . For all other "yes" ”. alue is set to printers, on power up, the command v Programming Guide 1/31/18 P1099958-001

649 SGD Printer Commands 649 device.frontpanel.key_press device.frontpanel.key_press This command instructs the printer to press a button on the fro nt panel. For printer support, see SGD Command Support on page 1393 . Commands Details This command instructs the print er to press a button on the fro nt panel. setvar Format: ! U1 setvar "device.frontpanel.key_press" Values: The values vary per printer, as follows: S4M: ZM400, Z4M/Z6M, and RZ400/RZ600: "A" = "A" = Pause Pause "B" = Feed "B" = Feed "C" = "C" = Up Arrow Cancel Cancel Setup/Exit "D" = "D" = "E" = "E" = Minus Menu Enter Select "F" = "F" = Plus "G" = Xi4, RXi4: Pause "A" = XiIIIplus: "B" = Feed "A" = Pause Cancel "C" = "B" = Feed Setup/Exit "D" = "C" = Cancel Previous "E" = "D" = Setup/Exit "F" = Next/Save "E" = Previous Minus "G" = "F" = Next/Save Plus "H" = Minus "G" = "I" = Calibrate Plus "H" = Calibrate "I" = Command Structure . on page 573 Note • For details on SGD command structure, see example shows the value set to Example: This setvar . "A" "A" ! U1 setvar "device.frontpanel.key_press" Programming Guide P1099958-001 1/31/18

650 SGD Printer Commands 650 device.frontpanel.line1 device.frontpanel.line1 This command overrides the conten t that is shown on the first l ine of the front panel when the printer function is dependent on first using the getvar is showing the idle display. Use of the setvar function. For example, to have the first line of the idle displ ay to show HELLO, you must first send a command; then a getvar command can be sent to retrieve setvar the value HELLO. For printer support, see on page 1393 . For details on the supported character set, see SGD Command Support on page 1389 . Character Set Commands Details This command instructs the pri nter to set the content that is s hown on line one of the front panel. setvar Format: ! U1 setvar "device.frontpanel.line1" "value" or line 1 on the ASCII characters available f The maximum amount of alphanumeric Values: printer’s front panel "" Default: the front panel. This command retrieves the conte nt that is shown on line one of getvar ! U1 getvar "device.frontpanel.line1" Format: Note • . For details on SGD command structure, see Command Structure on page 573 Example: This setvar example shows the value set to "sample line 1" . "sample line 1" ! U1 setvar "device.frontpanel.line1" "sample line 1" . result is When the setvar value is set to "sample line 1" , the getvar Programming Guide P1099958-001 1/31/18

651 SGD Printer Commands 651 device.frontpanel.line2 device.frontpanel.line2 line of the front panel when the This command overrides the conten t that is shown on the second getvar function is depen le display. Use of the setvar printer is showing the id dent on using the function. For example, to have the second line of the idle disp lay show HELLO, you must first send a command; then a getvar setvar the value HELLO. For printer command can be sent to retrieve support, see on page 1393 . For details on the supported character set, see SGD Command Support on page 1389 . Character Set Commands Details This command instructs the pri nter to set the content that show s on line two of the front panel. setvar Format: ! U1 setvar "device.frontpanel.line2" "value" or line two on the ASCII characters available f The maximum amount of alphanumeric Values: printer’s front panel "" Default: e front panel. This command retrieves the con tent that shows on line two of th getvar ! U1 getvar "device.frontpanel.line2" Format: Note • . For details on SGD command structure, see Command Structure on page 573 Example: This setvar example shows the value set to "sample line 2" . "sample line 2" ! U1 setvar "device.frontpanel.line2" . "sample line 2" result is When the setvar value is set to "sample line 2" , the getvar Programming Guide 1/31/18 P1099958-001

652 SGD Printer Commands 652 device.frontpanel.xml device.frontpanel.xml This command retrieves the current content of the front panel i n an XML format. For printer support, see SGD Command Support onpage1393 . Commands Details This command retrieves the file that determines the representat ion of the front panel. getvar Format: ! U1 getvar "device.frontpanel.xml" . on page 573 Command Structure Note • For details on SGD command structure, see Example: In this example, the getvar shows the status of the LEDs a nd the two lines of the front panel in XML formatted text. The text below is formatted for ea sy reading. When you use this command the response will not contain line feeds. ! U1 getvar "device.frontpanel.xml" PRINTER READY V53.16.0 STEADY-OFF STEADY-OFF STEADY-OFF Programming Guide P1099958-001 1/31/18

653 SGD Printer Commands 653 device.host_identification device.host_identification This command is designed to be se nt from the host to the Zebra printer to retrieve information. Upon receipt, the printer responds w ith information on the model, so ftware version, dots-per-millimeter any detected options. setting, memory size, and This command is equivalent to the ZPL command. ~HI Commands Details rmation about the printer. This command displays info getvar Format: ! U1 getvar "device.host_identification" Result: XXXXXX,V1.0.0,dpm,000KB,X Values: = model of Zebra printer XXXXXX = version of software V1.0.0 = dots/mm dpm 6, 8, 12, or 24 dots/mm printheads 000KB = memory 512KB = 1/2 MB 1024KB = 1 MB 2048KB = 2 MB 4096KB = 4 MB 8192KB = 8 MB x = recogniz able options only options specific to printer are shown (cutter, options, et cetera.) Note • • For printer support, see SGD Command Support on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

654 SGD Printer Commands 654 device.host_status device.host_status ee data strings back. To avoid When this command is sent to the printer, the printer sends thr prints each string confusion, the host on a separate line. This command is similar to the ~HS ZPL command. The response for t not include the STX at the beginning of each data line his SGD command does and does not include the ETX at the end of each data line as found in the ~HS response. Additionally, the first and second re sponse lines for the SGD command contain a CR/LF at the end of each line. Note • When the command is s ent, the printer will not send a response to the host if the printer is in one of these conditions: • MEDIA OUT • RIBBON OUT • HEAD OPEN • REWINDER FULL • HEAD OVER-TEMPERATURE Commands Details getvar ! U1 getvar "device.host_status" Format: Three strings, each on their own line. Result: "aaa,b,c,dddd,eee,f,g,h,iii,j,k,l mmm,n,o,p,q,r,s,t,uuuuuuuu,v,www xxxx,y" String 2, and String 3 below. See definitions for String 1, Values: "aaa,b,c,dddd,eee,f,g,h,iii,j,k,l" String 1 a aaa = communication (interface) settings paper out) b = paper out flag (1 = c = pause flag (1 = pause active) dddd = label length (value in number of dots) eee = number of formats in receive buffer receive buffer full) f = buffer full flag (1 = flag (1 = diagnostic mode active) communications diagnostic mode g = partial format flag (1 = partial format in progress) = h iii = unused (always 000) flag (1 = corrupt RAM = j configuration data lost) k = temperature range (1 = under temperature) l = temperature range (1 = over temperature) r’s baud rate, number of data b ah. This string specifies the printe its, number of stop bits, parity setting, and type of handshaking. ecimal representation of an eight- This value is a three-digit d his parameter, first convert th e decimal number to a binary bit binary number. To evaluate t number. The nine-digit binary number is read according to this table: P1099958-001 Programming Guide 1/31/18

655 SGD Printer Commands 655 device.host_status 876543210 aaa=aaaaaaaaa 78210 = Handshake a a a a a = Baud 0 = Xon/Xoff 1 = DTR 0000=110 0 001 = 300 6 a = Parity Odd/Even 0 010 = 600 0 = Odd 0 011 = 1200 1 = Even 0 100 = 2400 5 0 101 = 4800 a = Disable/Enable 0 110 = 9600 0 = Disable 0 111 = 19200 1 = Enable 1 000 = 28800 (available only on certain p rinter models) 4 a =Sto p Bits 1 001 = 38400 (available only on certain rinter models) p 0 = 2 Bits 1 010 = 57600 p (available only on certain rinter models) 1=1Bit 1 011 = 14400 3 a = Data Bits 0 = 7 Bits 1 = 8 Bits "mmm,n,o,p,q,r,s,t,uuuuuuuu,v,www" String 2 b = function settings mmm n = unused head up flag (1 = head in up position) o = ribbon out = = ribbon out) p flag (1 = q flag (1 = Thermal Transfer Mode selected) thermal transfer mode r = Print Mode Rewind 0 = 1 = Peel-Off Tear-Off 2 = Cutter 3 = Values 4 to 5 are only 4 = Applicator supported in firmware 5 = Delayed cut c version V60.14.x, Reserved 6 = . 15.x, or V50.14.x, V53 c 7 = Reserved later. c 8 = Reserved 9 = RFID = print width mode s flag (1 label waiting in Peel-off Mode) t = = label waiting = labels remaining in batch uuuuuuuu v = format while printing flag (always 1) ges stored in memory www = number of graphic ima ai. This string specifies the printer’s media type, sensor profile status, and communication diagnostics status. As in String 1, this is a three-digit decimal represent ation of an eight-bit binary number. First, convert the decimal number to a binary number. RZ400/RZ600, and ZT200 aj. These values are only supported on the Xi4, RXi4, ZM400/ZM600, Seriesprinters. The eight-digit binary number is read according to this table: P1099958-001 Programming Guide 1/31/18

656 SGD Printer Commands 656 device.host_status mmm=m7m6m5m4m3m2m1m0 e m4 m3 m2 m1 = Unused = Media Ty p m7 0=Off 0 = Die-Cut 1=On 1 = Continuous = Print Mode = Sensor Profile m0 m6 0 = Direct Thermal 0=Off 1 = Thermal Transfer = Communications Diagnostics m5 0=Off 1=On String 3 "xxxx,y" xxxx = password = 0 (static RAM not installed) y 1 (static RAM installed) Note • • SGD Command Support For printer support, see . on page 1393 on page 573 . • For details on SGD command structure, see Command Structure 1/31/18 P1099958-001 Programming Guide

657 SGD Wireless Commands 657 device.idle_display_format device.idle_display_format Retrieves and sets the front panel’s idle display format. Commands Details setvar Format: ! U1 setvar "device.idle_display_format" "value" Values: fw-version,ip-address,mm/dd/yy-24-hr,mm/dd/yy-12-hr,dd/mm/yy-24- hr,dd/mm/yy-12-hr (firmware version) "fw-version" Default: getvar Format: ! U1 getvar "device.idle_display_format" Result: fw-version,ip-address,mm/dd/yy-24-hr,mm/dd/yy-12-hr,dd/mm/yy-24- hr,dd/mm/yy-12-h Supported Devices • QLn220, QLn320 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZR628, ZR638 • ZT210, ZT220, ZT230 • ZT410, ZT420 ZT420 Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see P1099958-001 Programming Guide 1/31/18

658 SGD Wireless Commands 658 device.idle_display_value device.idle_display_value ion. Returns the printer’s current fr ont panel idle display informat Details Type getvar Format: ! U1 getvar "device.idle_display_value" Result: A firmware version, the printer’s IP address, or the date. Supported Devices • QLn320, QLn220 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZR638, ZR628 • ZT230, ZT220, ZT210 • ZT410, ZT420 Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see P1099958-001 Programming Guide 1/31/18

659 SGD Printer Commands 659 device.internal_wired_setting_location device.internal_wire d_setting_location This command identifies the location from where internal_wired network specific settings should be retrieved. Commands Details This command specifies the locat ion from where internal_wired n etwork specific settings should setvar* be retrieved. ! U1 setvar "device.internal_wired_setting_location" "value" Format: Values: "network card" "printer" Note • n for the QLn series rinters. and ZD500 series p is the only valid optio "printer" "network_card" Default: This command displays the locati specific settings are retrieved on where internal_wired network getvar from. Format: ! U1 getvar "device.internal_wired_setting_location" n series and ZD500 s eries Note • "printer" is the only valid get var option for the QL printers. Supported Devices • ZT200™ series • ZD500™ series • QLn™ series on page 573 Note • For details on SGD command structure, see Command Structure . . SGD Command Support on page 1393 For printer support, see Programming Guide P1099958-001 1/31/18

660 SGD Printer Commands 660 device.jobs_print device.jobs_print ber of jobs to be printed. For p This command identifies the num SGD Command rinter support, see Support on page 1393 . Commands Details This command retrieves the n umber of jobs to be printed. getvar Format: ! U1 getvar "device.jobs_print" Command Structure on page 573 Note • For details on SGD command structure, see . Example: In this example, the getvar retrieves the jobs currently being printed or last printed. ! U1 getvar "device.jobs_print" "1" P1099958-001 Programming Guide 1/31/18

661 SGD Printer Commands 661 device.languages device.languages This command identifies the programming language that the print er is currently using. Commands Details quired programming language. This command instructs the print er to set the printer to the re setvar ! U1 setvar "device.languages" "value" Format: Values: "epl" = Eltron Programming Language "epl_zpl" = Eltron Programming Language a nd Zebra Programming Language "zpl" = Zebra Programming Language XML and ZPL Programming Languages "hybrid_xml_zpl" = "apl-d" = Virtual Device-D (onl y Link-OS printers) -OS) "apl-t" = Virtual Device-T (only desktop and table top printers with Link "apl-e" = Virtual Device-E (only mob ile printers with Link-OS) "apl-o" = Virtual Device-O (only mob ile printers with Link-OS) "apl-i" = Virtual Device-I (onl y Link-OS printers) Not all values are accepted on all printers. Important • command to see the range of values that your ! U1 getvar "allcv" Use the printer supports. Values other than those listed may be availab le depending on the firmware version being used. "zpl" and "hybrid_xml_zpl" are equivalent. When the setvar is set to "zpl" , Note • the getvar result will always be "hybrid_xml_zpl". "epl_zpl" Default: This command retrieves the progr amming language that the printe r is currently using. getvar ! U1 getvar "device.languages" Format: Example: setvar example sets the programming language to "hybrid_xml_zpl" using the This shorter value of "zpl" . ! U1 setvar "device.languages" "zpl" Note • • For printer support, see SGD Command Support on page 1393 . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

662 SGD Printer Commands 662 device.light.cover_open_brightness device.light.cover_open_brightness This command sets the brightne ss level for the Cover Open light . Commands Details for the cover open LEDs. Sets the brightness level setvar ! U1 setvar "device.light.cover_open_brightness" "value" Format: Values: "high" = the LEDs display at maximum bri ghtness when the cover is open "medium" = the LEDs display at medium brightness when the cover is open "low" = the LEDs display at lowest brightness when the cover is open the LEDs remain off at all times "off" = "high" Default: Retrieves the current brightness level setting for the cover op en LEDs. getvar ! U1 getvar "device.light.cover_open_brightness" Format: Supported Devices ZT400 series . "low" e value set to Example: This setvar example shows th ! U1 setvar "device.light.cover_open_brightness" "low" Note • SGD Command Support • For printer support, see on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see P1099958-001 Programming Guide 1/31/18

663 SGD Printer Commands 663 device.light.head_open_brightness device.light.head_open_brightness This command sets the brightness level for the Head Open light. Commands Details Sets the brightness level for the head open LEDs. setvar ! U1 setvar "device.light.head_open_brightness" "value" Format: Values: "high" = the LEDs display at maximum bri ghtness when the head is open "medium" = the LEDs display at medium brightness when the head is open "low" = the LEDs display at lowest bri ghtness when the head is open the LEDs remains off at all times "off" = Default: "high" Retrieves the current brightness level setting for the head ope n LEDs. getvar ! U1 getvar "device.light.head_open_brightness" Format: Supported Devices ZT400 series . "medium" e value set to Example: This setvar example shows th ! U1 setvar "device.light.head_open_brightness" "medium" Note • SGD Command Support • For printer support, see on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see 1/31/18 Programming Guide P1099958-001

664 SGD Wireless Commands 664 device.location device.location s used on the "server/sysinfo. htm" webpage. Sets the system location, which i Commands Details setvar Format: ! U1 setvar "device.location" "value" to 128 characters. Any ASCII string up Values: "" Default: (empty string) getvar Format: ! U1 getvar "device.location" Supported Devices • iMZ220, iMZ320 • QLn220, QLn320 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZR628, ZR638 • ZT210, ZT220, ZT230 • ZT410, ZT420 Note • For printer support, see • SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see 1/31/18 Programming Guide P1099958-001

665 SGD Printer Commands 665 device.ltu_installed device.ltu_installed iner Take-Up unit is installed This command checks to see if a L . Commands Details getvar Format: ! U1 getvar "device.ltu_installed" Values: Yes No Default: No Note • For printer support, see • SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

666 SDG Printer Commands 666 device.orientation device.orientation This printer setting determines the installation orientation of the KR403 printer, ei ther horizontal or Modification by an end user can result in vertical. It is intended for use only by the system integrator. unexpected prin ter behaviour. Commands Details length. This command instructs the pri nter to change the presenter loop setvar ! U1 setvar "device.orientation" "value" Format: Values: 0 = printer is installed horizontally 1 = is installed vertically Default: 0 = printer is installed horizon only, value will not tally (original factory default change when defaulting the printer with ^JUF ) This command instructs the print er to respond with the currentl y set presenter loop getvar length. Format: ! U1 getvar "device.orientation" Supported Devices •KR403 Note • For details on SGD command structure, see Command Structure on page 573 . P1099958-001 Programming Guide 1/31/18

667 SGD Printer Commands 667 device.pause device.pause This command stops printing afte r the current label is complete (if one is printi ng) and places the printer in Pause Mode. This command is equivalent to ~PP . Commands Details This command stops printing and p uts the printer in Pause Mode. setvar ! U1 SETVAR "device.pause" "" Format: Values: NA NA Default: This command stops printing and p uts the printer in Pause Mode. do ! U1 DO "device.pause" "" Format: Values: NA Default: NA Note • • For printer support, see SGD Command Support on page 1393 . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

668 SGD Printer Commands 668 device.pnp_option device.pnp_option This command defines the type of Plug and Play response that is sent by the printer after the printer is started. The printer must be restarted for a new PNP string to be reported. For printer support, see SGD Command Support onpage1393 . Commands Details er to select the desired Plug a nd Play response option. This command instructs the print setvar " value ! U1 setvar "device.pnp_option" " Format: Values: "epl" = Eltron Programming Language "zpl" = Zebra Programming Language Default: "zpl" This command retrieves the P lug and Play option setting. getvar ! U1 getvar "device.pnp_option" Format: Note • For GT800 printers only: when th e printer’s Plug and Play strin g is set to EPL, the KDU ONNECTION - EPL Printer (DTE) even when set to ZPL Forms mode. This Plus displays ' play, not the functionality. behavior only affects the dis Note • For details on SGD command structure, see Command Structure on page 573 . Example: This setvar example shows the value set to "zpl" . ! U1 setvar "device.pnp_option" "epl" result is . "epl" When the setvar value is set to "epl" , the getvar P1099958-001 Programming Guide 1/31/18

669 SGD Wireless Commands 669 device.pmcu.revision device.pmcu.revision sion number. Retrieves the Power Micro-Contro ller Unit’s (PMCU) current revi Commands Details getvar Format: ! U1 getvar "device.pmcu.revision" Supported Devices • ZD410, ZD420 •ZQ510, ZQ520 Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see 1/31/18 Programming Guide P1099958-001

670 SDG Printer Commands 670 device.position.accuracy device.position.accuracy This printer setting retrieves/s ets the accuracy of the geograp hic position values. The units of the value depend upon the location provider that w as used to determine the geographic coordinates. Usually, this is s pecified as a radius, in meters, of confidence around the location dence that the true location lies within coordinates. Often, the radius represents a radius of 68% confi d deviation. one standar the circle, representing which they are set, within the These settings hold the value to range restrictions. The Note • printer does not perform any calculations, nor associate any me aning such as “meters” or “feet” to the values. The values can be determined by a number of methods , including an Android® or iOS® e’s geolocation device. application communicat ing with the printer using the smart phon Commands Details of the geographic position value s. This command sets the accuracy setvar Format: ! U1 setvar "device.position.accuracy" "value" Values: A decimal number with 6 decimal places, e.g. 25.370000 . The value is saved as a double precision floating point number. • 0 Minimum: • 406700000 Maximum: values. This command retrieves the accur acy of the geographic position getvar ! U1 getvar "device.position.accuracy" Format: Example: ! U1 setvar "device.position.accuracy" "25.37" . on page 573 Command Structure Note • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

671 SDG Printer Commands 671 device.position.altitude device.position.altitude This printer setting retrieves the altitude above sea level. The value is in meters above sea level. A positive number indic ates a position a bove sea level. A ion of sea level depends upon the ion below sea level. The posit negative number indicates a posit e World Geodetic system used to pro vide a nominal sea leve l reference position. This is often th System WGS 84 standard but depend s upon the location provider. Details Commands f the printer above sea level. This command sets the altitude o setvar ! U1 setvar "device.position.altitude" "value" Format: A decimal number with 6 deci mal places, e.g. 305.100000 Values: The value is saved as a double p recision floatin g point number. • Minimum: -10000 • 406700000 Maximum: 0.0 Default: This command retrieves the altitude above sea level. getvar ! U1 getvar "device.position.altitude" Format: Example: ! U1 setvar "device.position.altitude" "305.1" on page 573 . Command Structure Note • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

672 SDG Printer Commands 672 device.position.latitude device.position.latitude This printer setting retrieves /sets the geograph ic latitudinal position. Commands Details ude position of the printer. This command sets the latit setvar ! U1 setvar "device.position.latitude" "value" Format: 0.0 . Values: The value is in decimal degrees from +/-90.0 to Default: 0.0 the printer. This command retrieves the lat itude position of getvar ! U1 getvar "device.position.latitude" Format: Values: The value is returned with 6 decimal places. A value of 0.000001 degree is on the order of 0.1 meter of dis h's surface. ( tance on the eart The correspondence between degrees and length on th e earth's surface varies becaus e the earth is an irregular ellipsoid.) Example: ! U1 setvar "device.position.latitude" "6.123456" . Command Structure on page 573 Note • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

673 SDG Printer Commands 673 device.position.longitude device.position.longitude This printer setting retrieves /sets the geographic longitudinal position. Commands Details This command sets the longitudi nal position of the printer. setvar ! U1 setvar "device.position.longitude" "value" Format: 0.0 Values: The value is in decimal degrees from . to +/-180.0 g point number. The value is saved as a double p recision floatin 0.0 Default: tudinal position of the printer . . This command retrieves the longi getvar ! U1 getvar "device.position.longitude" Format: Values: The value is returned with 6 dec imal places. A value of 0.00000 1 degree is on the order of no more than 0.1 meter of distance on the earth's surface. (The correspondence betw een degrees and length on the earth's surface varies from approximately 0.1 me ter at the equator to 0.0 at th e poles.) Example: ! U1 setvar "device.position.longitude" "25.123456" on page 573 . Command Structure Note • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

674 SGD Wireless Commands 674 device.print_2key device.print_2key 2key report). Causes the printer to print the mobile con figuration report (co mmonly known as a Commands Details setvar Format: ! U1 setvar "device.print_2key" "" (the set value is ignored) do Format: ! U1 do "device.print_2key" Supported Devices • iMZ220, iMZ320 • QLn320, QLn220 •ZQ510, ZQ520 • ZR638, ZR628 Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see P1099958-001 Programming Guide 1/31/18

675 SGD Printer Commands 675 device.print_reprogram_2key device.print_reprogram_2key This command determines whether the printer will print a config uration label or 2key report after the printer restarts following a firmware update. ort after the printer is When set to "off" the printer will not print the c onfiguration label or 2key rep updated. Commands Details This command sets whether a two- key report is printed or not. setvar Format: ! U1 setvar "device.print_reprogram_2key" "value" Values: "yes" "no" "no" Default: nt setting for processing two-k ey report after printer firmware is This command retrieves the curre getvar reprogrammed. ! U1 getvar "device.print_reprogram_2key" Format: Result: yes no Example: of the two-key report after prin This example disables printing ter firmware is reprogrammed. ! U1 setvar "device.print_reprogram_2key" "no" Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

676 SGD Wireless Commands 676 device.product_name_submodel device.product_name_submodel odel, which is derived from the Retrieves the product name subm ion Code (PCC, Printer Configurat also known as the SKU). Commands Details getvar Format: ! U1 getvar "device.product_name_submodel" "hc" Result: QLn Healthcare printers = "none" nd all other printers QLn Standard printers a = Supported Devices • ZD500R • iMZ 220, iMZ 320 • QLn220, QLn320, QLn420 • ZT210, ZT220, ZT230 • ZT410, ZT420 •ZQ510, ZQ520 • ZR628, ZR638 Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

677 SGD Wireless Commands 677 device.prompted_network_reset device.prompted_network_reset Reinitializes the wireless radi int server (wir ed or wireless) when the Wireless or o card and the pr ning. The command also causes any wireless radio card in the Wireless Plus print server is run printer to re-associate to the wireless network. ~WR command. This command is equivalent to the on page 416 Commands Details setvar Format: ! U1 setvar "device.prompted_network_reset" "value" Values: "yes" = causes the network to reset no changes to the network "no" = Supported Devices • iMZ220, iMZ320 • QLn220, QLn320, QLn420 • ZD410, ZD420 • ZD500, ZD500R •ZQ510, ZQ520 • ZR628, ZR638 • ZT210, ZT220, ZT230 • ZT410, ZT420 Note • on page 1393 SGD Command Support For printer support, see • . • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 Programming Guide P1099958-001

678 SGD Printer Commands 678 device.reset device.reset ter to perform a soft reset. For This command instructs the prin SGD Command printer support, see Support on page 1393 . Commands Details This command instructs the pri nter to perform a soft reset. setvar Format: ! U1 setvar "device.reset" "" Note • . on page 986 For details on SGD command structure, see Command Structure performs a soft reset. setvar Example: In this example, the ! U1 setvar "device.reset" "" P1099958-001 Programming Guide 1/31/18

679 SGD Printer Commands 679 device.restore_defaults device.restore_defaults This command restores to the def ault of all settings within the specified SGD branch. For printer SGD Command Support onpage1393 . support, see Commands Details specified branch. This command restores to the def ault of all settings within the setvar Format: ! U1 setvar "device.restore_defaults" " value " Values: "ip" = default all parameters in the IP branch "wlan" = default all parameter s in the wlan branch "internal_wired" = default all paramet ers in the internal wired branch This command restores the defa the specified branch. ult setting for all items within do Format: ! U1 do "device.restore_defaults" " value " Values: "ip" = default all parameters in the ip branch "wlan" = default all parameter s in the wlan branch "internal_wired" = default all paramet ers in the internal wired branch . on page 1053 For details on SGD command structure, see Note • Command Structure setvar examples restor These do and Example: e the network card’s wlan parameters to their default values. ! U1 do "device.restore_defaults" "wlan" ! U1 setvar "device.restore_defaults" "wlan" 1/31/18 Programming Guide P1099958-001

680 SGD Wireless Commands 680 device.rewinder_installed device.rewinder_installed Determines if a rewind option is installed on the printer. e as the Liner Take-Up Option. The Rewind Option is not the sam Note • Commands Details getvar Format: ! U1 getvar "device.rewinder_installed" a rewind option is installed "yes" = Result: "no" = no rewind option installed Supported Devices • QLn320, QLn220 •ZQ510, ZQ520 • ZR638, ZR628 • ZT210, ZT220, ZT230 • ZT410, ZT420 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

681 SGD Wireless Commands 681 device.save_2key device.save_2key Sets or retrieves the curr ent device.save_2key setting. legacy mobile printers. ginally used on ation listing or The two-key report is a configur Note • Commands Details setvar Format: ! U1 setvar "device.save_2key" "value" Values: ver a two-key Two-key diagnostics reports will be saved to Flash memory whene "on" = will be named 2KEY.TXT. report is printed. The file Two-key reports will not b "off" = e saved to Flash memory. "now" = t on demand and save This choice can be used to generate a two-key diagnostics repor state of this it to Flash memory (save only, does not print). This choice doe s not alter the "on"/"off" SGD. Default: "on" getvar Format: ! U1 getvar "device.save_2key" Supported Devices • iMZ220, iMZ320 • QLn320, QLn220, QLn420 •ZQ510, ZQ520 • ZR638, ZR628 This example instructs the printer to generate a two-key diagns tics report and save it to Example: Flash memory. ! U1 setvar "device.save_2key" "now" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

682 SGD Wireless Commands 682 device.sensor_select device.sensor_select Determines which media sensor will be used. This command is similar to the ^JS ZPL command. Commands Details setvar ! U1 setvar "device.sensor_select" "value" Format: Values: "reflective" "transmissive" "reflective" Default: getvar ! U1 getvar "device.sensor_select" Format: Supported Devices • ZD410, ZD420 • ZD500 • ZT230, ZT220, ZT210 • ZT410, ZT420 Note • SGD Command Support • For printer support, see on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

683 SGD Wireless Commands 683 device.serial_number.option_board_date device.serial_number .option_board_date Returns the date the opt ion board was made. This command is functional only on printers that had their opti Note • on board manufacturing date programmed when they were create d. Older printers that do not h ave the option board creation will return a date programmed or empty string. "?" Commands Details getvar Format: ! U1 getvar "device.serial_number.option_board_date" Result: a date in mm/dd/yyyy format. Supported Devices • QLn220, QLn320, QLn420 • ZD410, ZD420 •ZQ510, ZQ520 • ZT210, ZT220, ZT230 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

684 SGD Wireless Commands 684 device.serial_numbers.control_panel_date device.serial_number s.control_panel_date Returns the date the c ontrol panel was made. rol panel manufacturing date This command is functional only on printers that had their cont Note • programmed when they were create d. Older printers that do not h ave the control panel creation date programmed or empty string. "?" will return a Commands Details getvar Format: ! U1 getvar "device.serial_numbers.control_panel_date" a date in mm/dd/yyyy format. Result: Supported Devices • QLn220, QLn320, QLn420 • ZD410, ZD420 •ZQ510, ZQ520 • ZT210, ZT220, ZT230 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

685 SGD Wireless Commands 685 device.serial_numbers.mlb_date device.serial_numbers.mlb_date Returns the date the main l ogic board (MLB) was made. This command is functional only Note • on printers that had their MLB manufacturing date programmed when they were create d. Older printers that do not h ave the MLB creation date "?" programmed will return a or empty string. Commands Details getvar Format: ! U1 getvar "device.serial_numbers.mlb_date" a date in mm/dd/yyyy format. Result: Supported Devices • QLn220, QLn320, QLn420 • ZD410, ZD420 •ZQ510, ZQ520 • ZT210, ZT220, ZT230 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

686 SGD Printer Commands 686 device.serial_numbers.processor device.serial_numbers.processor Returns the unique main processor ID. Getvar To have the printer return t he current setting value: ! U1 getvar "device.serial_numbers.processor" Supported Printers • ZD410, ZD420 • ZD500R, ZD510, ZD511 •ZD620 • ZQ310, ZQ320 • ZQ510, ZQ520 • ZT210, ZT220, ZT230, • ZT510 • ZT610, ZT620 Notes • For specific product support, see xref on page xxx . • For details on command structure, see . xref on page yyy Programming Guide P1099958-001 1/31/18

687 687 device.set_clock_to_build_date device.set_clock_to_build_date Enables or disables a lower bo und of the firmware build date fo r the rtc.date SGD. If enabled, when the printer powers up and it finds and RTC dat e earlier than the firmware build date, the firmware build date. it will set the RTC date to Commands Details setvar ! U1 setvar "device.set_clock_to_build_date" "value" Values: "enabled" "disabled" Default: "enabled" getvar ! U1 getvar "device.set_clock_to_build_date" Supported Devices • iMZ220, iMZ320 • QLn220, QLn320 •ZQ510, ZQ520 • ZD620 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Note • • For printer support, see SGD Command Support on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

688 SGD Printer Commands 688 device.slot_1 device.slot_1 This command retrieves the type of board installed in the botto m slot of a ZT400 series printer, or in the single expansion slot of a ZT200 series printer. Commands Details m slot of a ZT400 series printer, or of board installed in the botto This command retrieves the type getvar ZT200 series printer.. the expansion slot of a ! U1 getvar "device.slot_1" Format: Values: "empty" = no board installed ications board is installed a parallel commun "parallel" = a wired PrintServer board is installed "wired" = "wireless" = a wireless PrintServe r board is installed Supported Devices • ZT400 series • ZT200 series Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

689 SGD Printer Commands 689 device.slot_2 device.slot_2 of board installed in the botto m slot of a ZT400 series printer. This command retrieves the type Commands Details This command retrieves the type of board installed in the botto m slot. getvar ! U1 getvar "device.slot_2" Format: Values: "empty" = no board installed "parallel" = a parallel commun ications board is installed "wired" = a wired PrintServer board is installed "wireless" = a wireless PrintServer board is installed Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

690 SGD Printer Commands 690 device.super_host_status device.super_host_status mat. The printer re iption information in XML for This command returns printer descr turns information on format parameters, object directories, individual object dat a, and print stat us information. ^HZA ZPL command. This command is equivilent to the Commands Details getvar Format: ! U1 getvar "device.super_host_status" Result: Information on format parameters, object directories, individual object data, and print status information. Note • • For printer support, see SGD Command Support on page 1393 . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

691 SGD Printer Commands 691 device.syslog.clear_log device.syslog.clear_log syslog.entries SGD. Any log messa ges previously sent to an ip address This setting clears the local are not changed. Commands Details Clears the local syslog file. setvar ! U1 setvar "device.syslog.clear_log" "" Format: Values: NA Default: NA Clears the local syslog file. do ! U1 do "device.syslog.clear_log" "" Format: NA Values: NA Default: d later. ers with firmware Vxx.19.7Z an Supported Devices Link-OS print Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

692 SGD Printer Commands 692 device.syslog.c onfiguration device.syslog.configuration This setting specifies the locat ion for the syslog messages to be recorded. The location may be erver IP address. ter, or a syslog s either on the prin Commands Details Specifies the location for t he syslog messages to be recorded. setvar Format: ! U1 setvar "device.syslog.configuration" "value" limited to 1000 characters. En tries must be in the form of Values: A list of configuration entries, "severity,destination" and delimited with a semi-colon. SEVERITY - The severity levels, i n decreasing severity order, a re: • emerg • alert • crit • • err • warning • notice • info • debug When you specify the severity level, the lowest specified sever ity and all severity levels above it will be recorded. For example, if you specify debug , you will get all severit y level reports. If crit , and , you will get only severity reports. emerg alert you specify crit , DESTINATION - "local" or a syslog server IP address • Note • When configuring the local syslog report, the first local entry is used and duplicate requests to local are ignored. To configure remote syslog messa ges you will fir st need a syslo g server to accept them. "" Default: Retrieves the configuration string setting. getvar Format: ! U1 getvar "device.syslog.configuration" Supported Devices Link-OS print ers with firmware Vxx.19.7Z an d later. rgency syslog messages be location, debug ing sent to an IP Example 1 • This example has eme (and all higher s everity) syslog messages to another IP address , and critical and higher syslog messages to local storage (either a file or SGD). ! U1 setvar "device.syslog.configuration" "emerg,128.168.0.1;debug,192.168.0.2;crit,local;" ssages to the l ocal file, and ignore Example 2 • This example will only report e megency syslog me r critical and higher reports. the duplicate location request fo ! U1 setvar "device.syslog.configuration" "emerg,local;crit,local;" This is an example of Example 3 • a syslog report stor ote that ed at E:SYSLOG.TXT. N device.syslog.save_local_file must be enabled. Feb 17 14:28:17: [Power][Informational][0X14] Power On Feb 17 14:28:19: [Print][Informational][0XF] PQ Job Completed Feb 17 14:28:20: [Print][Informational][0XF] PQ Job Completed Feb 17 14:28:20: [Weblink][Informational][0X1005] Weblink disabled Feb 17 14:28:34: [Network][Notice][0X1C] Cold Start Programming Guide 1/31/18 P1099958-001

693 SGD Printer Commands 693 device.syslog.c onfiguration ication monitoring an IP eport from a syslog server appl Example 4 • This is an example of a syslog r address. Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

694 SGD Printer Commands 694 device.syslog.enable device.syslog.enable This printer setting enables syslog messages. es is specified in device.syslo The destination of syslog messag g.configuration. Important • Commands Details Enables or disables syslog. setvar ! U1 setvar "device.syslog.enable" "value" Format: Values: "on" "off" Default: "off" Displays whether syslog is enabled. getvar Format: ! U1 getvar "device.syslog.enable" d later. Supported Devices Link-OS print ers with firmware Vxx.19.7Z an e value set to . "on" Example: This setvar example shows th ! U1 setvar "device.syslog.enable" "on" Note • SGD Command Support • For printer support, see on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

695 SGD Wireless Commands 695 device.syslog.entries device.syslog.entries This printer setting displays previously sent syslog messages. If there are no previously sent syslog messages, an empty st ring is returned. Important • The destination of syslog messag es is specified in device.syslo g.configuration. Commands Details Displays previously sent syslog messages. getvar Format: ! U1 getvar "device.syslog.entries" inter feature, The format of each syslog messa the severity level, the unique ge includes the pr message code, and the unique Engl ore advanced systems ish message. This allows for m administrators to filter particular messages of interest. Syslo g currently supports unique messages for most printer alerts , WebLink, and so me USB Host me ssages. d later. Supported Devices Link-OS print ers with firmware Vxx.19.7Z an the value of t example shows he syslog file. Example: This getvar ! U1 getvar "device.syslog.entries" returns Feb 17 14:28:17: [Power][Informational][0X14] Power On Feb 17 14:28:19: [Print][Informational][0XF] PQ Job Completed Feb 17 14:28:20: [Print][Informational][0XF] PQ Job Completed Feb 17 14:28:20: [Weblink][Informational][0X1005] Weblink disabled Feb 17 14:28:34: [Network][Notice][0X1C] Cold Start Note • • For printer support, see SGD Command Support on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

696 SGD Printer Commands 696 device.syslog.log_max_file_size device.syslog.log_max_file_size This printer setting specifies t he maximum size o f the local sy slog file. Commands Details ze to the specified value. Sets the maximum syslog file si setvar ! U1 setvar "device.syslog.log_max_file_size" "value" Format: Values: A numerical value between 10000 and 400000 "10000" Default: Returns the maximum allowe d size of the syslog file. getvar ! U1 getvar "device.syslog.log_max_file_size" Format: d later. Supported Devices Link-OS print ers with firmware Vxx.19.7Z an . "200000" e value set to Example: This setvar example shows th ! U1 setvar "device.syslog.log_max_file_size" "200000" Note • SGD Command Support • For printer support, see on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

697 SGD Printer Commands 697 device.syslog.save_local_file device.syslog.save_local_file This command saves the content s of the local sysl og to E:SYSLOG .TXT. Important • The local destination must be specified in device.syslog.config uration. Commands Details contents of the lo Specifies whether to save the to E:SYSLOG.TXT. cal syslog file setvar ! U1 setvar "device.syslog.save_local_file" "value" Format: Values: "yes" = the local syslog is saved to E:SYSLOG.TXT the local syslog is not saved "no" = Default: "no" Displays the setting for saving the local syslog file to E:SYSL OG.TXT. getvar ! U1 getvar "device.syslog.save_local_file" Format: Supported Devices Link-OS print d later. ers with firmware Vxx.19.7Z an e value set to This . Example: "yes" setvar example shows th ! U1 setvar "device.syslog.save_local_file" "yes" Note • SGD Command Support • For printer support, see on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

698 SGD Printer Commands 698 device.applicator.data_ready_activation device.applicator.da ta_ready_activation Sets whether the applicator por t DATA READY signal is asserted for all formats, or only for printing formats. Commands Details setvar Format: ! U1 setvar " device.applicator.data_ready_activation " "value" Values: "print" = indicates the data ready signal is activated on printing labels only. is activated on all formats. indicates the data ready signal "format" = Default: "format" Example: ! U1 setvar " device.applicator.data_ready_activation " "print" getvar Format: ! U1 getvar "device.applicator.data_ready_activation" "print" Result: Supported Devices • ZT610, ZT620 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

699 SGD Printer Commands 699 device.applicator.error_on_pause device.applicator.error_on_pause Sets whether device applicat or errors will be displayed. Commands Details setvar Format: ! U1 setvar "device.applicator.error_on_pause" "value" Values: "enabled" = device applicator e rrors will be display ed, and SERVICE REQU IRED will be asserted. "disabled" t be displayed. ator errors will no = device applic Default: "enabled" ! U1 setvar "device.applicator.error_on_pause" "enabled" Example: getvar Format: "device.applicator.error_on_pause" ! U1 getvar "enabled" Result: Supported Devices • ZT610, ZT620 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

700 SGD Printer Commands 700 device.applicator.start_print_mode device.applicator.start_print_mode Selects the applicat or port START PRINT mode of operation. Related ZPL Command: ^JJ Commands Details setvar " "value" Format: ! U1 setvar " device.applicator.start_print_mode Values: the Start Print signal does not need to be de-asserted to print the next "level" = label. As long as the Start Pr int signal is low and a label is formatted, a label prints. erted for "pulse" = asserted before it can be ass the Start Print signal must be de- the next label Default: "pulse" Example: ! U1 setvar " device.applicator.start_print_mode " "level" getvar ! U1 getvar "device.applicator.start_print_mode" Format: "level" Result: Supported Devices • ZT610, ZT620 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

701 SGD Printer Commands 701 device.applicator.voltage device.applicator.voltage Sets the output voltage of the applicator board. The value will not take effect until a reboot. Commands Details setvar device.applicator.voltage ! U1 setvar " Format: " "value" Values: "0" = off "5" = 5V "24" = 24V Default: "disabled" Example: ! U1 setvar " device.applicator.voltage " "5" getvar Format: ! U1 getvar "device.applicator.voltage" "5" Result: Supported Devices • ZT610, ZT620 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

702 SGD Printer Commands 702 device.unique_id device.unique_id er identifier. For printer supp This command retrieves the print ort, see SGD Command Support on page 1393 . Commands Details This command retrieves the est ablished printer identifier. getvar Format: ! U1 getvar "device.unique_id" Command Structure on page 573 Note • For details on SGD command structure, see . . "12345" Example: In this example, assuming the printer’s unique ID is 12345, the getvar shows ! U1 getvar "device.unique_id" P1099958-001 Programming Guide 1/31/18

703 SGD Printer Commands 703 device.unpause device.unpause This command causes a printer in Pause Mode to resume printing. The operation is identical to on the control panel of the prin pressing PAUSE y in Pause Mode. ter when the printer is alread This command is equivalent to ~PS . Commands Details setvar Format: ! U1 SETVAR "device.pause" "" Values: NA NA Default: do Format: ! U1 DO "device.unpause" "" NA Values: NA Default: Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

704 SGD Printer Commands 704 device.uptime device.uptime This command identifies the amo unt of time the printer has been powered on. The string format is: xx days, xx hours, xx minutes, a nd xx seconds. For printer supp ort, see SGD Command Support on page 1393 . Commands Details wered on. It responds in the of time the print has been po This command retrieves the amount getvar following format (days, hour s, minutes, and seconds). ! U1 getvar "device.uptime" Format: on page 573 Command Structure . Note • For details on SGD command structure, see getvar Example: In this example, the retrieves the amount of time t he printer has been turned on. ! U1 getvar "device.uptime" "00 days 02 hours 45 mins 30 secs" P1099958-001 Programming Guide 1/31/18

705 SGD Printer Commands 705 device.user_p1 device.user_p1 This command saves and retrieves user specified values. For pri nter support, see SGD Command . Support on page 1393 Commands Details This command instructs the printer to set user parameters. setvar ! U1 setvar "device.user_p1" Format: "value" Values: alphanumeric text string (1 - 20) Default: "" This command saves and retrieve s user specified parameters. getvar ! U1 getvar "device.user_p1" Format: Note • For details on SGD command structure, see Command Structure on page 573 . Example: This setvar example shows the value set to "test" . ! U1 setvar "device.user_p1" "test" result is . "test" When the setvar value is set to "test" , the getvar 1/31/18 Programming Guide P1099958-001

706 SGD Printer Commands 706 device.user_p2 device.user_p2 This command saves and retrieves user specified values. For pri nter support, see SGD Command . Support on page 1393 Commands Details This command instructs the printer to set user parameters. setvar ! U1 setvar "device.user_p2" " Format: value " Values: alphanumeric text string (1 - 20) Default: "" This command saves and retrieve s user specified parameters. getvar ! U1 getvar "device.user_p2" Format: Note • For details on SGD command structure, see Command Structure on page 573 . Example: This setvar example shows the value set to "test" . ! U1 setvar "device.user_p2" "test" result is . "test" When the setvar value is set to "test" , the getvar P1099958-001 Programming Guide 1/31/18

707 SGD Printer Commands 707 device.user_vars.set_rangedevice.user_vars.set_range device.user_vars.set_range This command compliments the device.user_vars.create command, allowing a user to change the range of a user-cr eated SGD variable. It has a similar synt ax to device.user_vars.create with the exception that n o default is specified. Commands Details ted variable. This command allows the user to c hange the range of a user-crea setvar ! U1 setvar "device.user_vars.set_range" "name:type:range" Format: Values: name • = the name of the SGD to modify 'name' as when it was created • type = Must be the same type for CHOICES and • range = x-y (for all but UPDOWNCHOIC ES and CHOICES) or a,b,c,d (for UPDOWNCHOICES) If no range is specified then i • t will delete whatever range is currently specified. Default: NA Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ Example: This example modifies my_var to: device.user_vars.my_var : b , Choices: a,b,c,d,e ! U1 setvar "device.user_vars.set_range" "my_var:CHOICES:a,b,c,d,e" Note • For printer support, see • SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

708 SGD Printer Commands 708 device.user_vars.creat edevice.user_vars.create device.user_vars.create This command creates a user vari ified name, t ype, range, and default value. The able with the spec root SGD location for user variables is "device.user_vars" . Commands Details This command instructs the printer to create a user variable wi th the specified parameters. setvar Format: ! U1 setvar " device.user_vars.create " name:type:range:defaultValue " " Values: = the name of the SGD to appear in device.user_vars. The name can be anything from 1 to 64 print - name • with '_'. (e.g. able ASCII characters. Any '.' within the name will be replaced will be changed "john.doe" to "john_doe” . The name must be unique in the dev ice.user_vars branch or it will not be created. The name will be converted to lower case. • type = one of STRING, INTEGER, DOUBL E, CHOICES, UPDOWNCHOICES, UPDO WNINTEGER, one of these types or the variab UPDOWNDOUBLE. The type must be le will not be created. • the data that can be stored. If the STRING - For strings the range i ndicates the min/max length of range is left blank, the default r 1024. There is no maximum string length, ange is a string length of 0- to the variables the user sh however, if large data is placed in ould be aware that system memory and ings larger than available sys tem memory will not be stored. Values performance will be affected. Str should attempt to stay around, or below, 5K. • INTEGER/UPDOWNINTEGER - For in tegers the range can be any numbe r expressed by a 32-bit range of -32768 to 32767 will be used. integer, signed or unsigned . If the range is left blank then a • DOUBLE/UPDOWNDOUBLE - A double can be any value within the rang e of +/–1.7e308. If the range is left blank then a range of -32768.0 to 32767.0 will be used. • CHOICES/UPDOWNCHOICES - Choices mu st be specified in a comma de limited list. The range cannot be blank if the type is CHOICES or UPDOWNCHOICES. range ype. Some types will create = Expressed as x-y. The range of a variable depends upon the t • default ranges, while others will ge is invalid or not specified. fail to be created if the ran • default = the default value for the variable. The value must fall with in the range specified or the variable will not be created. If the type is INTEGER, UPDOWNINTEGER, DOU BLE, UPDOWNDOUBLE the t value will be an empty string if it is not spec - default value will be 0 if not specified. For STRING the defaul it must be one of the choices ified. CHOICES and UPDOWNCHOICES must have a default value and within the specified range. All four parts of the creation string must be present (some can • be empty) meaning that there must be three delimiter characters (':') present. There is no error sho wn or indicated otherwise when the variable is not created for some reason. If the variable is not created one of the rules listed above has been violated. - Any user variables will be delet ed from the device.user_vars br anch on a power cycle (they won't be rec • reated on the next power up). will restore the consumers back • to their defaulted values and will not Defaulting the user_vars branch remove them from the user_vars branch. Default: NA Supported Devices • iMZ 220™, iMZ 320™ • QLn220™, QLn320™, QLn420™ • ZT210™, ZT220™, ZT230™ P1099958-001 Programming Guide 1/31/18

709 SGD Printer Commands 709 vice.user_vars.create device.user_vars.createde To create a user variable named userVar1 that is an integer with a minimum of 1, a Example: maximum of 10, and a default/initial value of 5, issue this com mand: ! U1 setvar "device.user_vars.create" "userVar1:INTEGER:1-10:5" After issuing the above device.user_vars.userVar1 SGD will be present “create” command the in an ALLCV response. After issuing the above “create” command the device.user_vars.userVar1 SGD may be set via: " 2 " ! U1 setvar " device.user_vars.userVar1 " command the “device.user_vars. userVar1” SGD may be retrieved After issuing the above “create” via: device.user_vars.userVar1 ! U1 getvar " " Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

710 SGD Printer Commands 710 device.xml.enable device.xml.enable This command enables and disables language parsing support for XML. When enabled (on), the printer will parse bot h ZPL and XML. When disabled (off), the p rinter will not par se XML data. For . printer support, see SGD Command Support onpage1393 Commands Details This command instructs the print er to disable or enable the lan guage parsing support for XML. setvar " ! U1 getvar "device.xml.enable" " value Format: Values: "on" = enables language parsing support for XML "off" = disables language parsing support for XML on Default: This command enables and disables language parsing support for XML. getvar Format: ! U1 getvar "device.xml.enable" For details on SGD command structure, see . Command Structure on page 573 Note • Example: This setvar example shows the language parsing support for XML set to "on" . ! U1 setvar "device.xml.enable" "on" getvar When the setvar value is set to "on" , the result is language parsing support for XML set to "on" . Programming Guide P1099958-001 1/31/18

711 SGD Printer Commands 711 device.feature.lighted_arrows device.feature.lighted_arrows Indicates if the Lighted A rrows hardware is installed. Commands Details getvar ! U1 getvar "device.feature.lighted_arrows" Format: Result: "not available" = lights are not available for this printer "present" = lights are installed "not present" = lights are not installed **** Note • Supported Devices • ZT610, ZT620 Note • on page 1393 • For printer support, see SGD Command Support . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

712 SGD Printer Commands 712 device.light.ribbon_path_brightness device.light.ribbon_path_brightness for the ribbon path LED. Sets the brightness level Commands Details setvar device.light.ribbon_path_brightness " "value" ! U1 setvar " Format: Values: "off" "low" "medium" "high" "high" Default: ! U1 setvar " " "low" Example: device.light.ribbon_path_brightness getvar Format: ! U1 getvar "device.light.ribbon_path_brightness" Result: "low" Supported Devices • ZT510 • ZT610, ZT620 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

713 SGD Printer Commands 713 device.light.media_path_brightness device.light.media_path_brightness for the media path LED. Sets the brightness level Commands Details setvar device.light.media_path_brightness " "value" ! U1 setvar " Format: Values: "off" "low" "medium" "high" "high" Default: ! U1 setvar " " "low" Example: device.light.media_path_brightness getvar Format: ! U1 getvar "device.light.media_path_brightness" Result: "low" Supported Devices • ZT510 • ZT610, ZT620 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

714 SGD Printer Commands 714 display.backlight display.backlight y on printers with a This parameter determines if the printer display backlight will be active. Valid onl display installed. Commands Details er to turn on or This command instructs the print off the backli ght display. setvar "value" ! U1 setvar "display.backlight" Format: Values: on, off Default: on This command returns if the display backlight is on or off.. getvar ! U1 getvar "display.backlight Format: . Example: This example sets the backlight display to "on" ! U1 setvar "display.backlight" "on" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

715 SGD Printer Commands 715 display.backlight_on_time display.backlight_on_time This command sets the amount of t ime before the backlight turns off. Valid only on printers with a display installed. Commands Details This command sets the display length in seconds. setvar Format: ! U1 setvar "display.backlight_on_time" "time" Values: 0-8191 Default: 0 he backlight will remain on. If the value is set to 0, t Note • splay length in seconds. This command returns the di getvar ! U1 getvar "display.backlight_on_time" Format: value set to one mi Example: This setvar example shows the nute (60 seconds). ! U1 setvar "display.backlight_on_time" "60" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

716 SGD Printer Commands 716 display.batch_counter display.batch_counter l be displayed on the printer’s Sets whether batch counters wil control panel. Commands Details setvar ! U1 setvar "display.batch_counter" "value" Format: Values: "enabled" = batch counters will be displayed batch counters will not be displayed "disabled" = "disabled" Default: ! U1 setvar "display.batch_counter" "enabled" Example: getvar ! U1 getvar "display.batch_counter" Format: "enabled" Result: Supported Devices • QLn220, QLn320, QLn420 • ZD500 •ZQ510, ZQ520 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Note • For printer support, see • SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see 1/31/18 Programming Guide P1099958-001

717 SGD Printer Commands 717 display.language display.language This command sets the display la nguage for the control panel. T his is equivalent to the ^KL ZPL command. Commands Details This command sets the display language for the front panel. setvar ! U1 setvar "display.language" "language" Format: Values: "english" "spanish" "french "german" "italian" "norwegian" "portuguese" "swedish" "danish" "spanish2" (same as Spanish) "dutch" "finnish" "japanese" "korean" "simplified chinese" "traditional chinese" "russian" "polish" "czech" "romanian" Default: "english" This command returns the cu rrently set display language. getvar Format: ! U1 getvar "display.language" ak. These values are only supported on the ZT200 Seri es, Xi4, RXi4, ZM400/ ZM600, and RZ400/RZ600 printers. Example: This setvar example shows the value set to "dutch" . ! U1 setvar "dsplay.language" "dutch" Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

718 SGD Printer Commands 718 display.load_card display.load_card This command loads a specific card from a WML file. Commands Details setvar Format: ! U1 setvar "display.load_card" "value" Values: A valid WML filename and card within the WML filename. The card name is Note • case sensitive. Example: ! U1 setvar "display.load_card" "BLUETOOTH.WML#bluetooth2" Note • SGD Command Support • For printer support, see on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

719 SGD Wireless Commands 719 display.password.level display.password.level Controls when to display the pass word WML card on the LCD displ ay. Commands Details setvar Format: ! U1 setvar "display.password.level" "value" Values: ld is to be "all" - to enter a password when a fie The user will always be prompted modified. "none" - enter a passwor d on the LCD di splay. The user will not be prompted to "selected" - The user will be prompt ed to enter a passwo rd only if the WML c ard contains a password ="on" attri ange a setting. attempts to ch bute and the user Default: QLn420, QLn320 Healthcare , and QLn220 Healthcare "selected" - "none" - all other platforms getvar Format: ! U1 getvar "display.password.level" Supported Devices • QLn220, QLn320, QLn420 • ZT230 • ZT410, ZT420 • ZD500 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

720 SGD Wireless Commands 720 display.root_wml display.root_wml s which control file is first processed by the printer’s front panel. This command specifie Commands Details setvar Format: ! U1 setvar "display.root_wml" "value" Values: Any file name with a maximum of 128 characters in length. Default: Z:INDEX420.WML • for the QLn420 printers • Z:INDEX320.WML for the QLn220 and QLn320 printers • for all other printers Z:INDEX.WML Z:INDEX.WML is used. on power-up, then "" If the value is getvar Format: ! U1 getvar "display.root_wml" Supported Devices • QLn220, QLn320, QLn420 • ZR638 • ZR628 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

721 SGD Printer Commands 721 display.text display.text This command retrieves the text data that is bei ng used on the printer’s LCD. For printer support, see SGD Command Support onpage1393 . Commands Details s on the printe t data that appear r’s LCD. This command retrieves the tex getvar Format: ! U1 getvar "display.text" on page 573 . Command Structure Note • For details on SGD command structure, see getvar Example: In this example, the displays text content that appears on the printer’s LCD. ! U1 getvar "display.text" "PRINTER READY V60.16.4Z" P1099958-001 Programming Guide 1/31/18

722 SGD Printer Commands 722 file.capture_response.destination file.capture_response.destination control panel. Sets whether batch counters wil l be displayed on the printer’s Commands Details setvar " "value" file.capture_response.destination ! U1 setvar " Format: Values: "printer_file" = to the printer’s memory captured files will be written to a USB storage device captured files will be written "usb_file" = "printer_file" Default: ! U1 setvar " " "usb_file" file.capture_response.destination Example: getvar ! U1 getvar "file.capture_response.destination" Format: "usb_file" Result: Supported Devices • iMZ220, iMZ230 • QLn220, QLn320, QLn420 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Note • on page 1393 SGD Command Support . • For printer support, see • For details on SGD command structure, see Command Structure on page 573 . P1099958-001 1/31/18 Programming Guide

723 SGD Printer Commands 723 head.resolution.in_dpi head.resolution.in_dpi Returns the resolution of the p rint head in dots per inch as an integer. Commands Details getvar ! U1 getvar "head.resolution.in_dpi" Format: Values: '203', '300', or '600' Supported Devices • iMZ220, iMZ230 • QLn220, QLn320, QLn420 • ZD500 •ZQ510, ZQ520 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

724 SGD Printer Commands 724 ezpl.head_close_action ezpl.head_close_action This command sets what happens to the media after the printhead is closed and the printer is taken out of pause. This command is similar to the ^MF ZPL command. Commands Details er on which action to perform w head is closed. hen the print This command instructs the print setvar ! U1 setvar "ezpl.head_close_action" "value" Format: Values: = feed to the first web after sensor "feed" "calibrate" = is used to force a label length measurement and adjust the m edia and ribbon sensor values. th. Depending on the size of th e label, the printer "length" = is used to set the label leng feeds one or more blank labels. = no media feed "no motion" = short calibration "short cal" Default: "calibrate" This command returns the current ly set action to be performed w hen the printhead is closed. getvar Format: ! U1 getvar "ezpl.head_close_action" Example: This setvar example sets the ca libration method to short calibration. ! U1 setvar "ezpl.head_close_action" "short cal" Note • • For printer support, see SGD Command Support on page 1393 . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

725 SGD Printer Commands 725 ezpl.label_length_max ezpl.label_length_max This command sets the maximu m label length in inches. This command is equivalent to the ^ML ZPL command. Commands Details This command sets the maxi mum label length in inches. setvar ! U1 setvar "ezpl.label_length_max" "value" Format: Values: 1.0 to 39.0 "39" Default: nt maximum label length setting This command retrieves the curre in inches. getvar ! U1 getvar "ezpl.label_length_max" Format: Example: This example sets the labe l length to 6.2 inches. ! U1 setvar ezpl.label_length_max" "6.2" ! U1 setvar ezpl.label_length_max" "14" to one decimal place. Note • Values can be expressed Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see P1099958-001 Programming Guide 1/31/18

726 SGD Printer Commands 726 ezpl.label_sensor ezpl.label_sensor This command sets the pa per out threshold value. Commands Details This command sets the paper out threshold value. setvar ! U1 setvar "ezpl.label_sensor" "value" Format: Values: "0" to "255", interger values only Default: "70" lue. This command retrieves the currently set paper out threshold va getvar ! U1 getvar "ezpl.label_sensor" Format: . Example: This setvar example shows the value set to 50 ! U1 setvar "ezpl.label_sensor" "50" Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see P1099958-001 Programming Guide 1/31/18

727 SGD Printer Commands 727 ezpl.manual_calibration ezpl.manual_calibration This command initiates a manual calibration sequence. Commands Details tion. This command instructs the pri nter to initiate a manual calibra setvar ! U1 setvar "ezpl.manual_calibration" "" Format: Values: NA NA Default: nter to initiate a manual calibra This command instructs the pri tion. do ! U1 do "ezpl.manual_calibration" "" Format: Values: NA NA Default: Note • on page 1393 • For printer support, see SGD Command Support . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

728 SGD Printer Commands 728 ezpl.media_type ezpl.media_type This command specifies t he media type being used. ^MN ZPL command. This command is similar to the Commands Details a type used in the printer. This command sets the medi setvar ! U1 setvar "ezpl.media_type" "value" Format: Values: "continuous" "gap/notch" "mark" Default: "gap/notch" This command returns the current media type setting. getvar ! U1 getvar "ezpl.media_type" Format: e media type to Example: This setvar example sets th . "continuous" ! U1 setvar "ezpl.media_type" "continuous" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

729 SGD Printer Commands 729 ezpl.power_up_action ezpl.power_up_action This command sets what happens t o the media when the printer is powered on. ZPL command. This command is similar to the ^MF Commands Details This command sets the media mo tion and calibration setting at p rinter power up. setvar ! U1 setvar "ezpl.power_up_action" "value" Format: Values: "calibrate" "feed" "length" "no motion" "short cal" Default: "calibrate" This command returns the current power up media motion and cali bration settings. getvar Format: ! U1 getvar "ezpl.power_up_action" setvar Example: This "length" example sets the power up calibration setting to . ! U1 setvar "ezpl.power_up_action" "length" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

730 SGD Printer Commands 730 ezpl.print_method ezpl.print_method This command sets the print method. ^MT. This command is similar to Commands Details This command sets the print method. setvar ! U1 setvar "ezpl.print_method" "value" Format: Values: "thermal trans" "direct thermal" Default: "thermal trans" This command retrieves the current print method setting. getvar ! U1 getvar "ezpl.print_method" Format: "direct thermal" Example: This setvar example sets the print method to . ! U1 setvar ezpl.print_method" "direct thermal" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 . Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

731 SGD Printer Commands 731 ezpl.print_width ezpl.print_width This command sets the pr int width of the label. Commands Details This command sets the print width.. setvar "value" ! U1 setvar "ezpl.print_width" Format: Values: any printhead width the width of the printhead Default: This command retrieves the current print width setting. getvar ! U1 getvar "ezpl.print_width" Format: This setvar example sets the pr int width value to 3. Example: ! U1 setvar "ezpl.print_width" "3" Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

732 SGD Printer Commands 732 ezpl.reprint_mode ezpl.reprint_mode This command turns on/ off the reprint mode. Commands Details This command instructs the print er to turn on or off reprint mo de. setvar ! U1 setvar "ezpl.reprint_mode" "value" Format: Values: "on" "off" "off" Default: This command retrieves the cu rrent setting for reprint mode. getvar ! U1 getvar "ezpl.reprint_mode" Format: Supported Devices • iMZ220 / iMZ320 • QLn220 / QLn320 • ZD500 • ZT200 series • ZT400 series This setvar example turns reprint mode on. Example: ! U1 setvar "ezpl.reprint_mode" "on" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

733 SGD Printer Commands 733 ezpl.take_label ezpl.take_label This command sets the take label position. Commands Details setvar This command sets the take label position . ! U1 setvar "ezpl.take_label" "value" Format: Values: "0" to "255" Default: "50" the take label position. This command retrieves getvar getvar "ezpl.take_label" Format: Example: This example sets the ta ke label position to 175. ! U1 setvar "ezpl.take_label" "175" Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

734 SGD Printer Commands 734 ezpl.tear_off ezpl.tear_off This command retrieves the tear-off position. Commands Details This command sets the tear-off position. setvar ! U1 setvar "ezpl.tear_off" "value" Format: Values: "-120" to "120" Default: "0" This command retrieves the currently set tear-off position. getvar ! U1 getvar "ezpl.tear_off" Format: example sets the tear-off value to 110. Example: This setvar ! U1 setvar "ezpl.tear_off" "110" Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

735 SGD Printer Commands 735 file.delete file.delete or printer support, see SGD Command This command instructs the printer to delete specified files. F Support on page 1393 . Commands Details This command instructs the print er to delete specified files. do Format: ! U1 do "file.delete" "value" Values: file name Important • Be sure to always specify the memory location. For details on SGD command structure, see Note • Command Structure . on page 986 example shows the specified file to delete. Example: This do "e:abcd.zpl" ! U1 do "file.delete" Programming Guide 1/31/18 P1099958-001

736 SGD Printer Commands 736 file.dir file.dir y listing on the same port the This command displays a director ed. For printer command was receiv . support, see SGD Command Support onpage1393 Commands Details This command sets the directory name from which to retrieve fil es. setvar Format: ! U1 setvar "file.dir" "value" Values: directory letter Important • Be sure to always specify the memory location. specified dir ectory. This command retrieves a directo ry listing of the getvar Format: ! U1 getvar "file.dir" Be sure to always specify the memory location. Important • es. This command sets the directory name from which to retrieve fil do Format: ! U1 do "file.dir" "value" Values: directory letter Be sure to always specify the memory location. Important • Note • . on page 986 For details on SGD command structure, see Command Structure example shows the directory listi Example: This do . ng of the specif ied directory "R:" ! U1 do "file.dir" - DIR R:*.* - 11172192 bytes free R: RAM Programming Guide P1099958-001 1/31/18

737 SGD Printer Commands 737 file.dir_format file.dir_format This command controls the output format of the file.dir Set/Get/Do command. Commands Details This command sets the output format. setvar Format: ! U1 setvar "file.dir_format" "value" Values: "cpcl" "zpl" t. This command retrieves the curre nt setting for the output forma getvar ! U1 getvar "file.dir_format" Format: Result: "cpcl" "zpl" This command sets the output format. do Format: ! U1 do "file.dir_format" "value" Values: "cpcl" "zpl" example sets the directory format to Example: This do . CPCL ! U1 do "file.dir_format" "cpcl" Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

738 SGD Printer Commands 738 file.type file.type This command displays the contents of the specified file. For p rinter support, see SGD Command Support on page 1393 . Commands Details port the command This command instructs the print er to display t he content of a file on the same setvar was received. ! U1 setvar "file.type" "value" Format: Values: the drive letter, file name, file extension, such as R:TEST.ZPL Important • Be sure to always specify the memory location. t of a file on th e command was received. e same port th This command displays the conten do Format: ! U1 do "file.type" "value" Values: the drive letter, file name, file extension, such as R:TEST.ZPL Important • Be sure to always specify the memory location. Note • For details on SGD command structure, see Command Structure on page 573 . . "R:TEST.ZPL" This Example: example shows the value set to setvar "R:TEST.ZPL" ! U1 setvar "file.type" setvar value is set to When the R: "R:TEST.ZPL" , the contents of the file TEST.ZPL located on the drive will be displayed. P1099958-001 Programming Guide 1/31/18

739 SGD Printer Commands 739 file.run file.run This command instructs the prin ter to send a specified file to the parser. For printer support, see . SGD Command Support onpage1393 Commands Details This command instructs the print er to send a specified file to the parser. setvar Format: ! U1 setvar "file.run" "values" drive:filename.extension Values: Be sure to always specify the memory location. Important • This command instructs the print er to send a specified file to the parser. do Format: ! U1 do "file.run" "value" Values: drive:filename.extension Important • Be sure to always specify the memory location. on page 573 Note • For details on SGD command structure, see Command Structure . t.zpl" stored in RAM to the par ser. Example: This setvar example will send the file "tex ! U1 setvar "file.run" "R:text.zpl" Programming Guide 1/31/18 P1099958-001

740 SGD Printer Commands 740 formats.cancel_all formats.cancel_all The ~JA command cancels all fo rmat commands in the buffer. It a lso cancels any batches that are printing. This command is equivalent to the ZPL command. ~JA Commands Details This command cancels all fo rmat commands in the buffer. setvar "" ! U1 setvar "formats.cancel_all" Format: NA Values: NA Default: This command cancels all fo rmat commands in the buffer. do ! U1 do "formats.cancel_all" "" Format: Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

741 741 head.darkness_switch_enable head.darkness_switch_enable ch on desktop printers. Enables the darkness swit Commands Details setvar ! U1 setvar "head.darkness_switch_enable" "value" Values: = enables the darkness switch "on" "off" = disables the darkness switch Default: "on" getvar ! U1 getvar "head.darkness_switch_enable. Supported Devices • ZD410, ZD420 • ZD620 Note • on page 1393 • For printer support, see SGD Command Support . . Command Structure on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

742 742 head.darkness_switch_enable P1099958-001 Programming Guide 1/31/18

743 SGD Printer Commands 743 head.darkness_switch head.darkness_switch Indicates the value to which the darkness switch is set on the printer. Commands Details getvar ! U1 getvar "head.darkness_switch" the rear of the printer) (looking at the switch from Values: "low" is on the left = darkness switch "medium" = darkness switch is in the middle ch is on the right = darkness swit "high" Supported Devices • ZD410, ZD420 • ZD620 Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

744 SGD Wireless Commands 744 head.element_test head.element_test This command will cause the printer to immediately run the head test on all printhead elements. The command can also display the res ult of the last head element te st. Commands Details do Format: ! U1 do "head.element_test" "" getvar Format: ! U1 getvar "head.element_test" The possible getvar responses include: Values: "Head Elements OK" – All head elements passed the test. "n, n..." - ments that failed the test. a comma-separated list of ele "Initialization Failed" – the test could not start. "Failed to Attach" – the test could not start. there are no results to display. "Please Run Test" – default response if "In Progress" – The element test has been st arted but not completed yet. "Please Run Test" Default: Supported Devices •ZQ510, ZQ520 Example: ement that failed the test. This example shows a single el "86" Example: This example shows a list of elements that failed the test. "75,309,456,778,779" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

745 SGD Printer Commands 745 head.latch head.latch This command identifies if the p rinthead is open or closed. For printer support, see SGD Command Support on page 1393 . Commands Details This command retrieves the sta tus of the printh ead, open or clo sed. getvar Format: ! U1 getvar "head.latch" Values: = closed "ok" "open" = open For details on SGD command structure, see Command Structure Note • . on page 573 of the print head. Example: In this example, the getvar retrieves the status ! U1 getvar "head.latch" "ok" Programming Guide 1/31/18 P1099958-001

746 SGD Printer Commands 746 input.capture input.capture This parameter allows Input capture has three modes: capturing input data in diagnostics mode. modes can be u rint" and "run" sed to examine data received by the "print", "run", and "off". The "p printer. When in "print" mode the printer will save incoming data to fil where ??? is es named "in???.dmp", a number between 001 to 999. The printer will then print the te xt and hexadecimal representation of data bytes received instead of printing the formatted labels wh ich that data might represent. When in captured incoming data to file "run" mode the printer will save s as above, but will otherwise run the incoming data/commands normally. The capture files should be deleted from printer memory after r etrieving them. Leaving the printer in "print" "run" mode and not deleting the capt ure files will reduce the printe r’s available flash or memory. mode is the printer’s normal operating mode. Cycling power wil "off" The l also return the printer to mode. "off" This command does not captu re a network packet trace. Note • Commands Details This command sets the directory name from which to retrieve fil es. setvar Format: ! U1 setvar "input.capture" "value" Values: "print" "run" "off" Default: "off" This command retrieves the current input.capture setting value. getvar Format: ! U1 getvar "input.capture" Note • • For printer support, see SGD Command Support on page 1393 . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

747 SGD Printer Commands 747 interface.network.active.arp_interval interface.network.active.arp_interval This command changes the arp interval. Commands Details server. This command retrieves the gatew ay address of the active print setvar Format: ! U1 getvar "interface.network.active.arp_interval" "value" "0" Values: integer values from to "30" "0" Default: This command retrieves the curre nt arp interval setting, shown in minutes. getvar Format: ! U1 getvar "interface.network.active.arp_interval" changes the arp interval to three minutes. Example: In this example, the setvar ! U1 getvar "interface.network.active.arp_interval" "3" Note • • For printer support, see SGD Command Support on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

748 SGD Printer Commands 748 interface.network.a ctive.cable_type interface.network.active.cable_type This command returns the cable type of the active network, eith er 10/100BaseT, Wireless 802.11b/g, or Wireless 802.11n. Note • This command will only give a val id response once an IP address has been established. Commands Details work. nt cable type of the active net This command retrieves the curre getvar Format: ! U1 getvar "interface.network.active.cable_type" Values: "10/100BaseT" "Wireless 802.11b/g" "Wireless 802.11n" Default: NA Note • on page 1393 • For printer support, see SGD Command Support . on page 573 Command Structure . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

749 SGD Printer Commands 749 dhcp_received_host_name interface.network.active. .dhcp_received_hos interface.network.active t_name This command reports the Host Na me as assigned by the DHCP Serv er. If one is not assigned, or DHCP is not used, then t he field will be blank. id response once an IP address has been established. Note • This command will only give a val Commands Details This command reports the host name.. getvar Format: ! U1 getvar "interface.network.active.dhcp_received_host_name" Example: ! U1 getvar "interface.network.active.dhcp_received_host_name" Result: "Zebra Printer on shelf 2112" Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

750 SGD Printer Commands 750 interface.network .active.gateway interface.network.active.gateway This command retrieves the gateway address of the active print server. For printer support, see SGD Command Support on page 1393 . Commands Details This command retrieves the gatew server. ay address of the active print getvar Format: ! U1 getvar "interface.network.active.gateway" Command Structure on page 573 . Note • For details on SGD command structure, see Example: In this example, the getvar retrieves the gateway addre ss of the active print server. ! U1 getvar "interface.network.active.gateway" "10.3.5.1" P1099958-001 1/31/18 Programming Guide

751 SGD Printer Commands 751 interface.network.active.ip_addr interface.network.active.ip_addr This command retrieves the IP ad dress of the active print serve r. For printer support, see SGD Command Support on page 1393 . Commands Details r. address of the active print serve This command retrieves the IP getvar Format: ! U1 getvar "interface.network.active.ip_addr" For details on SGD command structure, see Command Structure . Note • on page 573 retrieves the IP address of the active print server. Example: In this example, the getvar ! U1 getvar "interface.network.active.ip_addr" "10.3.5.92" w 1/31/18 Programming Guide P1099958-001

752 SGD Printer Commands 752 interface.network .active.mac_addr interface.network.active.mac_addr This command retrieves the MAC a ddress of the active print serv er. For printer support, see SGD Command Support on page 1393 . Commands Details er. address of the active print serv This command retrieves the MAC getvar Format: ! U1 getvar "interface.network.active.mac_addr" Command Structure on page 573 . Note • For details on SGD command structure, see Example: In this example, the getvar retrieves the MAC address of the active print server. ! U1 getvar "interface.network.active.mac_addr" "00:07:4d:24:08:ff" P1099958-001 1/31/18 Programming Guide

753 SGD Printer Commands 753 interface.network.active.mac_raw interface.network.active.mac_raw he active print server. The raw mac address is This command identifies the RAW MAC address of t the mac address wit hout the colons ( ":" ). For printer support, see SGD Command Support on page 1393 . Commands Details This command retrieves the RAW M AC address of the active print server. getvar Format: ! U1 getvar "interface.network.active.mac_raw" Note • For details on SGD command structure, see . on page 573 Command Structure of the active print server. Example: In this example, the getvar retrieves the RAW MAC address ! U1 getvar "interface.network.active.mac_raw" "00074d2408ff" Programming Guide 1/31/18 P1099958-001

754 SGD Printer Commands 754 interface.network .active.netmask interface.network.active.netmask For printer support, see sk of the active This command retrieves the netma SGD print server. Command Support on page 1393 . Commands Details This command retrieves the netma print server. sk of the active getvar Format: ! U1 getvar "interface.network.active.netmask" Command Structure on page 573 Note • For details on SGD command structure, see . f the active print server. Example: In this example, the getvar retrieves the netmask o ! U1 getvar "interface.network.active.netmask" "255.255.255.0" Programming Guide P1099958-001 1/31/18

755 SGD Printer Commands 755 interface.network.active.protocol interface.network.active.protocol This command retrieves IP protoc ol of the active print server. For printer support, see SGD Command Support . on page 1393 Commands Details er. This command retrieves the IP pr otocol of the active print serv getvar Format: ! U1 getvar "interface.network.active.protocol" Command Structure . on page 573 Note • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

756 SGD Printer Commands 756 interface.network.act ive.protocol_error interface.network.ac tive.protocol_error This command returns the last e rror reported by the active prin t server. Commands Details rror reported by the active prin This command returns the last e t server. getvar ! U1 getvar "interface.network.active.protocol_error" Format: Note • . on page 1393 For printer support, see • SGD Command Support • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 P1099958-001 Programming Guide

757 SGD Printer Commands 757 interface.network.active.rx_errors interface.network.active.rx_errors number of packet receive error s on the active network interface. This command returns the current Commands Details s. This command returns the current number of packet receive error getvar ! U1 getvar "interface.network.active.rx_errors" Format: Result: The current number of errors. Note • SGD Command Support • For printer support, see on page 1393 . Command Structure on page 573 . • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

758 SGD Printer Commands 758 interface.network.a ctive.rx_packets interface.network.active.rx_packets This command returns the number o f packets received on the acti ve network interfa ce since the last power cycle. Commands Details f packets received on the acti This command returns the number o ve network interface since the getvar last power cycle. ! U1 getvar "interface.network.active.rx_packets" Format: Result: An integer. Note • • . on page 1393 SGD Command Support For printer support, see • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 P1099958-001 Programming Guide

759 SGD Printer Commands 759 interface.network.act ive.server_address interface.network.ac tive.server_address This command returns the network IP address of the server that provided the printer's IP address. Commands Details ding the printer’s IP address. IP address of the server provi This command returns the network getvar ! U1 getvar "interface.network.server_address" Format: Result: an IP address Note • on page 1393 • . SGD Command Support For printer support, see • For details on SGD command structure, see Command Structure on page 573 . P1099958-001 1/31/18 Programming Guide

760 SGD Printer Commands 760 interface.network.act ive.protocol_error interface.network.ac tive.protocol_error This command returns the last e rror reported by the print serve r. Commands Details he print serve rror reported by t r. This command returns the last e getvar ! U1 getvar "interface.network.active.protocol_error" Format: Result: WINS Name in Conflict Note • on page 1393 • . SGD Command Support For printer support, see • For details on SGD command structure, see Command Structure on page 573 . 1/31/18 P1099958-001 Programming Guide

761 SGD Printer Commands 761 interface.network.active.speed interface.network.active.speed This command returns the speed in megabits per second of the ac tive print server network since the last power cycle. Commands Details print server network speed sinc ower cycle. e the last p This command returns the active getvar Format: ! U1 getvar "interface.network.active.speed" Result: A number indicating megabits/second Note • on page 1393 • . SGD Command Support For printer support, see • For details on SGD command structure, see Command Structure on page 573 . P1099958-001 1/31/18 Programming Guide

762 SGD Printer Commands 762 interface.network.active.tx_errors interface.network.active.tx_errors e active print server network since This command returns the number of packet transmit errors on th the last power cycle. Commands Details e active print server network This command returns the number of packet transmit errors on th getvar since the last power cycle. ! U1 getvar "interface.network.active.tx_errors" Format: Result: An integer number Note • For printer support, see • SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

763 SGD Printer Commands 763 interface.network.active.tx_packets interface.network.active.tx_packets of packets transmitted on the a This command returns the number ctive print server network since the last pow er cycle. Commands Details This command returns the number of packets transmitted on the a ctive print server network since getvar the last power cycle. ! U1 getvar "interface.network.active.tx_packets" Format: Result: A number. Note • For printer support, see • SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

764 SGD Printer Commands 764 interface.network .active.wins_addr interface.network.active.wins_addr This command sets and retrieves the active WINS address. Commands Details ctive print server. WINS address of the a This command sets the setvar ! U1 setvar "interface.network.active.wins_addr" "value" Format: Values: "0.0.0.0" - "255.255.255.255" ver. This command retrieves the WINS address of the active print ser getvar ! U1 getvar "interface.network.active.wins_addr" Format: a WINS address Result: ess of the active print server. Example: In this example, the setvar sets the Wins addr ! U1 setvar "interface.network.active.wins.addr" "10.3.5.120" Note • • For printer support, see SGD Command Support on page 1393 . Command Structure . on page 573 • For details on SGD command structure, see Programming Guide P1099958-001 1/31/18

765 SGD Wireless Commands 765 interface.network.settings_require_reset interface.network.se ttings_require_reset a new configuration setting to take Displays whether or not the netwo rk system has to be reset for effect. Commands Details getvar Format: ! U1 getvar "interface.network.settings_require_reset" Values: "no" = hat require a reset to take effe ct. no settings have been changed t take effect. one or more settings has been changed that requires a reset to "yes" = Supported Devices • iMZ220, iMZ320 • QLn220, QLn320 • ZD410, ZD420 • ZD500 •ZQ510, ZQ520 • ZR338 • ZR628, ZR638 • ZT210, ZT220, ZT230 • ZT410, ZT420 Note • • For printer support, see SGD Command Support on page 1393 . . on page 573 Command Structure • For details on SGD command structure, see Programming Guide 1/31/18 P1099958-001

766 SGD Wireless Commands 766 ip.firewall.w hitelist_in ip.firewall.whitelist_in Returns a comma-separated list of IP addresses and/or IP addres s ranges that will be allowed to rewall will be disabled. If the list is empty then the fi communicate with the printer. Setvar To set the command: ! U1 setvar "ip.firewall.whitelist_in" "value" Format: Values: The value is a string of up to 256 alphanumeric characters. Default: "" Examples: Single IP address: ! U1 setvar "ip.firewall.whitelist_in" "192.168.1.20" Multiple IP addresses: ! U1 setvar "ip.firewall.whitelist_in" "192.168.1.20,192.168.100.21" IP address ranges: ! U1 setvar "ip.firewall.whitelist_in" "192.168.1.20-192.168.1.100" IP ranges and Single/Multiple IPs "ip.firewall.whitelist_in" "192.168.1.20-192.168.1.40, 192.168.1.50, 192.168.1.75" Format: Getvar To have the printer return the current setting value: Format: ! U1 getvar "ip.firewall.whitelist_in" Supported Printers • ZD400, ZD410, ZD420 • ZD500R • ZD620 • QLn220, QLn320, QLn420 •ZQ310, ZQ320 •ZQ510, ZQ520 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Programming Guide P1099958-001 1/31/18

767 SGD Wireless Commands 767 ip.firewall.whitelist_in Notes xref on page xxx For specific product support, see • . • For details on command structure, see xref on page yyy . P1099958-001 Programming Guide 1/31/18

768 SGD Wireless Commands 768 ip.https.enable ip.https.enable Enables/disables the HTTPS web connections. IMPORTANT: A network or printer reset is required for this sett ing to take effect. Setvar To set the command: Format: ! U1 setvar "ip.htt ps.enable" "value" Values: • off = disables HTTPS protocol • on = enables HTTPS protocol Default: "on" Getvar the current setting value: To have the printer return ! U1 getvar "ip.https.enable" Format: Supported Printers • ZD400, ZD410, ZD420 • ZD500R • ZD620 • QLn220, QLn320, QLn420 •ZQ310, ZQ320 •ZQ510, ZQ520 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Notes • For specific product support, see xref on page xxx . For details on command structure, see . xref on page yyy • Programming Guide P1099958-001 1/31/18

769 SGD Wireless Commands 769 ip.https.port ip.https.port Sets the port that will liste n for HTTPS connections. Setvar To set the command: Format: ! U1 setvar "ip.https.port" "value" Values: Any valid https port from 0-65535. Default: "443" Getvar To have the printer return the current setting value: ! U1 getvar "ip.https.port" Format: Supported Printers • ZD400, ZD410, ZD420 • ZD500R • ZD620 • QLn220, QLn320, QLn420 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Notes • For specific product support, see xref on page xxx . xref on page yyy For details on command structure, see . • Programming Guide 1/31/18 P1099958-001

770 SGD Wireless Commands 770 ip.ping_gateway_interval ip.ping_gateway_interval Determines the interval in minutes at which to se nd ICMP PING p ackets to the default gateway. Setvar To set the command: ! U1 setvar "ip.ping_gateway_interval" "value" Format: Values: The value is an integer from 0-30. 0 — disabled Default: "0" Getvar the current setting value: To have the printer return ! U1 getvar "ip.ping_gateway_interval" Format: Supported Printers • ZD400, ZD410, ZD420 • ZD500R • ZD620 • QLn220, QLn320, QLn420 •ZQ310, ZQ320 •ZQ510, ZQ520 • ZR318, ZR328 • ZR628, ZR638 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Notes • For specific product support, see xref on page xxx . For details on command structure, see xref on page yyy . • Programming Guide P1099958-001 1/31/18

771 SGD Wireless Commands 771 ip.pop3.print_body ip.pop3.print_body Determines if the email body will be printed when the email is retrieved via POP3. This only applies if ip.pop3.enable is set to "on". Setvar To set the command: Format: ! U1 setvar "ip.pop3.print_body" "value" Values: •on •off Default: "off" Getvar the current setting value: To have the printer return ! U1 getvar "ip.pop3.print_body" Format: Supported Printers • ZD400, ZD410, ZD420 • ZD500R • ZD620 • QLn220, QLn320, QLn420 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Notes • For specific product support, see xref on page xxx . xref on page yyy For details on command structure, see . • Programming Guide 1/31/18 P1099958-001

772 SGD Wireless Commands 772 ip.pop3.print_headers ip.pop3.print_headers Determines if the ema il header will be prin ted when the email i s retrieved via POP3. This only applies if ip.pop3.enable is set to "on". Setvar To set the command: Format: ! U1 setvar "ip.pop3.print_headers" "value" Values: •on •off Default: "off" Getvar the current setting value: To have the printer return ! U1 getvar "ip.pop3.print_headers" Format: Supported Printers • ZD400, ZD410, ZD420 • ZD500R • ZD620 • QLn220, QLn320, QLn420 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Notes • For specific product support, see xref on page xxx . xref on page yyy For details on command structure, see . • Programming Guide P1099958-001 1/31/18

773 SGD Wireless Commands 773 ip.pop3.save_attachments ip.pop3.save_attachments Determines if the email attachments are to be saved to the flas h file system when the email is retrieved via POP3. This only to "on". applies if ip.pop3.enable is set Setvar To set the command: Format: ! U1 setvar "ip.pop3.save_attachments" "value" Values: •on •off Default: "on" Getvar the current setting value: To have the printer return Format: ! U1 getvar "ip.pop3.save_attachments" Supported Printers • ZD400, ZD410, ZD420 • ZD500R • ZD620 • QLn220, QLn320, QLn420 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Notes • For specific product support, see xref on page xxx . For details on command structure, see xref on page yyy . • Programming Guide 1/31/18 P1099958-001

774 SGD Wireless Commands 774 ip.pop3.verbose_headers ip.pop3.verbose_headers Instructs the printer to resp ond with teh POP3 verbose header v alue. Setvar To set the command: Format: ! U1 setvar "ip.pop3. verbose_heade rs" "value" Values: •on •off Default: "off" Getvar the current setting value: To have the printer return ! U1 getvar "ip. pop3.verbose_headers" Format: Supported Printers • ZD400, ZD410, ZD420 • ZD500R • ZD620 • QLn220, QLn320, QLn420 • ZT210, ZT220, ZT230 • ZT410, ZT420 • ZT510 • ZT610, ZT620 Notes • For specific product support, see xref on page xxx . . For details on command structure, see xref on page yyy • Programming Guide P1099958-001 1/31/18