Sie sind auf Seite 1von 712

- .NET MHL Wrapper v.

3 - Backlight - Extension - Java Wrapper - Keyboard - MHL Base C/C++ - PowerButton - RFID - Scanner - Utility - WLAN - WWAN

Autogenerated at February 9th 2011

Nordic ID MHL Manual

Table Of Contents MHL Basics ......................................................... MHL Block Diagram ................................................... MHL Basics continued ................................................ .NET MHL Wrapper v.3 ................................................ Close() ............................................................ Execute(string name) .................................................. GetBin(string name) ................................................... GetBin(string name, int length) ............................................ GetBinAsAsciiString(string name, string delim) ................................. GetBinAsHexString(string name, string delim) .................................. GetBool(string name) .................................................. GetDword(string name) ................................................. GetHandle() ........................................................ GetInt(string name) ................................................... GetLastError() ....................................................... GetLastErrorMessage() ................................................. GetName() ......................................................... GetString(string name) ................................................. IsOpen() ........................................................... LoadProfile(string name) ............................................... MHLDriver() ........................................................ MHLDriver(string drvName) .............................................. MHLDriver(string drvName, bool throwsException) .............................. MHLDriver.throwsException .............................................. Open(string name) .................................................... SaveProfile(string name) ................................................ SetBin(string name, byte[] val) ............................................ SetBool(string name, bool val) ............................................ SetDword(string name, int val) ............................................ SetDword(string name, uint val) ........................................... SetInt(string name, int val) ............................................... SetString(string name, string val) .......................................... Backlight ........................................................... Backlight.KbBlDimLevel ................................................ Backlight.KbBlFullLevel ................................................. Backlight.KbBlPower .................................................. Backlight.Power ...................................................... Backlight.StepValue ................................................... Backlight.Value ...................................................... Extension .......................................................... Extension.I2C.Address ................................................. 16 17 18 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 2 / 712

Nordic ID MHL Manual

64 65 66 67 68 69 70 71 72 73 Java Wrapper ....................................................... 74 CloseDrv(int handle); .................................................. 75 Execute(int handle, String name); .......................................... 76 GetBin(int handle, String name); ........................................... 77 GetBool(int handle, String name); .......................................... 78 GetDword(int handle, String name); ........................................ 79 GetInt(int handle, String name); ........................................... 80 GetString(int handle, String name); ......................................... 81 GetStringLen(int handle, String name); ...................................... 82 LoadProfile(int handle, String name); ........................................ 83 OpenDrv(String drv) ................................................... 85 SaveProfile(int handle, String name); ........................................ 87 SetBin(int handle, String name, byte[] val); .................................... 90 SetBool(int handle, String name, boolean val); ................................. 91 SetDword(int handle, String name, int val); .................................... 92 SetInt(int handle, String name, int val); ....................................... 93 SetString(int handle, String name, String val); .................................. 94 Keyboard ........................................................... 95 Keyboard.FunctionState ................................................ 96 Keyboard.InputMode .................................................. 97 Keyboard.KeylockState ................................................. 98 Keyboard.Reload ..................................................... 99 Keyboard.ScanMode ................................................. 100 Keyboard.SendVKDown ............................................... 101 Keyboard.SendVKUp ................................................. 102 Keyboard.StickyFunction.Enable ......................................... 103 SpecialKey.Action[NN] ................................................ 104 SpecialKey.[Key].[Modifier].Action ......................................... 105 SpecialKey.[Key].[Modifier].Repeat ........................................ 107 SpecialKey.[Key].[Modifier].VK ........................................... 108 MHL Base C/C++ .................................................... 110 MHL_CloseDrv(HANDLE handle) ......................................... 111 MHL_DeleteProfile(HANDLE hDrv, const TCHAR *name) ......................... 112

Extension.I2C.ClockRate ................................................ Extension.I2C.Read ................................................... Extension.I2C.Write ................................................... Extension.Pin[X].Default ................................................ Extension.Pin[X].Drive ................................................. Extension.Pin[X].Edge ................................................. Extension.Pin[X].EvtName ............................................... Extension.Pin[X].Input ................................................. Extension.Pin[X].Pull .................................................. Extension.Pin[X].State .................................................

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 3 / 712

Nordic ID MHL Manual

MHL_Execute(HANDLE hDrv, const TCHAR *name) ............................ 113 MHL_GetBin(HANDLE handle, const TCHAR *name, BYTE *buffer, DWORD buflen) ...... 114 MHL_GetBool(HANDLE hDrv, const TCHAR *name) ............................ 115 MHL_GetDouble(HANDLE hDrv, const TCHAR *name) .......................... 116 MHL_GetDword(HANDLE hDrv, const TCHAR *name) .......................... 117 MHL_GetFeatureCount(HANDLE handle) ................................... 118 MHL_GetFeatureInfo(HANDLE handle, const TCHAR *name,MHL_VALUE_V2 *value) ..... 119 MHL_GetFeatureInfoIdx(HANDLE handle, ULONG idx, MHL_VALUE_V2 *value, TCHAR *namebuf) .. 120 MHL_GetInt(HANDLE hDrv, const TCHAR *name) ............................. 121 MHL_GetString(HANDLE handle, const TCHAR *name, TCHAR *buffer, DWORD buflen) ... 122 MHL_GetStringLen(HANDLE hDrv, const TCHAR *name) ........................ 124 MHL_LoadProfile(HANDLE hDrv, const TCHAR *name) .......................... 125 MHL_OpenDrv(const TCHAR *drv) ........................................ 126 MHL_SaveProfile(HANDLE hDrv, const TCHAR *name) .......................... 127 MHL_SetBin(HANDLE hDrv, const TCHAR *name, BYTE *bin_value, DWORD len) ....... 128 MHL_SetBool(HANDLE hDrv, const TCHAR *name, BOOL bool_value) ............... 129 MHL_SetDouble(HANDLE hDrv, const TCHAR *name, double double_value) ........... 130 MHL_SetDword(HANDLE hDrv, const TCHAR *name, DWORD dw_value) ............. 131 MHL_SetInt(HANDLE hDrv, const TCHAR *name, int int_value) ..................... 132 MHL_SetString(HANDLE hDrv, const TCHAR *name, const TCHAR *str_value) .......... 133 MHL_SetStringEx(HANDLE hDrv, const TCHAR *name, const TCHAR *str_value, int len) ... 134

PowerButton ....................................................... PowerButton.Exec ................................................... PowerButton.VirtualKey ............................................... RFID ............................................................. Codes.GIAI.Enable [AS399X] ............................................ Codes.GIAI.EnableFiltering [AS399X] ...................................... Codes.GIAI.Filters ................................................... Codes.GRAI.Enable [AS399X] ........................................... Codes.GRAI.EnableFiltering ............................................ Codes.GRAI.Filters [AS399X] ........................................... Codes.SGLN.Enable [AS399X] .......................................... Codes.SGLN.EnableFiltering [AS399X] ..................................... Codes.SGLN.Filters [AS399X] ........................................... Codes.SGTIN.CheckDigit [AS399X] ....................................... Codes.SGTIN.Enable [AS399X] .......................................... Codes.SGTIN.EnableFiltering [AS399X] ..................................... Codes.SGTIN.Filters [AS399X] ........................................... Codes.SGTIN.ToGTIN14 [AS399X] ........................................ Codes.Splitter [AS399X] ............................................... Codes.SSCC.CheckDigit [AS399X] ........................................ Codes.SSCC.Enable [AS399X] .......................................... Codes.SSCC.EnableFiltering [AS399X] .....................................

135 136 137 138 139 141 142 144 146 147 149 151 152 154 155 157 158 160 162 164 165 167

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 4 / 712

Nordic ID MHL Manual

Codes.SSCC.Filters [AS399X] ........................................... Codes.SSCC.ToSSCC18 [AS399X] ....................................... Decoder.Enabled [AS399X] ............................................. Decoder.Error [AS399X] ............................................... Decoder.PrependId [AS399X] ........................................... RFID.BinString [AS399X] .............................................. RFID.BLF ......................................................... RFID.BlockCount .................................................... RFID.BlockData ..................................................... RFID.BlockDataById [M5e-c] ............................................ RFID.BlockDataString [M5e-c] ........................................... RFID.BlockDataStringById [M5e-c] ........................................ RFID.BlockPointer ................................................... RFID.BytesOK [AS399X] ............................................... RFID.ChipId ....................................................... RFID.Clear ........................................................ RFID.CurrentId ..................................................... RFID.Decode [AS399X] ............................................... RFID.EPCC1G2.Bank ................................................ RFID.EPCC1G2.BlockErase [AS399X] ..................................... RFID.EPCC1G2.BlockWrite [AS399X] ...................................... RFID.EPCC1G2.Id ................................................... RFID.EPCC1G2.KillPassword [AS399X] .................................... RFID.EPCC1G2.KillTag ............................................... RFID.EPCC1G2.Lock ................................................. RFID.EPCC1G2.LockPayload ........................................... RFID.EPCC1G2.LongEPC [M5e-c] ........................................ RFID.EPCC1G2.Miller ................................................ RFID.EPCC1G2.Password ............................................. RFID.EPCC1G2.ProgramId [M5e-c] ....................................... RFID.EPCC1G2.PwdMem.Access.Open .................................... RFID.EPCC1G2.PwdMem.Access.Permalock ................................. RFID.EPCC1G2.PwdMem.Access.Permawrite ................................ RFID.EPCC1G2.PwdMem.Access.Secured .................................. RFID.EPCC1G2.PwdMem.Kill.Open ....................................... RFID.EPCC1G2.PwdMem.Kill.Permalock ................................... RFID.EPCC1G2.PwdMem.Kill.Permawrite ................................... RFID.EPCC1G2.PwdMem.Kill.Secured ..................................... RFID.EPCC1G2.Q [AS399X] ............................................ RFID.EPCC1G2.Q [M5e-c] ............................................. RFID.EPCC1G2.Read ................................................ RFID.EPCC1G2.Secured .............................................. RFID.EPCC1G2.Session ...............................................

168 170 172 173 175 176 177 178 180 182 184 186 188 190 191 192 193 195 197 199 201 203 205 206 208 212 214 215 216 218 220 221 222 223 224 225 226 227 228 229 230 232 234

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 5 / 712

Nordic ID MHL Manual

RFID.EPCC1G2.Target [M5e-c] .......................................... RFID.EPCC1G2.TIDMemory.Open ........................................ RFID.EPCC1G2.TIDMemory.Permalock .................................... RFID.EPCC1G2.TIDMemory.Permawrite .................................... RFID.EPCC1G2.TIDMemory.Secured ...................................... RFID.EPCC1G2.UIIMemory.Open ........................................ RFID.EPCC1G2.UIIMemory.Permalock ..................................... RFID.EPCC1G2.UIIMemory.Permawrite .................................... RFID.EPCC1G2.UIIMemory.Secured ...................................... RFID.EPCC1G2.UserMemory.Open ....................................... RFID.EPCC1G2.UserMemory.Permalock .................................... RFID.EPCC1G2.UserMemory.Permawrite ................................... RFID.EPCC1G2.UserMemory.Secured ..................................... RFID.EPCC1G2.Write ................................................ RFID.Frequency .................................................... RFID.FWRelease [M5e-c] .............................................. RFID.IdList ........................................................ RFID.Inventory [AS399X] .............................................. RFID.Inventory [M5e-c] ................................................ RFID.InventorySelect [AS399X] .......................................... RFID.InventorySelect [M5e-c] ........................................... RFID.KillPassword ................................................... RFID.KillTag ....................................................... RFID.KillTagById .................................................... RFID.Meta.Frequency ................................................ RFID.Meta.PC ...................................................... RFID.Meta.RSSI .................................................... RFID.Meta.Time .................................................... RFID.MetaInventory .................................................. RFID.Module ....................................................... RFID.OperationId [M5e-c] .............................................. RFID.OperationIdString [M5e-c] .......................................... RFID.Polarization [AS399X] ............................................. RFID.Polarization [M5e-c] .............................................. RFID.PrASK ....................................................... RFID.Reset ........................................................ RFID.RFPower [AS399X] .............................................. RFID.RFPower [M5e-c] ................................................ RFID.RxDecoding [AS399X] ............................................ RFID.ScanAsync [AS399X] ............................................. RFID.ScanAsync [M5e-c] .............................................. RFID.ScanSingle [AS399X] ............................................. RFID.ScanSingle [M5e-c] ..............................................

235 237 238 239 240 241 242 243 244 245 246 247 248 249 251 252 253 255 258 260 262 264 265 267 268 269 270 271 272 274 275 277 279 280 282 283 284 285 286 287 290 292 294

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 6 / 712

Nordic ID MHL Manual

RFID.ScanSingleString ................................................ RFID.SelectAddress .................................................. RFID.SelectBank .................................................... RFID.SelectInvert ................................................... RFID.SelectLength ................................................... RFID.SelectMask .................................................... RFID.Separator ..................................................... RFID.SerialString .................................................... RFID.SoundFailed [AS399X] ............................................ RFID.SoundFailed.Enable [AS399X] ....................................... RFID.SoundSuccess [AS399X] .......................................... RFID.SoundSuccess.Enable [AS399X] ..................................... RFID.StringData [M5e-c] ............................................... RFID.StringDataById [M5e-c] ............................................ RFID.Tag1 ........................................................ RFID.Tag10 ....................................................... RFID.Tag11 ....................................................... RFID.Tag12 ....................................................... RFID.Tag13 ....................................................... RFID.Tag14 ....................................................... RFID.Tag15 ....................................................... RFID.Tag16 ....................................................... RFID.Tag2 ........................................................ RFID.Tag3 ........................................................ RFID.Tag4 ........................................................ RFID.Tag5 ........................................................ RFID.Tag6 ........................................................ RFID.Tag7 ........................................................ RFID.Tag8 ........................................................ RFID.Tag9 ........................................................ RFID.TagsCount .................................................... RFID.TagType ..................................................... RFID.Timeout [M5e-c] ................................................ RFID.TxLevel [AS399X] ............................................... RFID.TxLevel [M5e-c] ................................................. RFID.VibFailed.Enable [AS399X] ......................................... RFID.VibFailed.Pattern [AS399X] ......................................... RFID.VibSuccess.Enable [AS399X] ....................................... RFID.VibSuccess.Pattern [AS399X] ....................................... Scanner.SoundFailed [AS399X] .......................................... Scanner.SoundFailed.Enable [AS399X] ..................................... Scanner.SoundSuccess [AS399X ] ........................................ Scanner.SoundSuccess.Enable [AS399X] ...................................

295 296 297 298 299 300 301 302 303 304 305 306 307 309 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 341 343 344 345 347 349 350 351 352 353 354 355 356 357

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 7 / 712

Nordic ID MHL Manual

Scanner.Timeout .................................................... Scanner.VibFailed.Enable [AS399X] ....................................... Scanner.VibFailed.Pattern [AS399X] ....................................... Scanner.VibSuccess.Enable [AS399X] ..................................... Scanner.VibSuccess.Pattern [AS399X] .....................................

Scanner ........................................................... Code.Auspost.Enable [Imager] .......................................... Code.Aztec.Enable [Imager] ............................................ Code.Aztec.MaxLength [Imager] ......................................... Code.Aztec.MesaCode128 [Imager] ....................................... Code.Aztec.MesaCode39 [Imager] ........................................ Code.Aztec.MesaCode93 [Imager] ........................................ Code.Aztec.MesaEAN13 [Imager] ........................................ Code.Aztec.MesaIL25 [Imager] .......................................... Code.Aztec.MesaUPCA [Imager] ......................................... Code.Aztec.MinLength [Imager] .......................................... Code.BooklandEAN.Enable [Laser] ....................................... Code.BPO.Enable [Imager] ............................................. Code.Canpost.Enable [Imager] .......................................... Code.Codabar.AnyLength [Laser] ........................................ Code.Codabar.CheckCharOn [Imager] ..................................... Code.Codabar.CLSIEditing [Laser] ........................................ Code.Codabar.Enable ................................................ Code.Codabar.MaxLength .............................................. Code.Codabar.MinLength .............................................. Code.Codabar.NOTISEditing [Laser] ...................................... Code.Codabar.SSXMit [Imager] .......................................... Code.Codabar.XmitCheckCharOn [Imager] .................................. Code.Codablock.Enable [Imager] ......................................... Code.Codablock.MaxLength [Imager] ...................................... Code.Codablock.MinLength [Imager] ...................................... Code.Code11.AnyLength [Laser] ......................................... Code.Code11.CheckDigits [Laser] ........................................ Code.Code11.Enable ................................................. Code.Code11.MaxLength .............................................. Code.Code11.MinLength ............................................... Code.Code11.ToCheckDigits [Imager] ..................................... Code.Code11.TransmitCheckDigits [Laser] .................................. Code.Code128.Enable ................................................ Code.Code128.MaxLength [Imager] ....................................... Code.Code128.MinLength [Imager] ....................................... Code.Code32.Enable [Imager] .......................................... Code.Code39.AnyLength [Laser] .........................................

358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 8 / 712

Nordic ID MHL Manual

Code.Code39.CheckDigit .............................................. Code.Code39.Code32Prefix [Laser] ....................................... Code.Code39.ConvertToCode32 [Laser] .................................... Code.Code39.Enable ................................................. Code.Code39.FullAscii ................................................ Code.Code39.MaxLength .............................................. Code.Code39.MinLength ............................................... Code.Code39.SSXmit [Imager] .......................................... Code.Code39.TransmitCheckDigits ........................................ Code.Code49.Enable [Imager] .......................................... Code.Code49.MaxLength [Imager] ........................................ Code.Code49.MinLength [Imager] ........................................ Code.Code93.AnyLength [Laser] ......................................... Code.Code93.Enable ................................................. Code.Code93.MaxLength .............................................. Code.Code93.MinLength ............................................... Code.Datamatrix.Enable [Imager] ........................................ Code.Datamatrix.MaxLength [Imager] ...................................... Code.Datamatrix.MinLength [Imager] ...................................... Code.Discrete25.AnyLength [Laser] ....................................... Code.Discrete25.Enable [Laser] ......................................... Code.Discrete25.MaxLength [Laser] ....................................... Code.Discrete25.MinLength [Laser] ....................................... Code.Dutchpost.Enable [Imager] ......................................... Code.EAN-13.Addenda2Digit [Imager] ..................................... Code.EAN-13.Addenda5Digit [Imager] ..................................... Code.EAN-13.AddendaOnly [Imager] ...................................... Code.EAN-13.AddendaSeparator [Imager] .................................. Code.EAN-13.DecodeSupplementals [Laser] ................................. Code.EAN-13.Enable ................................................. Code.EAN-13.SecurityLevel [Laser] ....................................... Code.EAN-13.SupplementalRedundancy [Laser] .............................. Code.EAN-13.XmitCheckChar [Imager] ..................................... Code.EAN-8.Addenda2Digit [Imager] ...................................... Code.EAN-8.Addenda5Digit [Imager] ...................................... Code.EAN-8.AddendaOnly [Imager] ....................................... Code.EAN-8.AddendaSeparator [Imager] ................................... Code.EAN-8.ConvertToEan13 [Laser] ..................................... Code.EAN-8.Enable .................................................. Code.EAN-8.SecurityLevel [Laser] ........................................ Code.EAN-8.XmitCheckChar [Imager] ..................................... Code.EAN-8.ZeroExtend [Laser] ......................................... Code.EAN-UCC.Enable [Imager] .........................................

401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 431 432 434 435 436 437 438 439 440 441 442 444 445 446

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 9 / 712

Nordic ID MHL Manual

Code.EAN-UCC.MaxLength [Imager] ...................................... Code.EAN-UCC.MinLength [Imager] ...................................... Code.EAN-UCC.UpcEanEnable [Imager] ................................... Code.IATA25.Enable [Imager] ........................................... Code.IATA25.MaxLength [Imager] ........................................ Code.IATA25.MinLength [Imager] ........................................ Code.Interleaved25.AnyLength [Laser] ..................................... Code.Interleaved25.CheckDigit .......................................... Code.Interleaved25.ConvertToEan13 [Laser] ................................. Code.Interleaved25.Enable ............................................. Code.Interleaved25.MaxLength .......................................... Code.Interleaved25.MinLength ........................................... Code.Interleaved25.TransmitCheckDigit .................................... Code.ISBT128.Enable ................................................ Code.Japost.Enable [Imager] ........................................... Code.Matrix2of5.Enable [Imager] ......................................... Code.Matrix2of5.MaxLength [Laser] ....................................... Code.Matrix2of5.MinLength [Imager] ...................................... Code.Maxicode.Enable [Imager] ......................................... Code.Maxicode.MaxLength [Imager] ...................................... Code.Maxicode.MinLength [Imager] ....................................... Code.MicroPDF.Enable [Imager] ......................................... Code.MicroPDF.MaxLength [Imager] ...................................... Code.MicroPDF.MinLength [Imager] ....................................... Code.MSI.AnyLength [Laser] ........................................... Code.MSI.CheckDigitAlgorithm [Laser] ..................................... Code.MSI.Enable .................................................... Code.MSI.MaxLength ................................................. Code.MSI.MinLength ................................................. Code.MSI.TransmitCheckDigit ........................................... Code.MSI.TwoCheckDigits [Laser] ........................................ Code.OCR.Enable [Imager] ............................................ Code.OCR.Font [Imager] .............................................. Code.OCR.Template [Imager] ........................................... Code.PDF417.Enable [Imager] .......................................... Code.PDF417.MaxLength [Imager] ....................................... Code.PDF417.MinLength [Imager] ........................................ Code.Planet.Enable [Imager] ........................................... Code.Planet.XmitCheckChar [Imager] ...................................... Code.Postnet.Enable [Imager] ........................................... Code.Postnet.XmitCheckChar [Imager] ..................................... Code.QR.Enable [Imager] .............................................. Code.QR.MaxLength [Imager] ...........................................

447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 10 / 712

Nordic ID MHL Manual

Code.QR.MinLength [Imager] ........................................... Code.RSS.Enable [Imager] ............................................. Code.RSS.MaxLength [Imager] .......................................... Code.RSS.MinLength [Imager] .......................................... Code.RSS14.Enable [Laser] ............................................ Code.RSSExpanded.Enable [Laser] ....................................... Code.RSSLimited.Enable [Laser] ......................................... Code.Straight2of5.Enable [Imager] ........................................ Code.Straight2of5.MaxLength [Imager] ..................................... Code.Straight2of5.MinLength [Imager] ..................................... Code.TriopticCode39.Enable [Laser] ...................................... Code.UccEan128.Enable [Laser] ......................................... Code.UPC-A.Addenda2Digit [Imager] ...................................... Code.UPC-A.Addenda5Digit [Imager] ...................................... Code.UPC-A.AddendaOnly [Imager] ....................................... Code.UPC-A.AddendaSeparator [Imager] ................................... Code.UPC-A.Enable .................................................. Code.UPC-A.Preamble [Laser] .......................................... Code.UPC-A.SecurityLevel [Laser] ........................................ Code.UPC-A.Supplementals [Laser] ....................................... Code.UPC-A.TransmitCheckDigit ......................................... Code.UPC-A.XmitNumSys [Imager] ....................................... Code.UPC-E.Addenda2Digit [Imager] ...................................... Code.UPC-E.Addenda5Digit [Imager] ...................................... Code.UPC-E.AddendaOnly [Imager] ....................................... Code.UPC-E.AddendaSeparator [Imager] ................................... Code.UPC-E.EnableE0 [Imager] ......................................... Code.UPC-E.EnableE1 [Imager] ......................................... Code.UPC-E.ExpandVersionE [Imager] .................................... Code.UPC-E.XmitCheckChar [Imager] ..................................... Code.UPC-E.XmitNumSys [Imager] ....................................... Code.UPC-E0.ConvertToUPCA [Laser] ..................................... Code.UPC-E0.Enable [Laser] ........................................... Code.UPC-E0.Preamble [Laser] ......................................... Code.UPC-E0.SecurityLevel [Laser] ....................................... Code.UPC-E0.Supplementals [Laser] ...................................... Code.UPC-E0.TransmitCheckDigit [Laser] ................................... Code.UPC-E1.ConvertToUPCA [Laser] ..................................... Code.UPC-E1.Enable [Laser] ........................................... Code.UPC-E1.Preamble [Laser] ......................................... Code.UPC-E1.SecurityLevel [Laser] ....................................... Code.UPC-E1.Supplementals [Laser] ...................................... Code.UPC-E1.TransmitCheckDigit [Laser] ...................................

490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 510 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 528 530 531 532 533 534 536 538

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 11 / 712

Nordic ID MHL Manual

539 540 541 542 543 544 545 547 548 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 568 569 570 571 572 573 574 575 576 577 578 579 580 581 Utility ............................................................. 582 HWInfo.ConfigString .................................................. 583 HWInfo.CPUCoreString ............................................... 584

Codes.Enable ...................................................... Scanner.Aim [Laser] .................................................. Scanner.AimsiMode .................................................. Scanner.BDRedundancy [Laser] .......................................... Scanner.CancelScan ................................................. Scanner.DecodeLimit [Imager] .......................................... Scanner.HHPID [Imager] .............................................. Scanner.Module .................................................... Scanner.OptimizeDecoder [Imager] ....................................... Scanner.Padding.Character ............................................. Scanner.Padding.Length ............................................... Scanner.Padding.Mode ................................................ Scanner.Postfix1 .................................................... Scanner.Postfix2 .................................................... Scanner.Prefix1 ..................................................... Scanner.Prefix2 ..................................................... Scanner.Replace.ReplaceChar .......................................... Scanner.Replace.Replacement .......................................... Scanner.Scan ...................................................... Scanner.ScanAIMSI .................................................. Scanner.ScanAsync .................................................. Scanner.ScanResultInfo ............................................... Scanner.ScanResultString .............................................. Scanner.ScanState .................................................. Scanner.SearchLimit [Imager] ........................................... Scanner.SecurityLevel [Laser] ........................................... Scanner.SoundFailed ................................................. Scanner.SoundFailed.Enable ............................................ Scanner.SoundSuccess ............................................... Scanner.SoundSuccess.Enable .......................................... Scanner.Timeout .................................................... Scanner.TriggerMode ................................................. Scanner.TrimEnd [Laser] .............................................. Scanner.TrimStart [Laser] .............................................. Scanner.VibFailed.Enable .............................................. Scanner.VibFailed.Pattern .............................................. Scanner.VibSuccess.Enable ............................................ Scanner.VibSuccess.Pattern ............................................ Scanner.VideoPreview.Enable [Imager] .................................... Scanner.VideoReverse.Enable [Imager] ....................................

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 12 / 712

Nordic ID MHL Manual

HWInfo.CPUVer .................................................... HWInfo.CPUVersionString .............................................. HWInfo.FlashSize ................................................... HWInfo.NIDItemCode ................................................. HWInfo.RamSize .................................................... HWInfo.SerialString .................................................. Utility.BatteryLevel ................................................... Utility.BootloaderItemCode ............................................. Utility.BootloaderVersion ............................................... Utility.ConnectionStatus ............................................... Utility.ConnectionType ................................................ Utility.IpAdrress ..................................................... Utility.MacAddress ................................................... Utility.NetworkAdapter ................................................ Utility.ProgrammableLed [Merlin] ......................................... Utility.ResetDevice ................................................... Utility.SignalStrength ................................................. Utility.SWItemCode .................................................. Utility.SWVersion .................................................... Utility.Temperature ...................................................

WLAN ............................................................ WLAN.AdapterName ................................................. WLAN.Associated ................................................... WLAN.Connected ................................................... WLAN.Connected.BSSID .............................................. WLAN.Connected.SSID ............................................... WLAN.IpAddress .................................................... WLAN.MacAddress .................................................. WLAN.Power ...................................................... WLAN.SignalStrength ................................................. WLAN.SignalStrength.dBm ............................................. WWAN ............................................................ WWAN.APN ....................................................... WWAN.ATCmdCancel ................................................ WWAN.ATCmdSend ................................................. WWAN.ATCmdTimeout ............................................... WWAN.AutoConnect ................................................. WWAN.AutoEnterPin ................................................. WWAN.ChangePin ................................................... WWAN.Connect .................................................... WWAN.Connected ................................................... WWAN.ConnectionState ............................................... WWAN.CurrentNetwork ...............................................

585 586 587 588 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 13 / 712

Nordic ID MHL Manual

WWAN.Disconnect ................................................... WWAN.DriverState .................................................. WWAN.DTMF.Play .................................................. WWAN.Enable ..................................................... WWAN.EnableDuringSleep ............................................. WWAN.Event.Count .................................................. WWAN.Event.Data ................................................... WWAN.Event.Name .................................................. WWAN.Event.Pop ................................................... WWAN.Event.TimeStamp .............................................. WWAN.Event.Type .................................................. WWAN.ICCID ...................................................... WWAN.IMEI ....................................................... WWAN.IMSI ....................................................... WWAN.LastCMEError ................................................ WWAN.Module ..................................................... WWAN.NetworkCode ................................................. WWAN.NetworkCount ................................................ WWAN.NetworkIndex ................................................. WWAN.NetworkName ................................................ WWAN.NetworkSelection .............................................. WWAN.Password ................................................... WWAN.Phone.Answer ................................................ WWAN.Phone.Call ................................................... WWAN.Phone.CallerNumber ............................................ WWAN.Phone.Hangup ................................................ WWAN.Phone.State .................................................. WWAN.PinCode .................................................... WWAN.PreferredService ............................................... WWAN.PrimaryDNS .................................................. WWAN.PukCode .................................................... WWAN.RequestPin .................................................. WWAN.ResumePin .................................................. WWAN.SearchNetworks ............................................... WWAN.SecondaryDNS ................................................ WWAN.ServiceStatus ................................................. WWAN.ServiceType .................................................. WWAN.SignalStrength ................................................ WWAN.SimLockRetries ............................................... WWAN.SimPinUsed .................................................. WWAN.SimPinUsed.SetPin ............................................. WWAN.SimState .................................................... WWAN.SMS.Count ..................................................

629 630 632 633 634 635 636 637 638 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 14 / 712

Nordic ID MHL Manual

WWAN.SMS.Data ................................................... WWAN.SMS.DateTime ................................................ WWAN.SMS.GSM_3_38Alphabet ......................................... WWAN.SMS.InvalidChrPos ............................................. WWAN.SMS.IsValid7BitChr ............................................. WWAN.SMS.IsValid7BitStr ............................................. WWAN.SMS.Message ................................................ WWAN.SMS.Number ................................................. WWAN.SMS.NumberingPlan ............................................ WWAN.SMS.Pop .................................................... WWAN.SMS.RawPDU ................................................ WWAN.SMS.SC_Number .............................................. WWAN.SMS.SC_NumberingPlan ......................................... WWAN.SMS.SC_TypeOfNumber ......................................... WWAN.SMS.Send ................................................... WWAN.SMS.TypeOfNumber ............................................ WWAN.UseOperatorTime .............................................. WWAN.Username ................................................... WWAN.VerboseLogging ...............................................

Error Code List ..................................................... Code Samples ...................................................... How to open and close an MHL Driver. - C++ ................................. How to open and close an MHL Driver. - C Sharp .............................. How to open and close an MHL Driver. - Visual Basic ............................ How to open and close an MHL Driver. - Java ................................. How to open and close an MHL driver in a Internet Explorer client side JScript. - VB/JScript .. Get/Set Backlight, Open/Close Driver - C .................................... <p>Control the SCAN button & barcode scanner (multithreaded).</p> - C Sharp .......... <p>WLAN Driver IP, MAC &amp; SSID query.</p> - C Sharp ...................... How to search for networks with WWAN - C Sharp ............................. Commanding the WWAN driver to connect to the default network - C++ ............... Read the ID string of any RFID tags in the RF-field - C++ .........................

683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 704 704 704 704 704 704 704 705 705 708 709 709

Checks that the WLAN adapter is connected and to which SSID. Also gets signal strength in dBm and percentage. - C++ ........................ 710 Using the I2C bus trough the Extension Feature Driver - C Sharp (MHL Wrapper v2) ....... 711

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 15 / 712

Nordic ID MHL Manual

Nordic ID Multiple Hardware Layers [MHL]


MHL is a service running on Nordic ID handterminals that provides hardware control services to applications. It's role is the same as Application Programming Interface (API) libraries in other manufacturers devices. This help is intended for the Nordic ID Morphic and Merlin handterminals from 2011 onwards. If you have a newer unit this help is likely useful, but for the older PL3000 and PL2000 please refer to their manuals & support pages.

How is it different from a typical API?


It is a service, not a DLL. So when you read from and write to it, you are actually making service calls and talking to the device drivers. A typical API is a DLL which you link to at compile time. This has the disadvantage often called DLL hell, where updating or changing the DLL will break your software. If a function is missing in MHL it will always gracefully fail, with an error response, not by throwing a fatal exception. You don't actually need to do service calls explicitly, we have created mhl.h to make using MHL easier. It presents to you an API like interface that hides all the service and driver calls. The only unusual bit you need to get used to is that actual functions are never called, you always call function by their string name. You use functions like GetInt, GetBool and GetString with the name of the actual feature function as a parameter. This is a bit inefficient in terms of speed and clarity, but it means your program never crashes because of updates or changes to the hardware or MHL drivers. The basic MHL functions themselves almost never change, and if they do it is to add a new one. So your program will always run in a newer version of a Nordic ID unit, provided you properly check the return values of the MHL functions. If you assume that hardware components exist, and do not check the return values it will be as error prone as any other API.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 16 / 712

Nordic ID MHL Manual

MHL Block Diagram

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 17 / 712

Nordic ID MHL Manual

What do I need?
For .NET Compact Framework 2.0 (Visual Studio 2005 & 2008)
You need the .NET wrapper class version 2.0 or 3.0. It is also recommended, but not mandatory to install the SDK for Visual Studio 2005. If you have an SDK for another ARMV4i unit running Windows CE 6.0 you can use that SDK. You can also target the Morphic with the Merlin SDK and vice versa. The universal Windows CE 5.0 SDK can also be used. Note that when you install the SDK and you only have VS2008 installed, you must deselect the help items in the installer. The installation will fail otherwise. If you have both VS2005 and VS2008 installed, you can install everything

For .NET Compact Framework 3.5 (Visual Studio 2008)


Compact Famework 3.5 is not present by default in Nordic ID's Windows CE 6.0 units, so you must have the Customizer packet that contains CF3.5 installed in your unit. Other than that the requirements are the same as above.

For native C/C++ applications (Visual Studio 2005 & 2008)


You need to have the SDK installed so that the compiler correctly targets the ARMV4i Windows CE 6.0 platform. Additionally you need mhl.h to use MHL. Since MHL is a service you do not need any DLL files or libraries to link against.

For Java applications


You need to have a Java Virtual Machine running on your unit. Nordic ID has some experience with both Creme and IBM J9, you can use either or any other JVM you manage to get running. Nordic ID has created an MHL wrapper class for Java using JNI that you can use in order to use MHL in your application.

For Internet Explorer client side scripting


Nordic ID has created a COM component that is registered to the browser by default. This means you can make MHL calls in client side scripts running on Internet Explorer in the unit. Note that JScript does not do pointers so using GetBin and SetBin is not possible.

MHL Downloads

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 18 / 712

Nordic ID MHL Manual

SDK
These are intended for Visual Studio 2005, but you can install them with 2008 as long as you uncheck the documentation. If you have both VS2005 and VS2008, you should have no problem installing the documentation as well.

Morphic SDK Merlin SDK


.NET Compact Framework MHL Wrapper with Demo Code
These projects contain a Wrapper class that hides the ugly bits of calling native code. They also contain sample projects that demonstrate how to use MHL trough the wrapper class.

MHL Wrapper v.2 for Visual Studio 2005


Contains the wrapper class, demo projects, scan helper and a demo project for the scan helper class.

MHL Wrapper v.2 for Visual Studio 2008


Contains the wrapper class and demo projects

MHL Wrapper v.3 for Visual Studio 2005


Contains a new wrapper class that encapsulates the MHL Handle, making it easier to use and prettier code. Also integrated are the ScanHelper, Win32 API Error Codes and Error Code Strings. The file contains the same demo projects as in the v.2 wrapper project, but they have been changed to use this new wrapper.

C/C++

MHL Header
Header file for working with MHL. No .DLL or .LIB needed, these are service calls.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 19 / 712

Nordic ID MHL Manual

JAVA

Java MHL wrapper MHL Basics


MHL functionality can be thought of as consisting of four parts: Get functions, Set functions, profile management and enumeration functions. The actual functions are documented separately for each language or environment because their signature is different depending on the language used. Please see the MHL Base C/C++, .NET Wrapper, Java Wrapper or COM Wrapper documentation depending on which environment you will be using.

Get/Set Functions
These are the functions you use to actually query and command the MHL feature functions. There is one Get/Set function pair per data type supported by MHL. Data types currently supported are boolean, integer, unsigned integer (DWORD), string, 64 bit floating point (double) and byte blocks (GetBin/SetBin).

Profile Management
The MHL Feature Drivers typically have functions whose setting can be stored in a profile. Not all features are stored in a profile. An example of a feature function that does not go in the profile is Scanner.Scan. This function triggers barcode reading and therefore does not represent a configurable setting. The function Scanner.TriggenMode is an example of a function whose setting can be stored in a profile as it does not trigger a hardware function but instead cofigures how the scanner should behave when triggered. The initial reason for creating profiles was to allow applications to take full control of the unit's keyboard and barcode scanner when running, yet they should be able to easily restore the factory default setup upon exiting. This is what the profiles are typically used for. When an application starts, the existing setup is stored in a temporary profile and any needed changes to the current setup are made. When the application exits it loads the temporary profile, thereby restoring the device to the state it was before the app started.

Enumeration Functions
These functions are typically not used by application programmers. They enumerate the drivers and functions available in MHL itself, dynamically at runtime. The NID Scanner Control Panel applet is an example of an application that uses these. It dynamically queries the scanner driver for available barcode types and populates the barcode enable / disable list. The enumeration functions are only needed for this kind of use, and should not be needed at all by a typical

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 20 / 712

Nordic ID MHL Manual

application. For this reason these functions are not implemented in the wrapper classes. Should you need these functions it is fairly trivial to extend the wrapper projects yourself to include them.

MHL Datatypes
String
This data type is internally made up of 16-bit unsigned integers, all strings being null terminated (with the value 0x0000). The string format is the same as Windows CE uses, and usually contains UCS-2 Unicode strings. It is important to understand the difference between character encoding and font. The encoding method used here (UCS-2) can represent all Unicode characters in existence. Since there are more than 65536 Unicode characters in existence, it may take more than one 16-bit integer to encode one character. But they can all be encoded, so the operating system will internally handle all character sets defined in Unicode. A completely different issue is whether you can see the character on the screen or not. That is a problem of fonts, not character encoding. You must have a font file registered in the unit that contains a visual representation of the character to be shown in order to actually have a character drawn out. Nordic ID units typically contain all fonts needed in Europe, including Cyrillic. Typically absent because of the space they take are all middle and far eastern fonts, and Hebrew. These may be available as a Customizer packet, in which case you can get the font installed even tough it is not part of the factory setup. Contact Nordic ID support for more information. To summarize: The operating system and MHL understands all character encodings defined in Unicode (including far eastern, middle eastern and hebrew), but wheter it can display them or not depends on if there are suitable fonts installed. String in .NET, Java & trough COM. The string data type is internally cast to a suitable format in the wrapper classes provided above. For .NET this means the String class, which is not NULL terminated. The COM component uses the same wide character null terminated string format as MHL, altough the data type definition is a BSTR. In Java the String class is used to represent strings. NOTE: All lengths when dealing with the String data type are wide character lengths (16-bit units), not byte lengths. The NULL character is not included in the lengths.

Binary
This data type is used to handle raw chunks of data, it is made up of unsigned bytes. The data may have an internal structure depending on the MHL Feature function used, but MHL assumes it has none. It is treated as a chunk of data, and no modifying or error checking is done to it. It is copied straight from the MHL Feature Driver to the user application memory buffers, or vice versa. In .NET the byte array data type is used to contain the data, as its internal representation is very close to actual raw bytes. The same goes for the Java wrapper. The COM component is

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 21 / 712

Nordic ID MHL Manual

a special case. It was created to allow end users to use MHL in Internet Explorer client side scripts. Those scripts (JScript and VBScript) do not support pointers, so there is no way to actually represent the data in those languages. For this reason the COM component does not contain the GetBin and SetBin functions.

DWORD
The name of this data type is historical at this point. The WORD data type used to mean the size of the processors registers, when used in the C language compiler made for that processor. The double word was twice that size. Since the DWORD has for a very long time been a 32 bit unsigned interger, it has kind of solidified into always meaning a 32 bit unsigned integer. So even though most of todays processors are 64 bit (and correspondingly have a 64 bit word), the DWORD data type designates an unsigned 32 bit integer in most Windows programming environments. This is also true for MHL. All the wrappers to other languages leave these values unchanged as there is a corresponding native type in those languages. .NET uses the uint, Java has the int and COM uses the long (int and long are signed, but the binary content remains the same).

Integer
This data type is the same 32-bit size as the DWORD, but it is signed. In the .NET and Java wrappers, it is represented by the int datatype. In the COM wrapper, it is represented by the long datatype.

Boolean
While this data type represents a true or false value and thus only has two states it is based on the WIN32 API BOOL datatype. This in turn is a 32 bit unsigned integer. The MHL boolean is also a 32 bit unsigned integer. It is defined so that zero means false and all other values mean true. When setting the value using SetBool the input range is checked, and must be either zero or one. Both .NET and Java have native boolean data types, these are used to represent the MHL boolean trough those wrappers. In COM the WIN32 API BOOL is used.

Mandatory Bits
The information in this Document is subject to change. Nordic ID assumes no responsibility regarding the information presented in this Guide.

Copyright

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 22 / 712

Nordic ID MHL Manual

Nordic ID Oy owns all rights to this document. All rights reserved. Copying this document without the written permission from the manufacturer by printing, copying, recording or by any other means or the full or partial translation of the manual to any other language including all programming languages using any electrical, mechanical, magnetic, optical, manual or other methods or devices is forbidden. Nordic ID reserves the right to change the technical specifications or functions of its products or to discontinue manufacturing of any of its products without any written announcement and urges customers to ensure that the information at their disposal is valid.

Disclaimer
Nordic ID products have not been designed, intended nor inspected to be used in any life support related applications nor as a part of any other critical system and are not granted functional warranty if used in any such applications. Nordic ID urges its customers to arrange proper and adequate user training, which includes safety issues for any personnel using, programming or otherwise handling Nordic ID products.

Trademarks
Nordic ID and the Nordic ID logo are registered trademarks of Nordic ID Oy. All terms mentioned in this document that are known to be trademarks or service marks have been appropriately marked in the list below with either the , or the symbol or started with capital letter. Nordic ID cannot attest to the accuracy of this information. Use of a term in this document should not be regarded as affecting the validity of any trademark or copyright.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 23 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 24 / 712

Nordic ID MHL Manual

Morphic / Merlin MHL Drivers - 2.0


Created 2010-04-10 11:56:19 by Viktor Change Log: First version entered into system

.NET MHL Wrapper v.3 - 3.0


Easier to use, more integrated MHL wrapper class for .NET.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 25 / 712

Nordic ID MHL Manual

Boolean Close()
TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
When you are done with a feature and driver you must call this function to free up resources. If your application is likely to be run exclusively on the unit, it is recommendable that you open and close an MHL feature handle only once during the lifetime of the application. Do not make code that opens and closes the feature rapidly and very often, it is extremely inefficient.

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 26 / 712

Nordic ID MHL Manual

Boolean Execute(string name)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used for MHL feature functions that are of the Executable type. They typically trigger some kind of process or function in hardware. Internally this call is the same as calling the same function with SetBool with a true parameter.

Function Input:
name - The name of the feature to set.

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20003 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 27 / 712

Nordic ID MHL Manual

Binary GetBin(string name)


Min Bytes: 0 Max Bytes: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read Binary value features. In MHL these are feature functions that take or return raw byte data of a specified length. The byte array is used to handle this type of data in this MHL .NET wrapper. This function first asks internally how large the binary data is that could be read, allocates an array that big and then reads the data. Finally it returns the byte array to you. This kind of behavior is not always suitable, for instance when reading a specific amount of bytes from an SPI bus. For those cases, use the other variant of this function that takes a length parameter. Note that it is technically possible that this call sometimes fails with a \"Buffer too small\" error message. This can happen if the size of the data to read changes between the call to get its length and the call to actually read the data. How likely this is to happen depends on the hardware component / software feature in question.

Function Input:
name - The name of the requested feature.

Return Value:
Binary array value for requested feature. Null on failure, if exceptions are not enabled. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20005 20007 20010 20011 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 28 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 29 / 712

Nordic ID MHL Manual

String GetBin(string name, int length)


Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
This is a variant of the GetBin function that takes a length parameter in order to allow reading a specific amount of bytes. In all other respects it works like the other GetBin function.

Function Input:
name - The name of the requested feature.

length - The amount of data to read in bytes.

Return Value:
Binary array value for requested feature. Null on failure, if exceptions are not enabled. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20005 20007 20010 20011 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 30 / 712

Nordic ID MHL Manual

String GetBinAsAsciiString(string name, string delim)


Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function is a convenience function implemented only in the .NET wrapper. Internally it calls GetBin. If you know the binary data you are reading is actually ascii text, you can use this function to convert the GetBin output. This may be the case when reading from an RFID tag which contains data that is known to be in ascii format.

Function Input:
name - The name of the requested BINARY feature. delim - Deliminator character or characters, you do not need to use this and an empty string is ok. The string you provide will be inserted beween every ascii character that is output.

Return Value:
String formatted as ASCII values for requested feature. Null on failure, if exceptions are not enabled. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20002 20005 20007 20010 20011 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 31 / 712

Nordic ID MHL Manual

String GetBinAsHexString(string name, string delim)


Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function is made for convenience as part of the .NET wrapper, and internally it calls GetBin. It justs converts the output to a string of hexadecimal numbers. Each byte is represented by a pair of characters (00 - FF).

Function Input:
name - The name of the binary function to read. delim - Delimeter character or characters between each printed byte. Sending a string with one space character would format the output in this style: [11 22 33 AA BB CC]

Return Value:
String formatted as HEX values for requested feature. Null on failure, if exceptions are not enabled. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20005 20007 20010 20011 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 32 / 712

Nordic ID MHL Manual

Boolean GetBool(string name)


TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL feature functions of BOOL type.

Function Input:
name - The name of the requested feature.

Return Value:
BOOL value for requested feature. Returns false on failure, use GetLastError() to verify errors if exceptions are not enabled. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20002 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 33 / 712

Nordic ID MHL Manual

DWORD GetDword(string name)


Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL feature functions of DWORD type. MHL Dwords are 32 bit unsigned values.

Function Input:
name - The name of the requested feature.

Return Value:
DWORD value for requested feature. -1 on failure, if exceptions are not enabled. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20002 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 34 / 712

Nordic ID MHL Manual

Integer GetHandle()
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
Get low-level driver handle to open driver.

Return Value:
Returns low-level handle to opened driver. If driver is not open, -1 is returned.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 35 / 712

Nordic ID MHL Manual

Integer GetInt(string name)


Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL feature functions of INT type. MHL Integers are 32 bit signed values.

Function Input:
name - The name of the requested feature.

Return Value:
INT value for requested feature. -1 on failure, if exceptions are not enabled. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20002 20005 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 36 / 712

Nordic ID MHL Manual

Integer GetLastError()
Min Value: 0 Max Value: 0 READ / WRITE Stored in MHL Profile.

Description:
This function returns the code of the last WIN32 API Error or MHL error to occur. You can use GetLastErrorMessage to get a string explanation of the last error to occur.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 37 / 712

Nordic ID MHL Manual

String GetLastErrorMessage()
Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function returns the string explanation of the last WIN32 API Error or MHL error to occur. This same message is sent in any exceptions thrown if you enable MHLDriver exceptions (MHLDriver.throwsException = true).

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 38 / 712

Nordic ID MHL Manual

String GetName()
Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
Get currently open driver name.

Return Value:
Returns name of the currently open driver in object instance. If driver is not open, empty string is returned.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 39 / 712

Nordic ID MHL Manual

String GetString(string name)


Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL feature functions of String type.

Function Input:
name - The name of the requested feature.

Return Value:
String value for requested feature. Empty string on failure, if exceptions are not enabled. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20002 20005 20007 20010 20011 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 40 / 712

Nordic ID MHL Manual

Boolean IsOpen()
TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
Get open state.

Return Value:
Returns true if driver is opened successfully.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 41 / 712

Nordic ID MHL Manual

Boolean LoadProfile(string name)


TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
This function is used to load a previously stored configuration of the loaded MHL driver. The idea behind this is that you can store the existing setting when your application starts and then radically alter the settings of the MHL driver to suit your needs. This may include capturing the Scan button so that it sends a virtual key code your program can intercept instead of automatically triggering the scanner. Another typical use is to set up the barcode scanners parameters as you need them to be. Then when your program exits you can load the initial profile and ensure that the device works as a factory default unit when your application is no longer running. You can also use this function to restore factory default settings unless you have previously overwritten the SystemDefault profile.

Function Input:
name - The name of the profile you wish to load. The name must have been used earlier with SaveProfile to store a profile or it must be the SystemDefault profile.

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20007 20013 ERROR_SUCCESS MHL_INVALID_HANDLE MHL_PROFILE_NOT_FOUND

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 42 / 712

Nordic ID MHL Manual

Constructor MHLDriver()
WRITE ONLY NOT stored in MHL Profile.

Description:
Default class constructor. You must call Open to open a driver if you create the class with this constructor.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 43 / 712

Nordic ID MHL Manual

String MHLDriver(string drvName)


Min Chars: 0 Max Chars: 0 WRITE ONLY NOT stored in MHL Profile.

Description:
Class constructor that opens the requested driver. This means the object (and underlying MHL driver) is immediately available for use after the instance has been created.

Function Input:
name - Name of the MHL driver to open.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 44 / 712

Nordic ID MHL Manual

String MHLDriver(string drvName, bool throwsException)


Min Chars: 0 Max Chars: 0 WRITE ONLY NOT stored in MHL Profile.

Description:
Class constructor that opens the requested driver. This means the object (and underlying MHL driver) is immediately available for use after the instance has been created. The throwsException parameter controls whether the class will throw exceptions when errors occur. You can use this to control how you want to check for errors. It is turned off by default which means you need to call GetLastError to see if an error has occurred.

Function Input:
drvName - Name of the MHL driver to open.

throwsException - Set to TRUE to have the class throw exceptions on error, set to FALSE to use WIN32 API style GetLastError calls for error checking.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 45 / 712

Nordic ID MHL Manual

Boolean MHLDriver.throwsException
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
This variable defines if object instance should throw exceptions on error. NOTE: Default is TRUE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 46 / 712

Nordic ID MHL Manual

Boolean Open(string name)


TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
This function opens an MHL feature driver for use. Call this function to select which MHL feature driver you wish the object instance to use, if you have not already done so in the constructor. Once a MHL feature driver has been opened you can call the Get/Set functions to communicate / command the driver. See the specific drivers documentation for information about available functionality.

Function Input:
name - The name of the MHL driver to open.

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 47 / 712

Nordic ID MHL Manual

Boolean SaveProfile(string name)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to store the current configuration of the loaded MHL driver to named profile. The idea behind this is that you can store the existing configuration when your application starts and then radically alter the settings of the MHL driver to suit your needs. This may include capturing the Scan button so that it sends a virtual key code your program can intercept instead of automatically triggering the scanner. Another typical use is to set up the barcode scanners parameters as you need them to be. Then when your program exits you can load the initial profile and ensure that the device works as a factory default unit when your application is no longer running.

Function Input:
name - The name of the profile you wish to store. Use this same name with LoadProfile when you wish to load the previously stored profile. Use the name SystemDefault to override the systems default configuration for this MHL driver.

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20006 20007 ERROR_SUCCESS MHL_INVALID_ARGUMENT MHL_INVALID_HANDLE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 48 / 712

Nordic ID MHL Manual

Boolean SetBin(string name, byte[] val)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write binary data to MHL features that are of binary type.

Function Input:
name - The name of the feature to set. val - byte array containing data to write, the entire array is always sent. Make sure the arrays length matches the number of bytes you intend to write.

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20003 20005 20007 20010 20011 20014 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_BIG MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 49 / 712

Nordic ID MHL Manual

Boolean SetBool(string name, bool val)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a boolean value to MHL features that are of boolean type.

Function Input:
name - The name of the feature to set. val - bool value to write.

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 50 / 712

Nordic ID MHL Manual

Boolean SetDword(string name, int val)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a DWORD value to MHL features that are of DWORD type. The DWORD data type is defined as a 32 bit unsigned integer in MHL.

Function Input:
name - The name of the feature to set val - INT value to set as DWORD

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20006 20007 ERROR_SUCCESS MHL_INVALID_ARGUMENT MHL_INVALID_HANDLE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 51 / 712

Nordic ID MHL Manual

Boolean SetDword(string name, uint val)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a DWORD value to MHL features that are of DWORD type. The DWORD data type is defined as a 32 bit unsigned integer in MHL.

Function Input:
name - The name of the feature to set val - DWORD value to set

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20006 20007 ERROR_SUCCESS MHL_INVALID_ARGUMENT MHL_INVALID_HANDLE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 52 / 712

Nordic ID MHL Manual

Boolean SetInt(string name, int val)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a integer value to MHL features that are of integer type. The INT data type is defined as a 32 bit signed integer in MHL.

Function Input:
name - The name of the feature to set val - Int value to set

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 53 / 712

Nordic ID MHL Manual

Boolean SetString(string name, string val)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a string to MHL features that are of string type.

Function Input:
name - The name of the feature to set val - String value to set

Return Value:
true on success, false on failure. On failure, use GetLastError() ot GetLastErrorMessage() for more information. If exceptions are enabled (MHLDriver.throwsException = true), on failure System.ArgumentException exception is thrown with valid error message.

Error Codes:
0 20001 20003 20005 20007 20010 20011 20014 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_BIG MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 54 / 712

Nordic ID MHL Manual

Backlight - 1.0
The Backlight driver can be used to alter the backlight intensity value of the LCD. The power mode of LCD backlight can also be altered using this driver.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 55 / 712

Nordic ID MHL Manual

DWORD Backlight.KbBlDimLevel
Min Value: 0 Max Value: 100 READ / WRITE Stored in MHL Profile.

Description:
Set/Get keyboard backlight intensity when device is in low-power state.

Function Input:
Value 0 to 100.

Function Output:
Value 0 to 100.

Return Value:
TRUE if the value input was valid, FALSE if it is out of range.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 56 / 712

Nordic ID MHL Manual

DWORD Backlight.KbBlFullLevel
Min Value: 0 Max Value: 100 READ / WRITE Stored in MHL Profile.

Description:
Set/Get keyboard backlight intensity when device is in fullon-power state. (State D0)

Function Input:
Value 0 to 100.

Function Output:
Value 0 to 100.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 57 / 712

Nordic ID MHL Manual

Boolean Backlight.KbBlPower
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Set/Get the current keyboard back-light power state.

Function Input:
Value TRUE (on) or FALSE (off)

Function Output:
Value TRUE (on) or FALSE (off)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 58 / 712

Nordic ID MHL Manual

Boolean Backlight.Power
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Get the current LCD backlight power state.

Error Codes:
1 20011 20014 20016 ERROR_INVALID_FUNCTION MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_BIG MHL_IMAGER_NEED_LICENSE_C

Relevant Code Samples:


Get/Set Backlight, Open/Close Driver - C

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 59 / 712

Nordic ID MHL Manual

Integer Backlight.StepValue
Min Value: -10 Max Value: 10 READ / WRITE Stored in MHL Profile.

Description:
Adjust the current LCD back-light intensity by given value. The current back-light value is increased (+) or decreased (-) the specified number of steps.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 60 / 712

Nordic ID MHL Manual

DWORD Backlight.Value
Min Value: 0 Max Value: 100 READ / WRITE Stored in MHL Profile.

Description:
Get/Set the current LCD back-light intensity value.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 61 / 712

Nordic ID MHL Manual

Extension - 1.0
This feature driver is not present in standard production Morphics and is not available at all for the Merlin. It is a special Extension port handling interface for cases where custom hardware is attached to the Extension port of the Morphic. Even if the Extension driver is present it will not load itself if there is a Laser or Imager barcode reader present as it uses the same connector. The extension feature driver allows control of the I2C interface of the extension connector and four general GPIO pins named by their pin number in the connector. These pins are all handled the same way by the software but their capabilities differ in hardware. All pins can work as inputs with interrupt support and as outputs but pull and drive characteristics differ.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 62 / 712

Nordic ID MHL Manual

DWORD Extension.I2C.Address
Min Value: 0 Max Value: 254 READ / WRITE Stored in MHL Profile.

Description:
This function sets or returns the target chip address of the I2C bus. No bus operation is carried out when calling this function, but the value set here is used with Extension.I2C.Write and Extension.I2C.Read.

Function Input:
The new desired target address for the I2C bus.

Function Output:
The currently selected target address for the I2C bus.

Relevant Code Samples:


Using the I2C bus trough the Extension Feature Driver - C Sharp (MHL Wrapper v2)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 63 / 712

Nordic ID MHL Manual

DWORD Extension.I2C.ClockRate
Min Value: 10000 Max Value: 400000 READ / WRITE Stored in MHL Profile.

Description:
Use this function to control the clock frequency of the I2C bus.

Function Input:
The desired new operating frequency of the I2C bus.

Function Output:
The current operating frequency of the I2C bus.

Relevant Code Samples:


Using the I2C bus trough the Extension Feature Driver - C Sharp (MHL Wrapper v2)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 64 / 712

Nordic ID MHL Manual

Binary Extension.I2C.Read
Min Bytes: 1 Max Bytes: 1024 READ ONLY NOT stored in MHL Profile.

Description:
This function reads bytes from the address set previously by Extension.I2C.Address. If the operation succeeds GetLastError will return ERROR_SUCCESS and on failure ERROR_GEN_FAILURE.

Function Input:
Pointer to buffer that is large enough to contain the bytes to read from the I2C bus.

Error Codes:
0 31 ERROR_SUCCESS ERROR_GEN_FAILURE

Relevant Code Samples:


Using the I2C bus trough the Extension Feature Driver - C Sharp (MHL Wrapper v2)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 65 / 712

Nordic ID MHL Manual

Binary Extension.I2C.Write
Min Bytes: 1 Max Bytes: 1024 WRITE ONLY NOT stored in MHL Profile.

Description:
This function writes bytes to the address set previously by Extension.I2C.Address. If the operation succeeds GetLastError will return ERROR_SUCCESS and on failure ERROR_GEN_FAILURE.

Function Input:
Pointer to buffer containing bytes to write to the I2C bus.

Error Codes:
0 31 ERROR_SUCCESS ERROR_GEN_FAILURE

Relevant Code Samples:


Using the I2C bus trough the Extension Feature Driver - C Sharp (MHL Wrapper v2)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 66 / 712

Nordic ID MHL Manual

Boolean Extension.Pin[X].Default
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Set or query the default output state for the pin [X] where [X] is 3, 4, 16 or 25. This state is the logic level set to the pin initially when it is configured as an output.

Function Input:
Desired default output logic level.

Function Output:
The currently configured default output logic level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 67 / 712

Nordic ID MHL Manual

DWORD Extension.Pin[X].Drive
Min Value: 0 Max Value: 2 READ / WRITE Stored in MHL Profile.

Description:
Configure or query pin [X] drive strength where [X] is 3, 4, 16 or 25. The drive strength setting can be read and written even if the pin is an input, but it makes no practical difference to the pin operation in that case. Possible drive strength settings are: 0 - Standard Drive Strength 1 - High Drive Strength 2 - Max Drive Strength All four GPIO pins support these drive strength settings. Drive strengths are: High-level output current (IOH_S), Std Drive: -2 mA High-level output current (IOH_S), High Drive: -4 mA High-level output current (IOH_S), Max Drive: -8 mA Low-level output current (IOL_S), Std Drive: 2 mA Low-level output current (IOL_S), High Drive: 4 mA Low-level output current (IOL_S), Max Drive: 8 mA

Error Codes:
0 30203 ERROR_SUCCESS EXT_GPIO_WRITE_FAILED

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 68 / 712

Nordic ID MHL Manual

DWORD Extension.Pin[X].Edge
Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
This function sets or gets the interrupt type of pin [X] when set as an input, where [X] is 3, 4, 16 or 25. Valid values are: 0 - No Interrupt 1 - Interrupt on rising edge (logic low to high transition) 2 - Interrupt on falling edge (logic high to low transition) 3 - Interrupt on both rising and falling edges. Note that the last option is not a hardware feature but a software one. When the Interrupt Service Thread handles the interrupt it reads the current logic level of the pin and sets the opposite edge detect. So if it detects a low logic level it enables rising interrupts, and vice versa. This means its response time to a rapidly switching signal is not as fast as pure rising or falling interrupts.

Function Input:
The edge detect setting desired.

Function Output:
The currently configured edge detect setting.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 69 / 712

Nordic ID MHL Manual

String Extension.Pin[X].EvtName
Min Chars: 0 Max Chars: 30 READ ONLY NOT stored in MHL Profile.

Description:
This function returns the name of the named event that is triggered when an interrupt is detected for this pin. Replace [X] with 3, 4, 16 or 25. The event is not triggered when the pin is set as an output and when Extension.Pin[X].Edge is set to disabled. Note that at the time of writing this it was not possible to directly utilize system event objects in .NET CF 2.0. Google does, however, return lots of pages that have how to guides to solve this problem. Here is one of them: http://www.codeproject.com/KB/cs/essentialpinvoke.aspx

Function Output:
The name of the system event that is triggered upon interrupt.

Error Codes:
0 20015 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 70 / 712

Nordic ID MHL Manual

Boolean Extension.Pin[X].Input
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Configure or query the current direction of the pin. Replace the [X] in the function name with 3, 4, 16 or 25. When setting the pin as an input any previously selected pull characteristics are applied. Similarly when configuring a pin as an output any previously selected drive strengths are applied, and the default logic level is set. See the Pull and Drive function for the Hardware capabilities of the pins.

Function Input:
TRUE sets the pin as an GPIO input, FALSE sets the pin to a GPIO output.

Function Output:
TRUE if the pin is currently configured as an input, FALSE if output.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 71 / 712

Nordic ID MHL Manual

DWORD Extension.Pin[X].Pull
Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
Configure or query pin [X] pull resistor settings where [X] is 3, 4, 16 or 25. The pull setting can be read and written even if the pin is an output, but it makes no practical difference to the pin operation in that case. Possible pull settings are: 0 - No pull up / pull down 1 - Keeper 2 - 100 kOhm to GND 3 - 100 kOhm to VCC The pins support the above settings as follows: Pin3: No pull, Keeper and 100 kOhm to VCC Pin4: No pull, Keeper and 100 kOhm to VCC Pin16: No pull Pin25: No pull, Keeper and 100 kOhm to VCC From the iMX31 Reference Manual regarding keeper control: Pull means pull-up/down is selected; refer to Pull Value andDirection column for details. Keeper indicates that a keeper circuit is enabled which holds a logic valuewithout the extra current drain required by a simple pull-up/down resistor.Disable means there is no pull-up, pull-down, or keeper. In this case, the Pull Value and Direction columnmust be ignored.

Function Input:
The desired pull setting.

Function Output:
The currently selected pull setting.

Error Codes:
0 30203 ERROR_SUCCESS EXT_GPIO_WRITE_FAILED

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 72 / 712

Nordic ID MHL Manual

Boolean Extension.Pin[X].State
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
This function sets the logic level of the GPIO pin when the pin is configured as an output. Replace the [X] in the function name with 3, 4, 16 or 25. It also provides the current logic level of the GPIO pin both when configured as an input and output. It does not make sense to try to change the logic level of a pin that is an input, so an attempt will result in an EXT_GPIO_IS_INPUT error.

Function Input:
Desired logic level.

Function Output:
Currently configured or measured logic level.

Error Codes:
0 30201 30203 30204 ERROR_SUCCESS EXT_GPIO_IS_INPUT EXT_GPIO_WRITE_FAILED EXT_GPIO_READ_FAILED

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 73 / 712

Nordic ID MHL Manual

Java Wrapper - 1.0


This "Pseudo Driver" is not actually a MHL feature driver, but documents the MHL Java wrapper class. With this class you can use MHL in your Java projects. The wrapper class is implemented using JNI, and calls mhl_srv.dll in the unit when running to make the actual MHL service calls.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 74 / 712

Nordic ID MHL Manual

void CloseDrv(int handle);


WRITE ONLY NOT stored in MHL Profile.

Description:
When you are done with a feature driver you must call this function to free up resources. If your application is likely to be run exclusively on the unit, it is recommendable that you open and close an MHL feature handle only once during the lifetime of the application. Do not make code that opens and closes the feature rapidly and very often, it is extremely inefficient.

Function Input:
A handle integer to a feature driver previously opened by OpenDrv.

Error Codes:
0 20007 20010 ERROR_SUCCESS MHL_INVALID_HANDLE MHL_DRIVER_NOT_OPEN

Relevant Code Samples:


How to open and close an MHL Driver. - Java

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 75 / 712

Nordic ID MHL Manual

Boolean Execute(int handle, String name);


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used for MHL feature functions that are of the Executable type. They typically trigger some kind of process or function in hardware. Internally this call is the same as calling the same function with SetBool with a TRUE parameter.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the Executable function.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 76 / 712

Nordic ID MHL Manual

byte [] GetBin(int handle, String name);


READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read Binary value features. In Java the binary data is contained in a byte array.

Function Input:
The name of the Binary MHL feature function to read from.

Return Value:
Byte array containing the data read, or a zero length array if the call failed.

Error Codes:
0 20001 20002 20005 20007 20010 20011 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 77 / 712

Nordic ID MHL Manual

boolean GetBool(int handle, String name);


READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL Feature functions of boolean type. MHL booleans are 32 bit integers with a value of either one or zero. All values but zero are interpreted as TRUE. In Java the native datatype boolean is used.

Function Input:
The string name of the boolean function for which the value is to be read.

Return Value:
Returns the boolean value of the feature function in question or the FALSE if the call failed. You need to call GetLastError to know if the call actually failed or not.

Error Codes:
0 20001 20002 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 78 / 712

Nordic ID MHL Manual

int GetDword(int handle, String name);


READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL Feature functions of DWORD type. In Java the int datatype is used to represent the DWORD. Since this is a signed type, values returned by GetDword that have the 32nd bit set will translate to negative values in Java. Take appropriate action if the MHL feature function you are using has a possible return value in that range. Values that have the 32nd bit set will be equal to or larger than 2^31 which is 2 147 483 648;

Function Input:
The string name of the DWORD function for which the value is to be read.

Function Output:
Returns the DWORD value of the feature function in question or 4294967295 (0xFFFFFFFF or -1 in Java) if the call failed. If 0xFFFFFFFF is part of the valid range of values, you need to call GetLastError to ensure that the call was successful if 0xFFFFFFFF is returned.

Error Codes:
0 20001 20002 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 79 / 712

Nordic ID MHL Manual

int GetInt(int handle, String name);


READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL Feature functions of Integer type. MHL Integers are 32 bit signed values. This is the same format as the Java int.

Function Input:
The string name of the Integer function for which the value is to be read.

Return Value:
Returns the int value of the feature function in question or -1 if the call failed. If -1 is part of the valid range of values, you need to call GetLastError to ensure that the call was successful if -1 is returned.

Error Codes:
0 20001 20002 20005 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 80 / 712

Nordic ID MHL Manual

String GetString(int handle, String name);


Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to get the return value of String type MHL feature functions.

Function Input:
The name of the String type MHL feature function to read.

Return Value:
The String returned by the feature function, or an empty string if the call failed. Note that empty strings may be a valid return value, so call GetLastError to detect errors.

Error Codes:
0 20001 20002 20005 20007 20010 20011 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 81 / 712

Nordic ID MHL Manual

int GetStringLen(int handle, String name);


READ ONLY NOT stored in MHL Profile.

Description:
Returns the length of the string currently contained in the feature function in wide chars. This means that if the string contains multibyte characters, they are counted as many characters, not as one. The buffer byte size required to store the string in question will always be the value returned by this function times the byte size of the Windows CE wide character type. In a Win32 API application that calculation could look like this:

int byte_length = returned_length *sizeof(TCHAR);

The TCHAR size has been 2 bytes for all Windows CE versions up to and including 7.0.

Function Input:
The name of the string feature function to request the string length for.

Return Value:
The length of the string in wide characters or zero if the call failed for some reason.

Error Codes:
0 20001 20002 20007 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_HANDLE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 82 / 712

Nordic ID MHL Manual

Boolean LoadProfile(int handle, String name);


TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
This function is used to load a previously stored setup of the MHL feature driver specifed by the handle argument.The idea behind this is that you can store the existing setting when your application starts and then radically alter the settings of the MHL feature driver to suit your needs. This may include capturing the Scan button so that it sends a virtual key code your program can intercept instead of automatically triggering the scanner. Another typical use is to set up the barcode scanners parameters as you need them to be. Then when your program exits you can load the initial profile and ensure that the device works as a factory default unit when your application is no longer running. You can also use this function to restore factory default settings unless you have previously overwritten the SystemDefault profile.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use.

name - The name of the profile you wish to load. The name must have been used earlier with SaveProfile to store a profile or it must be the SystemDefault profile.

Return Value:
TRUE if the profile was successfully stored, FALSE if the call failed. GetLastError returns 0 (ERROR_SUCCESS) on success, in addition to the possible errors below GetLastError can return any valid error message for the RegQueryValueEx & RegOpenKeyEx WIN32 API functions.

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 83 / 712

Nordic ID MHL Manual

0 20007 20013

ERROR_SUCCESS MHL_INVALID_HANDLE MHL_PROFILE_NOT_FOUND

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 84 / 712

Nordic ID MHL Manual

int OpenDrv(String drv)


READ ONLY NOT stored in MHL Profile.

Description:
This function is used to open a driver or feature for usage. To communicate with a driver or feature you must have called this function once. Store the returned handle to pass on as a parameter to the other MHL functions.

Function Input:
The parameter for this function is a string containing the feature driver name. The available drivers are listed in this help. Not all drivers listed here are necessarily available for use in your unit. It depends on what hardware your unit is equipped with. For instance the WWAN and Scanner drivers are only available if the GPRS/EDGE/3G module and Laser/Imager hardware is present, respectively.

Return Value:
This function returns a valid handle if the driver or feature is available. A valid handle is any value that is not 0xFFFFFFFF. This is a 32 bit unsigned int with a value of 4 294 967 295, or in binary all bits are 1. Represented as an signed 32 bit integer the value is -1. The 0xFFFFFFFF value means invalid handle, and is a definition by the name of INVALID_HANDLE_VALUE in the Win32 API. If OpenDrv returns this value, the call has failed. Any other value is a valid handle, technically including zero.

Error Codes:
0 20008 20009 ERROR_SUCCESS MHL_DRIVER_NOT_FOUND MHL_DRIVER_OPEN_FAILED

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 85 / 712

Nordic ID MHL Manual

Relevant Code Samples:


How to open and close an MHL Driver. - Java

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 86 / 712

Nordic ID MHL Manual

Boolean SaveProfile(int handle, String name);


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to store the current configuration of the MHL feature driver whose handle is used. Every MHL feature function documented in this help has a mention of whether they are stored in the profile or not. The idea behind this is that you can store the existing setting when your application starts and then radically alter the settings of the MHL feature driver to suit your needs. This may include capturing the Scan button so that it sends a virtual key code your program can intercept instead of automatically triggering the scanner. Another typical use is to set up the barcode scanners parameters as you need them to be. Then when your program exits you can load the initial profile and ensure that the device works as a factory default unit when your application is no longer running.

The profile is stored in the device registry.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use.

name - The name of the profile you wish to store. Use this same name with LoadProfile when you wish to load the previously stored profile. Use the name SystemDefault to override the systems default setup for this MHL feature driver.

Return Value:
TRUE if the profile was successfully stored, FALSE if the call failed. GetLastError returns 0 (ERROR_SUCCESS) on success, in addition to the possible errors below GetLastError can

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 87 / 712

Nordic ID MHL Manual

return any valid error message for the RegSetValueEx & RegCreateKeyEx WIN32 API

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 88 / 712

Nordic ID MHL Manual

functions.

Error Codes:
0 20006 20007 ERROR_SUCCESS MHL_INVALID_ARGUMENT MHL_INVALID_HANDLE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 89 / 712

Nordic ID MHL Manual

Boolean SetBin(int handle, String name, byte[] val);


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write binary data to MHL features that are of binary type. In Java this form of data is represented by a byte array.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use.

name - The name of the binary function to write the data to.

val - byte arra containing data to write. Note that the length of the array determines the number of bytes to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 20014 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_BIG MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 90 / 712

Nordic ID MHL Manual

Boolean SetBool(int handle, String name, boolean val);


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a boolean value to MHL features that are of boolean type. The BOOL data type is defined as a 32bit integer value in MHL. The only valid values are 0 and 1, but all values other than zero are considered true. In Java the native datatype boolean is used.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the boolean function to write the data to. val - boolean value to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 91 / 712

Nordic ID MHL Manual

Boolean SetDword(int handle, String name, int val);


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a DWORD value to MHL features that are of DWORD type. The DWORD data type is defined as a 32 bit unsigned integer in MHL. In Java the int type is used, which is signed. Be careful that you do not unintentionally pass negative values to SetDword as the cast to an unsigned integer will change the meaning to a very large positive number.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the DWORD function to write the data to. val - integer value to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 92 / 712

Nordic ID MHL Manual

Boolean SetInt(int handle, String name, int val);


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a integer value to MHL features that are of integer type. The int data type is defined as a 32 bit signed integer in MHL. This is the same format as the Java integer.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the integer function to write the data to. val - integer value to write.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 93 / 712

Nordic ID MHL Manual

Boolean SetString(int handle, String name, String val);


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a string to MHL features that are of string type.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the string function to write the data to. val - Pointer to string to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20005 20010 20011 20014 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_INVALID_TYPE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_BIG MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 94 / 712

Nordic ID MHL Manual

Keyboard - 1.0
The Keyboard driver can be used to control keyboard related functions such as changing (virtual) key mappings, and assigning actions to different keys and key combinations. When mapping keys it is important to understand these concepts: 1. To have applications run when a button is pressed assign a command line string to an action and then remap a key to that action. 2. There are four keymaps for every key. There is one for normal operation, one that is active when Alt is pressed and one that is active when Shift is pressed. The last one is for Function key functionality. Since there is no Shift key on the Morphic keyboard, the Shift state is only available for the Merlin. 3. The default keyboard operation in Numeric and Alpha mode cannot be altered, only replaced. When you assign a keyboard mapping or action to a key in a state (or all states) you override the built in keyboard functionality. So if you map a virtual key code to the '1' button in all states, the '1' button will no longer produce the number 1 when pressed. Neither will it produce alphabethic characters when in alpha mode. If you bind the new virtual key code only in for instance the Function state you will only have replaced F1 with your own virtual key code. The most commonly needed functionality from the Keyboard driver is to have your program control the Scan button. See the Specialkey.<Key>.<Modifier>.VK function for a code sample how to do this. Briefly: It is done by remapping the Scan key to F24 (or any F key) and having your program listen for F24 and then trigger the scanner.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 95 / 712

Nordic ID MHL Manual

Boolean Keyboard.FunctionState
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Get/Set the current function key state. i.e. Indicates whether the function key state is currently active or not.

Function Input:
Set current function state. TRUE = Active state FALSE = Inactive state

Function Output:
Returns TRUE if function state is currently active, otherwise FALSE.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 96 / 712

Nordic ID MHL Manual

DWORD Keyboard.InputMode
Min Value: 0 Max Value: 2 READ / WRITE Stored in MHL Profile.

Description:
Get/Set the current keyboard input mode, i.e. whether key presses are configured to generate numerical, small or capital letters. Possible values for Get/Set:
0 = numeric mode (123) 1 = small letters (abc) 2 = capital letter (ABC)

Function Input:
Set active input mode.

Function Output:
Returns current input mode.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 97 / 712

Nordic ID MHL Manual

Boolean Keyboard.KeylockState
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Get/Set the current state of the keyboard lock. The keylock key combination is hardcoded as F + Backspace for the Morphic and Shift + OK for the Merlin.

Function Input:
Set current keyboard lock state. TRUE to lock, FALSE to unlock.

Function Output:
Returns TRUE if keyboard is currently locked, otherwise FALSE.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 98 / 712

Nordic ID MHL Manual

DWORD Keyboard.Reload
Min Value: 0 Max Value: 0 WRITE ONLY NOT stored in MHL Profile.

Description:
Applies the newly configured keyboard settings. This feature should be called after making changes to the keyboard configuration (e.g. after assigning new key mappings), the keyboard mappings do not take effect until this function is called.

Function Input:
Always call with parameter 1.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 99 / 712

Nordic ID MHL Manual

DWORD Keyboard.ScanMode
Min Value: 0 Max Value: 0 READ / WRITE Stored in MHL Profile.

Description:
Defines function of the VK_SCAN virtual key code. I.e. when key that is bound with VK_SCAN is pressed, keyboard driver executes defined action by default. The default keymap has the physical SCAN key bound with VK_SCAN. Note that in order for barcode scanning or RFID reading to work you must of course have a unit with that hardware installed. Possible values for Get/Set:
0 = No operation, VK_SCAN does noting 1 = Perform scan, executes feature "Scanner.ScanAsync" 2 = Execute RFID.ScanAsync

Function Input:
Set active scan mode.

Function Output:
Returns current scan mode.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 100 / 712

Nordic ID MHL Manual

DWORD Keyboard.SendVKDown
Min Value: 0 Max Value: 255 WRITE ONLY NOT stored in MHL Profile.

Description:
Send key down virtual code to system. This can be used to emulate keyboard key down press. NOTE: All SendVKDown calls MUST be followed by a corresponding SendVKUp call. Otherwise behaviour is undefined!

Function Input:
Virtual key code (0-255) to send.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 101 / 712

Nordic ID MHL Manual

DWORD Keyboard.SendVKUp
Min Value: 0 Max Value: 255 WRITE ONLY NOT stored in MHL Profile.

Description:
Send key up virtual code to system. This can be used to emulatekeyboard key release. NOTE: All SendVKDown calls MUST be followed by a corresponding SendVKUp call. Otherwise behaviour is undefined!

Function Input:
Virtual key code (0-255) to send.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 102 / 712

Nordic ID MHL Manual

Boolean Keyboard.StickyFunction.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Get/Set the sticky function state. Sticky function state indicates whether the function state remains active after a key has been pressed. You can do multiple function key presses easily with this feature enabled. The default is that the function state is disabled after a key has been pressed.

Function Input:
Set the current sticky function state. TRUE = Active state FALSE = Inactive state

Function Output:
Returns TRUE if sticky function state is currently active, otherwise FALSE.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 103 / 712

Nordic ID MHL Manual

String SpecialKey.Action[NN]
Min Chars: 0 Max Chars: 260 READ / WRITE Stored in MHL Profile.

Description:
This documentation entry actually documents 50 functions, since the [NN] part of the function name should be replaced with a number from 1 to 50. The functions are used to assign or read action strings. To have an action occur when a button is pressed bind that action string to a key with SpecialKey.<Key>.<Modifier>.Action

Function Input:
A valid path string to an executable. An action is specified in the form of a string containing the full path to the application and parameters for it. Example string: \Program Files\MyApp.exe argument1 argument2

Function Output:
Any previously allocated action string or a null string if no action is bound to that slot.

Error Codes:
0 20006 ERROR_SUCCESS MHL_INVALID_ARGUMENT

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 104 / 712

Nordic ID MHL Manual

DWORD SpecialKey.[Key].[Modifier].Action
Min Value: 0 Max Value: 50 READ / WRITE Stored in MHL Profile.

Description:
This documentation covers a range of function that follow the form SpecialKey.[Key].[Modifier].Action. The [Key] part of the function name should be replaced with the name of the physical key: For the Morphic: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Left, Right, Up, Down, Tab, Ok, Del, Esc, Scan, Function. For the Merlin: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Period, Left, Right, Up, Down, Circle, Square, Tab, Dash, Ok, Del, Esc, Scan, Shift, Alt, Function, 123, Abc. The [Modifier] part should be replaced with the mode to change mapping for (or All for all modes): Normal, Shift, Alt, Function, All NOTE! Shift is only available for Merlin. Example 1: To bind an action to the SCAN key in normal mode, use SpecialKey.Scan.Normal.Action. Example 2: To replace the F1 virtual key code for the 1 button in Function mode, use SpecialKey.1.Function.Action.

Function Input:
Set action number to execute for specific key or key combination press. Use action number 0 to disable action for key press.

Function Output:
Returns action number for specific key or key combination.

Error Codes:
0 20006 ERROR_SUCCESS MHL_INVALID_ARGUMENT

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 105 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 106 / 712

Nordic ID MHL Manual

Boolean SpecialKey.[Key].[Modifier].Repeat
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Get/Set the current repeatable state for the specified key or keycombination. If key is repeatable, it is sent to system repeatly aslong as key is pressed down. The [Key] part of the function name should be replaced with the name of the physical key: For the Morphic: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Left, Right, Up, Down, Tab, Ok, Del, Esc, Scan, Function. For the Merlin: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Period, Left, Right, Up, Down, Circle, Square, Tab, Dash, Ok, Del, Esc, Scan, Shift, Alt, Function, 123, Abc. The [Modifier] part should be replaced with the mode to change mapping for (or All for all modes): Normal, Shift, Alt, Function, All NOTE! Shift is only available for Merlin. Example 1: To make the SCAN key repeatable in ALL modes, use SpecialKey.Scan.All.Repeat. Example 2: To make F1 repeatable, use SpecialKey.1.Function.Repeat.

Function Input:
Set specific key or key combination repeatable state.

Function Output:
Returns TRUE if key has repeatable state set, otherwise FALSE.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 107 / 712

Nordic ID MHL Manual

DWORD SpecialKey.[Key].[Modifier].VK
Min Value: 0 Max Value: 255 READ / WRITE Stored in MHL Profile.

Description:
Get/Set the current virtual key code mapping (0-255) for specified key or key combination. The virtual key code specifies which virtual key code is sent to system when key or key combination is pressed. This documentation covers a range of function that follow the form SpecialKey.[Key].[Modifier].VK. The [Key] part of the function name should be replaced with the name of the physical key: For the Morphic: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Left, Right, Up, Down, Tab, Ok, Del, Esc, Scan, Function. For the Merlin: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Period, Left, Right, Up, Down, Circle, Square, Tab, Dash, Ok, Del, Esc, Scan, Shift, Alt, Function, 123, Abc. The [Modifier] part should be replaced with the mode to change mapping for (or All for all modes): Normal, Shift, Alt, Function, All NOTE! Shift is only available for Merlin. Virtual Key Code Table

Example 1: To bind a Virtual Key Code to the SCAN key in ALL modes, use SpecialKey.Scan.All.VK. Example 2: To replace the F1 virtual key code for the 1 button in Function mode, use SpecialKey.1.Function.VK. IMPORTANT NOTES! 1. The mapping only takes effect when you call Keyboard.Reload. 2. The mapping stays even if your app closes. See the code sample below for how to use profiles to restore the keyboard mapping when your application closes.

Function Input:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 108 / 712

Nordic ID MHL Manual

Set virtual key code to send for specific key or key combination press. Use virtual key code 0 to disable the special Virtual Key Code functionality for the specified mapping. This will return the normal operation of the keyboard for that mapping.

Function Output:
Returns virtual key code for specific key or key combination.

Error Codes:
0 20006 87 ERROR_SUCCESS MHL_INVALID_ARGUMENT ERROR_INVALID_PARAMETER

Relevant Code Samples:


Control the SCAN button & barcode scanner (multithreaded). - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 109 / 712

Nordic ID MHL Manual

MHL Base C/C++ - 2.0


This pseudo-driver documents the MHL base functions used to access all MHL Features. It is as the functions are used in C/C++. The functions are the same for other languages but they are contained in a wrapper and so are accessed differently and with less parameters. If you have any C or C++ coding background, then MHL C and C++ API support is fairly simple to include in your software project. What you need is a mhl.h header file. (Of course, a Morphic Windows CE 6.0 SDK must be installed on your workstation.) The mhl.h header file as well serves as a good starting point for the MHL C/C++ API. It can provide more intuitive approach to the API functions than the text below if you are familiar with the file I/O functions of Windows CE. Be aware that the propertys identifier string is referred to as feature name in the header file. You may be used to the kind of API or SDK that supplies you with a library to link your functions against. MHL does not work in this way since MHL is a Service. It is always running on the unit, and is part of the OS image. You do not link against it, you make service calls to it. The idea behind mhl.h is to provide you an API like programming interface where you can make function calls as if you were working against a function library. But internally the calls contained in MHL.h make service calls to the MHL service at runtime, no compile time linking is done. This means you do not have the "DLL hell" problem typically associated with DLL library API's. You can still have the problem that the Feature you are trying to use is not present in the unit your application is running on, so always check that MHL_OpenDrv was successful. MHL usage in C/C++ shows MHL in its "clean" form. All other programming environments require wrapper projects, usually because you cannot make Service calls from them. There are three wrappers available; .NET, Java and COM. They all work by invoking C DLL calls to mhl_srv.dll in the unit, and that DLL in turn makes the actual service calls. You do not need to have that DLL at build time to compile and deploy your projects. See the corresponding wrapper for more documentation with regards to the environment in question (Java, .NET or COM).

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 110 / 712

Nordic ID MHL Manual

Boolean MHL_CloseDrv(HANDLE handle)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
When you are done with a feature and driver you must call this function to free up resources. If your application is likely to be run exclusively on the unit, it is recommendable that you open and close an MHL feature handle only once during the lifetime of the application. Do not make code that opens and closes the feature rapidly and very often, it is extremely inefficient.

Function Input:
A HANDLE to a Driver previously opened by MHL_OpenDrv.

Return Value:
TRUE if the driver was successfully closed.

Error Codes:
0 20007 20010 ERROR_SUCCESS MHL_INVALID_HANDLE MHL_DRIVER_NOT_OPEN

Relevant Code Samples:


How to open and close an MHL Driver. - C++

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 111 / 712

Nordic ID MHL Manual

Boolean MHL_DeleteProfile(HANDLE hDrv, const TCHAR *name)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function deletes a profile previously saved by MHL_SaveProfile. See MHL_SaveProfile for more information about MHL profiles.

Function Input:
hDrv - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the existing profile you wish to delete.

Return Value:
TRUE if the profile was successfully stored, FALSE if the call failed. GetLastError will contain the error code of RegOpenKeyEx if the call fails.

Error Codes:
0 20007 ERROR_SUCCESS MHL_INVALID_HANDLE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 112 / 712

Nordic ID MHL Manual

Execute MHL_Execute(HANDLE hDrv, const TCHAR *name)


WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used for MHL feature functions that are of the Executable type. They typically trigger some kind of process or function in hardware. Internally this call is the same as calling the same function with MHL_SetBool with a TRUE parameter.

Function Input:
hDrv - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the Exectuable function.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Relevant Code Samples:


Commanding the WWAN driver to connect to the default network - C++

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 113 / 712

Nordic ID MHL Manual

Binary MHL_GetBin(HANDLE handle, const TCHAR *name, BYTE *buffer, DWORD buflen)
Min Bytes: 0 Max Bytes: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read Binary value features. This means MHL Features that take a user allocated BYTE pointer and write the requested data to it.

Function Input:
handle - MHL feature driver handle. name - Name of the binary feature function. buffer - A pointer to a BYTE address that is valid for the kernel to write to up to buflen Bytes. buflen - Size in bytes of the buffer pointed to by buffer

Return Value:
The number of bytes copied to the buffer.

Error Codes:
20001 20002 20005 20007 20010 20011 20015 MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Relevant Code Samples:


Read the ID string of any RFID tags in the RF-field - C++

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 114 / 712

Nordic ID MHL Manual

String MHL_GetBool(HANDLE hDrv, const TCHAR *name)


Min Chars: 0 Max Chars: 1 READ / WRITE Stored in MHL Profile.

Description:
This function is used to read the value of MHL Feature functions of boolean type. MHL booleans are 32 bit integers with a value of either one or zero. All values but zero are interpreted as TRUE.

Function Input:
hDrv - Handle to the MHL feature driver. name - The string name of the boolean function for which the value is to be read.

Return Value:
Returns the boolean value of the feature function in question or the value FALSE if the call failed. You need to call GetLastError to actually know if the call failed or not.

Error Codes:
0 20001 20002 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 115 / 712

Nordic ID MHL Manual

Double MHL_GetDouble(HANDLE hDrv, const TCHAR *name)


READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL Feature functions of double type. MHL doubles are 64 bit floating point values. Their precision are 1.7E +/- 308 (15 digits). Note! The MHL_GetDouble & MHL_SetDouble function is available from Morphic image 2.1.0 and Merlin image 1.6.0. In these images there are no feature drivers that have feature functions of the double type. This function was added to allow future GPS integration among other things.

Function Input:
hDrv - Handle to the MHL feature driver. name - The string name of the double function for which the value is to be read.

Return Value:
Returns the double value of the feature function in question or the NaN (Not a Number) constant if the call failed. In C/C++ the NaN constant is 0xFFFFFFFF hexadecimal cast to a double. Note that NaN is a 32 bit value even tough the double data type is 64 bit here.

Error Codes:
0 20001 20002 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 116 / 712

Nordic ID MHL Manual

DWORD MHL_GetDword(HANDLE hDrv, const TCHAR *name)


Min Value: 0 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL Feature functions of DWORD type.

Function Input:
hDrv - Handle to the MHL feature driver. name - The string name of the DWORD function for which the value is to be read.

Return Value:
Returns the DWORD value of the feature function in question or 4294967295 (0xFFFFFFFF) if the call failed. If 0xFFFFFFFF is part of the valid range of values, you need to call GetLastError to ensure that the call was successful if 0xFFFFFFFF is returned.

Error Codes:
0 20001 20002 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Relevant Code Samples:


Checks that the WLAN adapter is connected and to which SSID. Also gets signal strength in dBm and percentage. - C++

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 117 / 712

Nordic ID MHL Manual

Integer MHL_GetFeatureCount(HANDLE handle)


Min Value: 0 Max Value: 4096 READ ONLY NOT stored in MHL Profile.

Description:
This function is typically not used by application developers. It is used to count the number of functions in a feature driver. This is something you would need to do only if you create some form of automated MHL settings dialog, such as the barcode configuration page in the Scanner Control Panel applet. Most applications use known functions only and do not need to enumerate them at runtime.

Function Input:
handle - Handle to the MHL feature driver.

Return Value:
The number of functions the feature driver contains (whose handle was passed as an argument).

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 118 / 712

Nordic ID MHL Manual

Boolean MHL_GetFeatureInfo(HANDLE handle, const TCHAR *name,MHL_VALUE_V2 *value)


TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
Get feature info by feature name. Mostly used internally by Nordic ID.

Function Input:
hDrv - Handle to the MHL feature driver. name - MHL feature function to query for info. value - Pointer to MHL_VALUE_V2 struct that receives the requested information.

Return Value:
TRUE if the requested information could be fetched, FALSE otherwise.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 119 / 712

Nordic ID MHL Manual

Boolean MHL_GetFeatureInfoIdx(HANDLE handle, ULONG idx, MHL_VALUE_V2 *value, TCHAR *namebuf)


TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
Get feature info and name by feature index. Used internally when enumerating functions. Application developers typically have no need of this function, as the function calls are known in advance and do not need to be enumerated at runtime. To use this function you would typically call MHL_GetFeatureCount and use the count retuned from there call this function for every index from zero to the returned count.

Function Input:
handle - The handle to a previously opened feature driver. idx - The integer index of the function for which you wish to have the information returned. value - Pointer to MHL_VALUE_V2 struct to receive function information. namebuf - Pointer to TCHAR buffer that receives the name of the MHL feature function. Must be at least 64 characters long.

Function Output:
The name of the feature function specified by the index and its type.

Return Value:
TRUE if the requested information was retrieved, FALSE if not.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 120 / 712

Nordic ID MHL Manual

Integer MHL_GetInt(HANDLE hDrv, const TCHAR *name)


Min Value: -2147483648 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to read the value of MHL Feature functions of Integer type. MHL Integers are 32 bit unsigned values.

Function Input:
hDrv - Handle to the MHL feature driver. name - The string name of the Integer function for which the value is to be read.

Return Value:
Returns the int value of the feature function in question or -1 if the call failed. If -1 is part of the valid range of values, you need to call GetLastError to ensure that the call was successful if -1 is returned.

Error Codes:
0 20001 20002 20005 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 121 / 712

Nordic ID MHL Manual

DWORD MHL_GetString(HANDLE handle, const TCHAR *name, TCHAR *buffer, DWORD buflen)
Min Value: 0 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
This function is used to get the return value of String type MHL feature functions. You need to call it with a buffer you have allocated, and the length of the buffer needs to be given. If you expect to routinely handle large string return values but you do not want to allocate a permanent buffer of needlessly large size, call the MHL_GetStringLen function to get the character length of the string, allocate your buffer, and call again with the newly allocated buffer. Note that the call can still fail because the buffer is too small if the internal data has changed between the calls. This would happen if for instance you are reading the SSID of the network the unit is connected to at the moment, and it changes between the first call and the second. How likely this is to happen depends on if your application is running exclusively on the unit, and what hardware component is in question. Note that Windows CE, since its birth, has always used UCS-2 Unicode strings in all operating system functionality. This is also true for MHL. String lengths are character lengths, not byte lengths. Also note that a factory default unit will never return string containing UCS-2 characters made up of more than 16 bytes (multibyte). So unless you or anyone else has written multibyte UCS-2 characters, it is safe to assume that the byte length of a string is wcslen(str) / sizeof (TCHAR). To be 100% sure and make no assumptions, use the WideCharToMultiByte function. It can be used to get the byte length of a specified wide char string.

Function Input:
handle - Handle to MHL feature driver. name - MHL feature function to call. buffer - Buffer to copy string reply to. buflen - The size of buffer in characters.

Function Output:
The string is copied to your buffer and the and the number of wide characters copied to buflen.

Return Value:
The length of the string returned in characters or zero if the call failed.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 122 / 712

Nordic ID MHL Manual

Error Codes:
0 20001 20002 20005 20007 20010 20011 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_SMALL

Relevant Code Samples:


Checks that the WLAN adapter is connected and to which SSID. Also gets signal strength in dBm and percentage. - C++

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 123 / 712

Nordic ID MHL Manual

DWORD MHL_GetStringLen(HANDLE hDrv, const TCHAR *name)


Min Value: 0 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
Returns the length of the string currently contained in the feature function in wide chars. This means that if the string contains multibyte characters, they are counted as many characters, not as one. The buffer byte size required to store the string in question will always be the value returned by this function times the byte size of the Windows CE wide character type. In a Win32 API application that calculation could look like this: int byte_length = returned_length *sizeof(TCHAR);

Function Input:
Handle to the driver in question and the name of the string feature function to request the string length for.

Return Value:
The length of the string in wide characters or zero if the call failed for some reason.

Error Codes:
0 20001 20002 20007 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_READABLE MHL_INVALID_HANDLE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 124 / 712

Nordic ID MHL Manual

Boolean MHL_LoadProfile(HANDLE hDrv, const TCHAR *name)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to load a previously stored setup of the MHL feature driver in question. This applies to all those functions that are marked to be stored in the profile. The idea behind this is that you can store the existing setting when your application starts and then radically alter the settings of the MHL feature driver to suit your needs. This may include capturing the Scan button so that it sends a virtual key code your program can intercept instead of automatically triggering the scanner. Another typical use is to set up the barcode scanners parameters as you need them to be. Then when your program exits you can load the initial profile and ensure that the device works as a factory default unit when your application is no longer running. You can also use this function to restore factory default settings unless you have previously overwritten the SystemDefault profile.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the profile you wish to load. The name must have been used earlier with MHL_SaveProfile to store a profile or it must be the SystemDefault profile.

Return Value:
TRUE if the profile was successfully stored, FALSE if the call failed. GetLastError returns 0 (ERROR_SUCCESS) on success, in addition to the possible errors below GetLastError can return any valid error message for the RegQueryValueEx & RegOpenKeyEx WIN32 API functions.

Error Codes:
0 20007 20013 ERROR_SUCCESS MHL_INVALID_HANDLE MHL_PROFILE_NOT_FOUND

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 125 / 712

Nordic ID MHL Manual

String MHL_OpenDrv(const TCHAR *drv)


Min Chars: 1 Max Chars: 256 READ / WRITE Stored in MHL Profile.

Description:
This function is used to open a driver or feature for usage. To communicate with a driver or feature you must have called this function once. Store the returned handle to pass on as a parameter to the other MHL functions.

Function Input:
The parameter for this function is a TCHAR string pointing to the feature/driver name. The available drivers are listed in this help. Not all drivers listed here are necessarily available for use in your unit. It depends on what hardware your unit is equipped with. For instance the WWAN and Scanner drivers are only available if the GPRS/EDGE/3G module and Laser/Imager hardware is present, respectively.

Return Value:
This function returns a valid handle if the driver or feature is available. A valid handle is any value that is not 0xFFFFFFFF. This is a 32 bit unsigned int with a value of 4 294 967 295, or in binary all bits are 1. Represented as an signed 32 bit integer the value is -1. The 0xFFFFFFFF value means invalid handle, and is a definition by the name of INVALID_HANDLE_VALUE in the Win32 API. If MHL_OpenDrv returns this value, the call has failed. Any other value is a valid handle, technically including zero.

Error Codes:
0 20008 20009 ERROR_SUCCESS MHL_DRIVER_NOT_FOUND MHL_DRIVER_OPEN_FAILED

Relevant Code Samples:


How to open and close an MHL Driver. - C++

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 126 / 712

Nordic ID MHL Manual

Boolean MHL_SaveProfile(HANDLE hDrv, const TCHAR *name)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to store the current configuration of the MHL feature driver in question, for all those functions whose settings are stored in the profile. The idea behind this is that you can store the existing setting when your application starts and then radically alter the settings of the MHL feature driver to suit your needs. This may include capturing the Scan button so that it sends a virtual key code your program can intercept instead of automatically triggering the scanner. Another typical use is to set up the barcode scanners parameters as you need them to be. Then when your program exits you can load the initial profile and ensure that the device works as a factory default unit when your application is no longer running.

The profile is stored in the device registry.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the profile you wish to store. Use this same name with MHL_LoadProfile when you wish to load the previously stored profile. Use the name SystemDefault to override the systems default setup for this MHL feature driver.

Return Value:
TRUE if the profile was successfully stored, FALSE if the call failed. GetLastError returns 0 (ERROR_SUCCESS) on success, in addition to the possible errors below GetLastError can return any valid error message for the RegSetValueEx & RegCreateKeyEx WIN32 API functions.

Error Codes:
0 20006 20007 ERROR_SUCCESS MHL_INVALID_ARGUMENT MHL_INVALID_HANDLE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 127 / 712

Nordic ID MHL Manual

Binary MHL_SetBin(HANDLE hDrv, const TCHAR *name, BYTE *bin_value, DWORD len)
Min Bytes: 0 Max Bytes: 2147483647 WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write binary data to MHL features that are of binary type.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the binary function to write the data to. bin_value - buffer containing data to write. len - byte length of the data pointed to by bin_value.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 20014 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_BIG MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 128 / 712

Nordic ID MHL Manual

Boolean MHL_SetBool(HANDLE hDrv, const TCHAR *name, BOOL bool_value)


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a boolean value to MHL features that are of boolean type. The BOOL data type is defined as a 32bit integer value in MHL. The only valid values are 0 and 1, but all values other than zero are considered true.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the boolean function to write the data to. bool_value - boolean value to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 129 / 712

Nordic ID MHL Manual

Double MHL_SetDouble(HANDLE hDrv, const TCHAR *name, double double_value)


WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a double value to MHL features that are of double type. The double data type is defined as a 64bit floating point value in MHL. Note! The MHL_GetDouble & MHL_SetDouble function is available from Morphic image 2.1.0 and Merlin image 1.6.0. In these images there are no feature drivers that have feature functions of the double type. This function was added to allow future GPS integration among other things.

Function Input:
hDrv - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the double function to write the data to. double_value - double value to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 130 / 712

Nordic ID MHL Manual

DWORD MHL_SetDword(HANDLE hDrv, const TCHAR *name, DWORD dw_value)


Min Value: 0 Max Value: 2147483647 WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a DWORD value to MHL features that are of DWORD type. The DWORD data type is defined as a 32 bit unsigned integer in MHL.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the DWORD function to write the data to. dw_value - DWORD value to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 131 / 712

Nordic ID MHL Manual

Integer MHL_SetInt(HANDLE hDrv, const TCHAR *name, int int_value)


Min Value: -2147483648 Max Value: 2147483647 WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a integer value to MHL features that are of integer type. The int data type is defined as a 32 bit signed integer in MHL.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use. name - The name of the integer function to write the data to. int_value - integer value to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20004 20005 20007 20010 20011 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_OUT_OF_RANGE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 132 / 712

Nordic ID MHL Manual

String MHL_SetString(HANDLE hDrv, const TCHAR *name, const TCHAR *str_value)


Min Chars: 0 Max Chars: 2147483647 WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a string to MHL features that are of string type.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use.name - The name of the string function to write the data to.str_value - Pointer to null terminated string to write.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20005 20007 20010 20011 20014 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_BIG MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 133 / 712

Nordic ID MHL Manual

String MHL_SetStringEx(HANDLE hDrv, const TCHAR *name, const TCHAR *str_value, int len)
Min Chars: 0 Max Chars: 2147483647 WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used to write a string to MHL features that are of string type. This function can be used by anyone, but it is primarily intended for the wrapper for .NET. The .NET string is not null terminated so this function is more suitable to use inside the wrapper compared to MHL_SetString.

Function Input:
handle - The previously opened handle to the MHL Feature Driver you wish to use.name - The name of the binary function to write the data to.str_value - Pointer to string to write, need not be null terminated. len - Wide character length of the string pointed to by str_value.

Return Value:
TRUE if the call succeeded, FALSE if not. Use GetLastError for extended error information.

Error Codes:
0 20001 20003 20005 20007 20010 20011 20014 20015 ERROR_SUCCESS MHL_FEATURE_NOT_FOUND MHL_NOT_WRITABLE MHL_INVALID_TYPE MHL_INVALID_HANDLE MHL_FEATURE_NOTSUPP MHL_FEATURE_NOTIMP MHL_ERROR_BUFFER_TOO_BIG MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 134 / 712

Nordic ID MHL Manual

PowerButton - 1.0
The Power Button driver can be used to change virtual key to send and the program to execute when power button is pressed. Note: This only applies for presses under four seconds in duration. Holding the button down for over four seconds always triggers hardware reset.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 135 / 712

Nordic ID MHL Manual

String PowerButton.Exec
Min Chars: 0 Max Chars: 255 READ / WRITE Stored in MHL Profile.

Description:
This function sets what program is started when the power button is pressed. The string sent must be a valid path to an executable on the device, not to a link file. The program itself is responsible for hiding itself if it is already started and toggle functionality is desired. Program parameters are acceptable in the string, in the same format as they would be in a standard command line. CreateProcess is used to start the program when the button is pressed.

Function Input:
The path to the desired program as described above.

Function Output:
The path to the program currently set to start when the power button is pressed.

Error Codes:
0 20004 ERROR_SUCCESS MHL_OUT_OF_RANGE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 136 / 712

Nordic ID MHL Manual

String PowerButton.VirtualKey
Min Chars: 0 Max Chars: 255 READ / WRITE Stored in MHL Profile.

Description:
Set/Get the virtual key code mapping for the power button. The virtual key code specifies which virtual key code to send when the power button is pressed. Valid virtual key codes are listed in MSDN. Note that this feature is independent of any applications that are executed when the button is pressed. If both are specified, both are used. Set the virtual keycode to zero to disable, it will still send VK zero but this is to get the click sound.

Function Input:
New Virtual Key Code to bind to the power button.

Function Output:
Current VK binding.

Error Codes:
0 20004 ERROR_SUCCESS MHL_OUT_OF_RANGE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 137 / 712

Nordic ID MHL Manual

RFID In preparation ...

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 138 / 712

Nordic ID MHL Manual

Boolean Codes.GIAI.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding the GS1 GIAI-96 identifier of the EPC Binary Encoding received from a tag to the form being readable by humans. The actual decoding is done, and the result is read using an RFID.Decode or an RFID.ScanAsync function. When decoding the GIAI-96 system identfier the result is arranged into the following pattern as an Unicode (UTF16) character string: GIAI96.<Partition Value>.<GS1 Company Prefix>.<Individual Asset Reference> Be aware that a delimiter character may be changed using a Codes.Splitter function. In addition, the prefix GIAI96 is optional, and it may be included or left out using a Decoder.PrependId. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Enable decoding the GS1 GIAI-96 system identifiers of the singulated tags. FALSE = Disable decoding the GS1 GIAI-96 system identifiers of the singulated tags.

Function Output:
TRUE = The GS1 GIAI-96 system identifiers are received or shown in the form being readable by humans. FALSE = The GS1 GIAI-96 system identifiers are not shown nor received, but the RFID.Decode and the RFID.ScanAsync functions end in failure. However, the end result of the RFID.ScanAsync is conditional on the position of a Decoder.Enabled switch.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 139 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 140 / 712

Nordic ID MHL Manual

Boolean Codes.GIAI.EnableFiltering [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable filtering the GS1 GIAI system identifiers. The filtering covers the GIAI-96 identifiers. For more information on filtering the GIAI system identifiers, see Codes.GIAI.Filters function.

Function Input:
TRUE = Turn the GIAI filtering to the on position. FALSE = Turn the GIAI filtering to the off position.

Function Output:
TRUE = Filtering the GIAI identifiers is in use. FALSE = Filtering is not applied to the GIAI identifiers.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 141 / 712

Nordic ID MHL Manual

Binary Codes.GIAI.Filters
Min Bytes: 8 Max Bytes: 8 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets filtering of the GIAI identifiers. The filtering is based on the filter values as stated by the EPC Tag Data Standard. The filter test is done on GIAI identifiers within the scope of the RFID.ScanAsync call, when Codes.GIAI.EnableFiltering is called to enable the filtering. In addition, the Decoder.Enabled switch shall be turned to the on position. The EPC Tag Data Standard specifies eight 3-bit filter values allowing to define selection/deselection criteria for filtering any particular GS1 system identifier type. Accordingly, the Codes.GIAI.Filters function takes the array parameter being eight bytes in length. Each position (index value) of the byte array element represents one of the 3-bit filter values, that is, the filter value 0b000 (in binary) refers to the first element in the array (zeroth element) and the value 0b111 to the last one. The byte array parameter to the filter function is set as follows. As the identifier with a particular filter value is wanted to pass through the filter test, the value 1 is placed into the array byte that the filter value refers to. If an identifer is wanted to filter out, its filter value shall refer to the array byte that has been assigned the value 0. For more information on the meaning of the filter values of the GIAI, see The EPC Tag Data Standard. Last error codes: ERROR_SUCCESS

Function Input:
Assign these filter items the byte values in this byte array specify to the filter test done on the GIAI identifiers. The array is eight bytes in length.

Function Output:
Filter for the GIAI identifiers to filter out the identifiers being of no interest. (Default filter allows the GIAI identifier from any tag to pass through the filter test.)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 142 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 143 / 712

Nordic ID MHL Manual

Boolean Codes.GRAI.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding the GS1 GRAI-96 identifier of the EPC Binary Encoding received from a tag to the form being readable by humans. The actual decoding is done, and the result is read using an RFID.Decode or an RFID.ScanAsync function. When decoding the GRAI-96 system identfier the result is arranged into the following pattern as an Unicode (UTF16) character string: GRAI96.<Partition Value>.<GS1 Company Prefix>.<Asset Type>.<Serial> Be aware that a delimiter character may be changed using a Codes.Splitter function. In addition, the prefix GRAI96 is optional, and it may be included or left out using a Decoder.PrependId. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Enable decoding the GS1 GRAI-96 system identifiers of the singulated tags. FALSE = Disable decoding the GS1 GRAI-96 system identifiers of the singulated tags.

Function Output:
TRUE = The GS1 GRAI-96 system identifiers are received or shown in the form being readable by humans. FALSE = The GS1 GRAI-96 system identifiers are not shown nor received, but the RFID.Decode and the RFID.ScanAsync functions end in failure. However, the end result of the RFID.ScanAsync is conditional on the position of a Decoder.Enabled switch.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 144 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 145 / 712

Nordic ID MHL Manual

Boolean Codes.GRAI.EnableFiltering
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable filtering the GS1 GRAI system identifiers. The filtering covers the GRAI-96 identifiers. For more information on filtering the GRAI system identifiers, see Codes.GRAI.Filters function.

Function Input:
TRUE = Turn the GRAI filtering to the on position. FALSE = Turn the GRAI filtering to the off position.

Function Output:
TRUE = Filtering the GRAI identifiers is in use. FALSE = Filtering is not applied to the GRAI identifiers.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 146 / 712

Nordic ID MHL Manual

Boolean Codes.GRAI.Filters [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets filtering of the GRAI identifiers. The filtering is based on the filter values as stated by the EPC Tag Data Standard. The filter test is done on GRAI identifiers within the scope of the RFID.ScanAsync call, when Codes.GRAI.EnableFiltering is called to enable the filtering. In addition, the Decoder.Enabled switch shall be turned to the on position. The EPC Tag Data Standard specifies eight 3-bit filter values allowing to define selection/deselection criteria for filtering any particular GS1 system identifier type. Accordingly, the Codes.GRAI.Filters function takes the array parameter being eight bytes in length. Each position (index value) of the byte array element represents one of the 3-bit filter values, that is, the filter value 0b000 (in binary) refers to the first element in the array (zeroth element) and the value 0b111 to the last one. The byte array parameter to the filter function is set as follows. As the identifier with a particular filter value is wanted to pass through the filter test, the value 1 is placed into the array byte that the filter value refers to. If an identifer is wanted to filter out, its filter value shall refer to the array byte that has been assigned the value 0. For more information on the meaning of the filter values of the GRAI, see The EPC Tag Data Standard. Last error codes: ERROR_SUCCESS

Function Input:
Assign these filter items the byte values in this byte array specify to the filter test done on the GRAI identifiers. The array is eight bytes in length.

Function Output:
Filter for the GRAI identifiers to filter out the identifiers being of no interest. (Default filter allows the GRAI identifier from any tag to pass through the filter test.)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 147 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 148 / 712

Nordic ID MHL Manual

Boolean Codes.SGLN.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding the GS1 SGLN-96 identifier of the EPC Binary Encoding received from a tag to the form being readable by humans. The actual decoding is done, and the result is read using an RFID.Decode or an RFID.ScanAsync function. When decoding the SGLN-96 system identfier the result is arranged into the following pattern as an Unicode (UTF16) character string: SGLN96.<Partition Value>.<GS1 Company Prefix>.<Location Refrence>.<Extension> Be aware that a delimiter character may be changed using a Codes.Splitter function. In addition, the prefix SGLN96 is optional, and it may be included or left out using a Decoder.PrependId. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Enable decoding the GS1 SGLN-96 system identifiers of the singulated tags. FALSE = Disable decoding the GS1 SGLN-96 system identifiers of the singulated tags

Function Output:
TRUE = The GS1 SGLN-96 system identifiers are received or shown in the form being readable by humans. FALSE = The GS1 SGLN-96 system identifiers are not shown nor received, but the RFID.Decode and the RFID.ScanAsync functions end in failure. However, the end result of the RFID.ScanAsync is conditional on the position of a Decoder.Enabled switch.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 149 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 150 / 712

Nordic ID MHL Manual

Boolean Codes.SGLN.EnableFiltering [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable filtering the GS1 SGLN system identifiers. The filtering covers the SGLN-96 identifiers. For more information on filtering the SGLN system identifiers, see Codes.SGLN.Filters function. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Turn the SGLN filtering to the on position. FALSE = Turn the SGLN filtering to the off position.

Function Output:
TRUE = Filtering the SGLN identifiers is in use. FALSE = Filtering is not applied to the SGLN identifiers.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 151 / 712

Nordic ID MHL Manual

Binary Codes.SGLN.Filters [AS399X]


Min Bytes: 8 Max Bytes: 8 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets filtering of the SGLN identifiers. The filtering is based on the filter values as stated by the EPC Tag Data Standard. The filter test is done on SSCC identifiers within the scope of the RFID.ScanAsync call, when Codes.SGLN.EnableFiltering is called to enable the filtering. In addition, the Decoder.Enabled switch shall be turned to the on position. The EPC Tag Data Standard specifies eight 3-bit filter values allowing to define selection/deselection criteria for filtering any particular GS1 system identifier type. Accordingly, the Codes.SGLN.Filters function takes the array parameter being eight bytes in length. Each position (index value) of the byte array element represents one of the 3-bit filter values, that is, the filter value 0b000 (in binary) refers to the first element in the array (zeroth element) and the value 0b111 to the last one. The byte array parameter to the filter function is set as follows. As the identifier with a particular filter value is wanted to pass through the filter test, the value 1 is placed into the array byte that the filter value refers to. If an identifer is wanted to filter out, its filter value shall refer to the array byte that has been assigned the value 0. For more information on the meaning of the filter values of the SGLN, see The EPC Tag Data Standard. Last error codes: ERROR_SUCCESS

Function Input:
Assign these filter items the byte values in this byte array specify to the filter test done on the SGLN identifiers. The array is eight bytes in length.

Function Output:
Filter for the SGLN identifiers to filter out the identifiers being of no interest. (Default filter allows the SGLN identifier from any tag to pass through the filter test.)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 152 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 153 / 712

Nordic ID MHL Manual

Boolean Codes.SGTIN.CheckDigit [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to add an modulo 10 check digit to the end of a 14-digit GTIN code string. When the SGTIN-96 system identfier is converted into the 14-digit GTIN code string, and the check digit switch is turned to the on position the result is arranged into the following pattern as an Unicode (UTF16) character string: <Indicator Digit><Company Prefix><Item Refrence><Check Digit> Be aware that there is no delimiter characters in the 14-digit GTIN code output. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Apply a check digit to the conversion from the SGTIN-96 system identifier to the 14-digit GTIN code. FALSE = Do not add the check digit to the conversion.

Function Output:
TRUE = Check digit will be included in the 14-digit GTIN code. FALSE = No addition of a check digit.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 154 / 712

Nordic ID MHL Manual

Boolean Codes.SGTIN.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding the GS1 SGTIN-96 identifier of the EPC Binary Encoding received from a tag to the form being readable by humans. The actual decoding is done, and the result is read using an RFID.Decode or an RFID.ScanAsync function. When decoding the SGTIN-96 system identfier the result is arranged into the following pattern as an Unicode (UTF16) character string: SGTIN96.<Partition Value>.<GS1 Company Prefix>. <Indicator/Pad Digit and Item Refrence>.<Serial number> Be aware that a delimiter character may be changed using a Codes.Splitter function. In addition, the prefix SGTIN96 is optional, and it may be included or left out using a Decoder.PrependId. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Enable decoding the GS1 SGTIN-96 system identifiers of the singulated tags. FALSE = Disable decoding the GS1 SGTIN-96 system identifiers of the singulated tags.

Function Output:
TRUE = The GS1 SGTIN-96 system identifiers are received or shown in the form being readable by humans. FALSE = The GS1 SGTIN-96 system identifiers are not shown nor received, but the RFID.Decode and the RFID.ScanAsync functions end in failure. However, the end result of the RFID.ScanAsync is conditional on the position of a Decoder.Enabled switch.

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 155 / 712

Nordic ID MHL Manual

ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 156 / 712

Nordic ID MHL Manual

Boolean Codes.SGTIN.EnableFiltering [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable filtering the GS1 SGTIN system identifiers. The filtering covers the SGTIN-96 identifiers. For more information on filtering the SGTIN system identifiers, see Codes.SGTIN.Filters function.

Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Turn the SGTIN filtering to the on position. FALSE = Turn the SGTIN filtering to the off position.

Function Output:
TRUE = Filtering the SGTIN identifiers is in use. FALSE = Filtering is not applied to the SGTIN identifiers.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 157 / 712

Nordic ID MHL Manual

Binary Codes.SGTIN.Filters [AS399X]


Min Bytes: 8 Max Bytes: 8 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets filtering of the SGTIN identifiers. The filtering is based on the filter values as stated by the EPC Tag Data Standard. The filter test is done on SGTIN identifiers within the scope of the RFID.ScanAsync call, when Codes.SGTIN.EnableFiltering is called to enable the filtering. In addition, the Decoder.Enabled switch shall be turned to the on position. The EPC Tag Data Standard specifies eight 3-bit filter values allowing to define selection/deselection criteria for filtering any particular GS1 system identifier type. Accordingly, the Codes.SGTIN.Filters function takes the array parameter being eight bytes in length. Each position (index value) of the byte array element represents one of the 3-bit filter values, that is, the filter value 0b000 (in binary) refers to the first element in the array (zeroth element) and the value 0b111 to the last one. The byte array parameter to the filter function is set as follows. As the identifier with a particular filter value is wanted to pass through the filter test, the value 1 is placed into the array byte that the filter value refers to. If an identifer is wanted to filter out, its filter value shall refer to the array byte that has been assigned the value 0. For more information on the meaning of the filter values of the SGTIN, see The EPC Tag Data Standard. Last error codes: ERROR_SUCCESS

Function Input:
Assign these filter items the byte values in this byte array specify to the filter test done on the SGTIN identifiers. The array is eight bytes in length.

Function Output:
Filter for the SGTIN identifiers to filter out the identifiers being of no interest. (Default filter allows the SGTIN identifier from any tag to pass through the filter test.)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 158 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 159 / 712

Nordic ID MHL Manual

Boolean Codes.SGTIN.ToGTIN14 [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply conversion from the GS1 SGTIN-96 into the 14-digit GTIN code during the RFID.Decode and the RFID.ScanAsync calls. Be aware that the Decoder.PrependId on-off switch shall be turned to the off postion (FALSE value) in addtion to the on position of the Codes.SGTIN.ToGTIN14 switch before the conversion comes into operation. When the SGTIN-96 system identfier is converted into the 14-digit GTIN code, the result is arranged into the following pattern as an Unicode (UTF16) character string: <Indicator Digit><Company Prefix><Item Refrence> The conversion removes the leftmost digit of the item reference and prefixes the company prefix and item reference string with it as an indicator digit. In addtion, the serial number is left out. Be aware that there is no delimiter characters in the 14-digit GTIN code output. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Convert an SGTIN-96 system identifier into an 14-digit GTIN code. FALSE = Do not convert SGTIN-96 system identifiers.

Function Output:
TRUE = Conversion from the SGTIN-96 to the 14-digit GTIN code is in use. FALSE = No conversion from the SGTIN-96 to the 14-digit GTIN code.

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 160 / 712

Nordic ID MHL Manual

ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 161 / 712

Nordic ID MHL Manual

String Codes.Splitter [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector allowing to choose a delimiter between the specified segments of the GS1 system identifiers as an RFID.Decode or an RFID.ScanAsync function translates EPC Binary Encoding into the form being more readable by humans. The function also tells the delimeter being in use. The EPC Tag Data Standard refers to the delimiter when it defines changing the GS1 identifier segments into the URI field form with the help of a partition table: ... variable-length numeric fields separated by a dot (.) character, ... . So, the dot character is a default delimiter of the decoded result as well. The whole set of delimiters being available as the Codes.Splitter function accepts them in its parameter are as follows: - NONE - DOT - COLON - SPACE - COMMA - SEMICOLON - TAB - CR - LF - CR+LF - LF+CR Last error codes: ERROR_SUCCESS ERROR_INVALID_PARAMETER

Function Input:
Insert delimeters between the decoded GS1 identifier fields as this 0-terminated Unicode (UTF16) upper-case letter string specifies the delimiter. The size of the buffer shall be 10 in UTF16 units.

Function Output:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 162 / 712

Nordic ID MHL Manual

Term for the delimeter that will be inserted in the decoded GS1 identifier between the fields that a particular GS1 system identifier specifies and after the optional prefix added to the decoded GS1 system identifier.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 163 / 712

Nordic ID MHL Manual

Boolean Codes.SSCC.CheckDigit [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to add an modulo 10 check digit to the end of a SSCC 18-digit code string. When the SSCC-96 system identfier is converted into the SSCC 18-digit code, and the check digit switch is turned to the on position the result is arranged into the following pattern as an Unicode (UTF16) character string: <Extension Digit><GS1 Company Prefix><Serial Reference><Check Digit> Be aware that there is no delimiter characters in the SSCC 18-digit code output. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Apply a check digit to the conversion from the SSCC-96 system identifier to the SSCC 18-digit code. FALSE = Do not add the check digit to the conversion.

Function Output:
TRUE = Check digit will be included in the SSCC 18-digit code. FALSE = No addition of a check digit.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 164 / 712

Nordic ID MHL Manual

Boolean Codes.SSCC.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding the GS1 SSCC-96 identifier of the EPC Binary Encoding received from a tag to the form being readable by humans. The actual decoding is done, and the result is read using an RFID.Decode or an RFID.ScanAsync function. When decoding the SSCC-96 system identfier the result is arranged into the following pattern as an Unicode (UTF16) character string: SSCC96.<Partition Value>.<GS1 Company Prefix>.<Extension Digit and Serial Reference> Be aware that a delimiter character may be changed using a Codes.Splitter function. In addition, the prefix SSCC96 is optional, and it may be included or left out using a Decoder.PrependId. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Enable decoding the GS1 SSCC-96 system identifiers of the singulated tags. FALSE = Disable decoding the GS1 SSCC-96 system identifiers of the singulated tags.

Function Output:
TRUE = The GS1 SSCC-96 system identifiers are received or shown in the form being readable by humans. FALSE = The GS1 SSCC-96 system identifiers are not shown nor received, but the RFID.Decode and the RFID.ScanAsync functions end in failure. However, the end result of the RFID.ScanAsync is conditional on the position of a Decoder.Enabled switch.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 165 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 166 / 712

Nordic ID MHL Manual

Boolean Codes.SSCC.EnableFiltering [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable filtering the GS1 SSCC system identifiers. The filtering covers the SSCC-96 identifiers. For more information on filtering the SSCC system identifiers, see Codes.SSCC.Filters function. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Turn the SSCC filtering to the on position. FALSE = Turn the SSCC filtering to the off position.

Function Output:
TRUE = Filtering the SGTIN identifiers is in use. FALSE = Filtering is not applied to the SGTIN identifiers.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 167 / 712

Nordic ID MHL Manual

Binary Codes.SSCC.Filters [AS399X]


Min Bytes: 0 Max Bytes: 0 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets filtering of the SSCC identifiers. The filtering is based on the filter values as stated by the EPC Tag Data Standard. The filter test is done on SSCC identifiers within the scope of the RFID.ScanAsync call, when Codes.SSCC.EnableFiltering is called to enable the filtering. In addition, the Decoder.Enabled switch shall be turned to the on position. The EPC Tag Data Standard specifies eight 3-bit filter values allowing to define selection/deselection criteria for filtering any particular GS1 system identifier type. Accordingly, the Codes.SSCC.Filters function takes the array parameter being eight bytes in length. Each position (index value) of the byte array element represents one of the 3-bit filter values, that is, the filter value 0b000 (in binary) refers to the first element in the array (zeroth element) and the value 0b111 to the last one. The byte array parameter to the filter function is set as follows. As the identifier with a particular filter value is wanted to pass through the filter test, the value 1 is placed into the array byte that the filter value refers to. If an identifer is wanted to filter out, its filter value shall refer to the array byte that has been assigned the value 0. For more information on the meaning of the filter values of the SSCC, see The EPC Tag Data Standard. Last error codes: ERROR_SUCCESS

Function Input:
Assign these filter items the byte values in this byte array specify to the filter test done on the SSCC identifiers. The array is eight bytes in length.

Function Output:
Filter for the SSCC identifiers to filter out the identifiers being of no interest. (Default filter allows the SSCC identifier from any tag to pass through the filter test.)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 168 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 169 / 712

Nordic ID MHL Manual

Boolean Codes.SSCC.ToSSCC18 [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply conversion from the GS1 SSCC-96 into the SSCC 18-digit code during the RFID.Decode and the RFID.ScanAsync calls. Be aware that the conversion succeeds only if the SSCC-96 code contains a 7-digit company prefix and a 10-digit serial reference including the extension digit, that is, if the SSCC-96 encoding is according to the partion value 5 in the SSCC Partition Table in the EPC Tag Data Standard. When the SSCC-96 system identfier is converted into the SSCC 18-digit code, the result is arranged into the following pattern as an Unicode (UTF16) character string: <Extension Digit><GS1 Company Prefix><Serial Reference> The conversion just removes the leftmost digit of the serial reference and prefixes the company prefix and serial reference string with it as an extension digit. Be aware that there is no delimiter characters in the SSCC 18-digit code output. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Convert an SSCC-96 system identifier into an SSCC 18-digit code. FALSE = Do not convert SSCC-96 system identifiers.

Function Output:
TRUE = Conversion from the SSCC-96 to the SSCC 18-digit code is in use. FALSE = No conversion from the SSCC-96 to the SSCC 18-digit code.

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 170 / 712

Nordic ID MHL Manual

ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 171 / 712

Nordic ID MHL Manual

Boolean Decoder.Enabled [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply decoding the EPC Binary Encoding to the operation performed by an RFID.ScanAsync. The function has also control of filtering during the RFID.ScanAsync call, meaning that enabling the filtering alone is not sufficient. As to decoding, that also requires enabling a particular GS1 system identifier to be decoded. For more information on applying decoding and filtering, see the RFID.ScanAsync.

Function Input:
TRUE = Make it possible to apply decoding and filtering to a tag singulation performed by the RFID.ScanAsync. FALSE = Disable decoding and filtering during the RFID.ScanAsync call

Function Output:
TRUE = EPC identfier is possible to be filtered and to be decoded before read-out. FALSE = No filtering and decoding the contents of the EPC Binary Encoding received from the singulated tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 172 / 712

Nordic ID MHL Manual

DWORD Decoder.Error [AS399X]


Min Value: 0 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
The function gives information on decoding of the GS1 system identifier, whether or not it succeeded, and if not, why the decoding ended in failure. The function gives the following last error codes: - ERROR_SUCCESS - MHL_RFID_CODE_NOT_ENABLED - MHL_RFID_CODE_NOT_VALID - MHL_RFID_INVALID_PARTITION - MHL_RFID_INVALID_COMPANY - MHL_RFID_INVALID_PART2 ERROR_SUCCESS: Decoding of the GS1 system identifier to the form being more readable by humans succeeded MHL_RFID_CODE_NOT_ENABLED: Decoding of the GS1 identifier type is not enabled (, or it is possible that decoding of the system identifier type is not supported in the RFID driver implementation). MHL_RFID_CODE_NOT_VALID: The GS1 system identifier was not decoded because the implementation does not either support or identify its type. It may well be that the length of the received identifier was different from what was expected. MHL_RFID_INVALID_PARTITION: 3-bit partition value in the received EPC Binary Encoding is corrupted, meaning that the partition value is corrupted either in the memory of a tag or in the received signal. MHL_RFID_INVALID_COMPANY: The length of the Company Prefix did not match what was expected according to the partition value. This may well be that the partition value is corrupted, and the whole identifier as well. MHL_RFID_INVALID_PART2: The length of the field after the Company Prefix did not match what was expected according to the partition value. This may well be that the partition value is corrupted, and the whole

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 173 / 712

Nordic ID MHL Manual

identifier as well.

Function Input:
n/a

Function Output:
32-bit error code representing one of the above-listed symbolic error names.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 174 / 712

Nordic ID MHL Manual

Boolean Decoder.PrependId [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to include (or to exclude) prefix information about the ID type of the GS1 system identifier in the result string when a particular GS1 identifier is decoded to the form being more readable by humans. For more information on the form of the result strings see the following functions: - Codes.SGTIN.Enable - Codes.SSCC.Enable - Codes.SGLN.Enable - Codes.GRAI.Enable - Codes.GIAI.Enable

Function Input:
TRUE = Add the information about the ID type of a particular GS1 identfier to the beginning of its decoded result string. FALSE = Do not add the information about the ID type of a particular GS1 identfier.

Function Output:
TRUE = ID type letters of the GS1 system identfier are prefixed to the decoded result string. FALSE = There is no prefix defining the ID type of the GS1 system identfier in the decoded result string.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 175 / 712

Nordic ID MHL Manual

String RFID.BinString [AS399X]


Min Chars: 192 Max Chars: 992 READ ONLY NOT stored in MHL Profile.

Description:
The function gives EPC Binary Encoding of a tag as 0 and 1 characters. The scope of the RFID.BinString function is the tags inventoried using a RFID.Inventory, a RFID.MetaInventory, or a RFID.InventorySelect function. The RFID.BinString is one of the three functions to get the binary-encoded form of the EPC (, that is the EPC Binary Encoding in the raw form) on the tags after inventory round. The other two functions are RFID.SerialString and RFID.ChipId. To read the EPC Binary Encoding of a particular tag, the tag shall be brougth into focus in the RFID driver using a RFID.CurrentId function.

Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG

Function Input:
n/a

Function Output:
Buffer = EPC Binary Encoding of a tag represented as 0 and 1 Unicode (UTF16) characters. To receive an EPC Binary Encoding the size of the buffer shall be 992 bytes for a 496-bit EPC identifier.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 176 / 712

Nordic ID MHL Manual

DWORD RFID.BLF
Min Value: 40000 Max Value: 80000 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets BLF (Backscatter-Link Frequency) parameter of the tag-reader communication. In addition, it chooses implicitely a Tari value determining signal parameters conveyed by the frame-sync and the preamble. The function also specifies implicitely a DR parameter value of the Query command, and sets the backscatter subcarrier modulation, which is chosen using a RFID.EPCC1G2.Miller (or RFID.RxDecoding) function. Accordingly, the RFID.EPCC1G2.Miller shall be called before the RFID.BLF function, if need be. The tari value is set to 25 microseconds. The implementation uses the PW set to 0.5*Tari in length, and the data-1 symbol set to 2.0*Tari. The value of the DR parameter is set to 0 (DR=8). Last error codes: ERROR_SUCCESS ERROR_IO_DEVIC

Function Input:
Direct the tags to use this frequency when responding to the commands transmitted by the reader. There are two backscatter-link frequencies to choose from: 40kHz and 80kHz. The frequency is set in Hz.

Function Output:
Tags are told to answer using this frequncy in Hz. Default is 80000Hz.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 177 / 712

Nordic ID MHL Manual

DWORD RFID.BlockCount
Min Value: 2 Max Value: 128 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets number of bytes either to be read from or to be written to the logical memory block on a tag using the following functions: - RFID.BlockData - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.EPCC1G2.Write - RFID.BlockDataString - RFID.BlockDataStringById - RFID.StringData - RFID.StringDataById - RFID.EPCC1G2.BlockErase - RFID.EPCC1G2.BlockWrite The function counts read/write data as byte units referring to the address boundary on a tag, that is the byte count aligns on the read/write address boundary the tag uses as the smallest addressable unit in its memory. For example, in the case of the UHF C1G2 tags, which read and write memory at a 16-bit address boundary, the RFID.BlockCount accepts the byte counts aligned on 2-byte boudaries. As a result, inserting an odd number sets the last error code to MHL_RFID_INVALID. Note that the byte count specifies the number of bytes to be written to/read from the tag, it does not necessarily count the bytes the read/write buffer contains. Only as the buffer holds data in binary, the value passed to the the RFID.BlockCount should match the number of bytes in the buffer. Mainly it is a bit of information from which a data count (in EPC global terms, a word count) is derived, for example, for read/write commands in the air interface. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID

Function Input:
Set the number of bytes either to be read or to be written using the above-listed functions.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 178 / 712

Nordic ID MHL Manual

Function Output:
Number of read/write bytes aligninig on the address boundary on a tag when data will be read from or written to a tag using the above-listed functions.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 179 / 712

Nordic ID MHL Manual

Binary RFID.BlockData
Min Bytes: 0 Max Bytes: 128 READ / WRITE NOT stored in MHL Profile.

Description:
The function makes it possible to have an read/write access to a particular tag inventoried using RFID.Inventory, RFID.MetaInventory, or RFID.InventorySelect function. The function reads from/writes to the memory of the tag chosen to be an object of the operations within the RFID driver using an RFID.CurrentId function. In the case of the UHF C1G2 tag, when the read/write access to the logical memory block is password protected (, that is, the tag has a non-zero access password, and the lock status of the memory location does not permit read or/and write operations in the Open state), the RFID.BlockData needs to transmit the Gen2 Access command(s) with an access password to the tag. If that is the case, the RFID.BlockData read/write operation shall be initialized by calling an RFID.EPCC1G2.Secured function with the TRUE value and using an RFID.EPCC1G2.Password function to assign the access password to the Gen2 read/write operation. On the other hand, if the tag has a zero-valued access password, or does not implement the access password, the RFID.EPCC1G2.Secured function shall be invoked with the FALSE value. The size of the contents in bytes in the read/write buffer shall refer to the address boundary used on the tag. For example, the UHF C1G2 tag handles its memory banks on 16-bit boundaries, meaning that the data the buffer contains will be always alingned on 2-byte boundary. For the write operation the starting address to which first data unit is written shall be set using an RFID.BlockPointer function. The implementation also requires information on how many bytes the RFID.BlockData is writing to the tag. A byte count value is set using an RFID.BlockCount function. In case of writing the UHF C1G2 tag, the target memory bank is specified using an RFID.EPCC1G2.Bank. The same functions used for the parameter settings of the write operation are used for setting the parameter values of the read operation as follows: - RFID.EPCC1G2.Bank sets the bank to be read in the case of the UHF C1G2 tag - RFID.BlockPointer sets the starting address within the tag memory, in the case of the UHF C1G2 tag within the memory bank - RFID.BlockCount sets the number of bytes to be read starting at the location set by the RFID.BlockPointer. Note that it is not possible to set a time limit for the RFID.BlockData read/write operation. The

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 180 / 712

Nordic ID MHL Manual

implementation uses its internal time limits with the exception of the read operation with the reader incorporating the M5e-c radio element, in which case the time limit is set using an RFID.Timout. In addition to the last error code, a RFID.BytesOK function gives information on the number of bytes that were succesfully read from the tag, or written to the tag. When read, the number of bytes received from the tag in the binary buffer. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR MHL_UHF_WRITE_ERROR MHL_RFID_READ_ERROR

Function Input:
Write the tag data units the buffer contains to the tag picked out for the target of writing using RFID.CurrentId function. The size of the write buffer shall be 128 in bytes, and data it contains shall be in binary.

Function Output:
Read buffer = tag data units, in binary, from the tag picked out for the read using RFID.CurrentId function. The read buffer shall be 128 bytes in length

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 181 / 712

Nordic ID MHL Manual

Binary RFID.BlockDataById [M5e-c]


Min Bytes: 0 Max Bytes: 128 READ / WRITE NOT stored in MHL Profile.

Description:
The function reads from/writes to the memory of the tag specified within the RFID driver by its chip identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. Chip indentifier is the term used in the context of the RFID driver for referring to the identity of the item to which the tag is attached. The RFID.BlockDataById function uses that identity information of the item stored on the tag as a select criterion. The function works in the same way as an RFID.BlockData function does. So in the case of the UHF C1G2 tag, the access protection issues are addressed using an RFID.EPCC1G2.Secured and an RFID.EPCC1G2.Password function. RFID.EPCC1G2.Bank, RFID.BlockPointer, and RFID.BlockCount functions are used for setting/getting the parameters for write and read operations. As to the memory addressing on a tag, the size of the contents in bytes in the read/write buffer shall align on the address boundary on the tag. For further information, see a particular function mentioned above. Be aware that the time limit for the read operation may be set using an RFID.Timeout function. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR MHL_UHF_WRITE_ERROR MHL_RFID_READ_ERROR

Function Input:
Write the tag data units the byte buffer contains to the tag specified within the RFID driver by its chip identifier. The size of the write buffer shall be 128 in bytes, and data it contains shall be in binary.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 182 / 712

Nordic ID MHL Manual

Function Output:
Byte buffer = Tag data units, in binary, read from the tag specified by its chip identifier. The read buffer shall be 128 bytes in length.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 183 / 712

Nordic ID MHL Manual

String RFID.BlockDataString [M5e-c]


Min Chars: 0 Max Chars: 256 READ / WRITE NOT stored in MHL Profile.

Description:
The function makes it possible to have an read/write access to a particular tag inventoried using an RFID.Inventory, an RFID.MetaInventory, or an RFID.InventorySelect function in the same way as an RFID.BlockData does. The difference between the RFID.BlockDataString function and the RFID.BlockData is the form of input/output data. The RFID.BlockDataString does not accept the write data nor return the read result in binary but the binary data converted into the hexadecimal characters. Note that the read result may be formatted further using an RFID.Separator function. In addition, the time limit for the read operation may be set using an RFID.Timeout function What applies to the access protection on a tag, to the writing to a tag, and to the read from a tag are described in the context of the RFID.BlockData. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID MHL_RFID_OUTOFRANGE MHL_RFID_LOW_POWER MHL_RFID_NO_TAG MHL_UHF_WRITE_ERROR MHL_RFID_ACCESS_ERROR

Function Input:
Translating from the 0-terminated hexadecimal Unicode (UTF16) character string in the buffer, write the contents to the tag picked out for the target of writing using the RFID.CurrentId function. The number of hexadecimal characters shall align on the address boundary used on the tag. The buffer can contain a maximum of 256 hexadecimal characters in UTF16 units. The hexadecimals can be separated in pairs by space characters (or grouped together as a pair using space characters), if need be. The actual binary data that will be written to the tag may be a maximum of 128 in bytes.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 184 / 712

Nordic ID MHL Manual

Function Output:
The contents of the memory from the tag picked out for the read using the RFID.CurrentId function. The result is a hexadecimal Unicode (UTF16) character string terminated by zero character. The size of read buffer may be 384 + 1 in UTF16 units when the RFID.Separator switch is turned to the on position (, meaning that the output is a hexadecimal dump hexadecimals separated in pairs by space characters). A maximum of 128 bytes may be read from the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 185 / 712

Nordic ID MHL Manual

String RFID.BlockDataStringById [M5e-c]


Min Chars: 4 Max Chars: 256 READ / WRITE NOT stored in MHL Profile.

Description:
The function reads from/writes to the memory of the tag specified within the RFID driver by its chip identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. The function works in the same way as RFID.BlockData function does. So in the case of the UHF C1G2 tag, the access protection issues are addressed using an RFID.EPCC1G2.Secured and an RFID.EPCC1G2.Password function. RFID.EPCC1G2.Bank, RFID.BlockPointer, and RFID.BlockCount functions are used for setting/getting the parameters for write and read operations. As to the memory address boundary on a tag, the size of the contents in the read/write buffer shall align on it. For further information, see a particluar function mentioned above. The essence of the RFID.BlockDataStringById is the form of input/output data. It does not accept the write data nor return the read result in binary but the binary data converted into the hexadecimal characters. Note that the time limit for the read operation may be set using an RFID.Timout function. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR MHL_UHF_WRITE_ERROR MHL_RFID_READ_ERROR

Function Input:
Translating from the 0-terminated hexadecimal Unicode (UTF16) character string in the buffer, write the contents to the tag specified within the RFID driver by its chip identifier. The number of

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 186 / 712

Nordic ID MHL Manual

Unicode hexadecimal characters shall align on the address boundary used on the tag. Note that the hexadecimals can be separated in pairs by space characters (or grouped together in pair units using space characters), if need be. The buffer may contain a maximum of 256 hexadecimal characters. The actual binary data that will be written to the tag may be a maximum of 128 in bytes.

Function Output:
The contents of the memory in the 0-terminated hexadecimal Unicode (UTF16) character string read from the tag specified by its chip identfier within the RFID driver. The size of the read buffer may be a maximum of 384 + 1 in UTF16 units, when the RFID.Separator switch is turned to the on position (, meaning that the output is a hexadecimal dump - hexadecimals separated in pairs by space characters), and a maximum of 128 bytes are read from the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 187 / 712

Nordic ID MHL Manual

DWORD RFID.BlockPointer
Min Value: 0 Max Value: 2147483647 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the starting address parameter used in the following MHL RFID functions: - RFID.BlockData - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.EPCC1G2.Write - RFID.BlockDataString - RFID.BlockDataStringById - RFID.StringData - RFID.StringDataById - RFID.EPCC1G2.BlockErase - RFID.EPCC1G2.BlockWrite As the above-mentioned functions handle byte buffers, the starting addresses are always set as byte addresses. For example in the case of the Gen2 tags, which read and write memory at a 16-bit address boundary, the read and the writing always begin at an even byte address, meaning that within the memory banks on the UHF C1G2 tag the first read/write location is at the byte address 0, the second is at the byte address 2, the third is at the byte address 4, the fourth is at the byte address 6, and so on. If the RFID.BlockPointer function of the Gen2 RFID driver receives an odd address, for example 5, it returns with the following last error code: MHL_RFID_INVALID. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID

Function Input:
Start read/write operation with the above-mentioned functions at this byte address referring to the address boundary used on the tag.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 188 / 712

Nordic ID MHL Manual

Function Output:
Address at which the read/write operation begins on the tag with the above-listed functions. The address is at a byte boundary.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 189 / 712

Nordic ID MHL Manual

DWORD RFID.BytesOK [AS399X]


Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the number of bytes that were succesfully transferred between the reader and RFID tag in the recent operation. The information is valid after one of the following functions has carried out its operation: RFID.EPCC1G2.Write RFID.EPCC1G2.BlockWrite RFID.EPCC1G2.ProgramId RFID.EPCC1G2.BlockErase RFID.BlockData RFID.BlockDataById

Function Input:
n/a

Function Output:
The number of bytes transferred between the reader and the tag in the recent read/write operation.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 190 / 712

Nordic ID MHL Manual

Binary RFID.ChipId
Min Bytes: 12 Max Bytes: 62 READ ONLY NOT stored in MHL Profile.

Description:
The function gives EPC Binary Encoding of a tag in binary form. The scope of the RFID.ChipId function is the tags inventoried using a RFID.Inventory, a RFID.MetaInventory, or a RFID.InventorySelect function. The RFID.ChipId is one of the three functions to get the binary-encoded form of the EPC (,that is the EPC Binary Encoding in the raw form) on the tags after inventory round. The other two functions are RFID.BinString and RFID.SerialString. To read the EPC Binary Encoding of a particular tag, the tag shall be brougth into focus in the RFID driver using a RFID.CurrentId function. Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG

Function Input:
n/a

Function Output:
Buffer = EPC Binary Encoding of a tag in binary form. To receive an EPC Binary Encoding the size of the buffer shall be 62 bytes for a 496-bit EPC identifier.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 191 / 712

Nordic ID MHL Manual

Boolean RFID.Clear
TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function zeroes internal states of the RFID tag operations on the RFID driver, so that the tag operations can be started again from scratch. Note: RFID.Inventory, RFID.MetaInventory, and a RFID.InventorySelect performs this operation before starting inventory round.

Function Input:
TRUE = Remove the data about the tag-operations on the driver. FALSE = n/a

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 192 / 712

Nordic ID MHL Manual

DWORD RFID.CurrentId
Min Value: 0 Max Value: 127 READ / WRITE Stored in MHL Profile.

Description:
The function acts like a reference to a tag array in the RFID driver. The value of its parameter (also known as tag reference) refers to a particular tag object in that tag array. With the aid of this function, for example, the information on the singulated tags stored in the driver after the inventory round can be gone through. The function picks out a tag object from a group of the tag objects for availability, meaning that the information received from a particular tag by RFID.Inventory, by RFID.MetaInventory, or by RFID.InventorySelect round is made accessible within the RFID driver. The following functions require that the RFID.CurrentId has picked out the tag object for accessing it: - RFID.ChipId - RFID.SerialString - RFID.BinString (only with the AS399X RFID radio element) - RFID.KillTag - RFID.Decode (only with the AS399X RFID radio element) - RFID.Meta.RSSI - RFID.Meta.Frequency - RFID.Meta.PC - RFID.Meta.Time - RFID.Meta.Count (only with the M5e-c RFID radio element) - RFID.BlockData - RFID.BlockDataString - RFID.StringData Note that using RFID.Tag1 ... RFID.Tag16 functions a tag may also be brought into focus in the driver within the tag reference range of 0 to 15.

Function Input:
Select the tag to which this tag reference refer for further operations. The tag references can vary between 0 and 127, but not necessarily all the references are assigned to the singulated tags within the RFID driver. Note that RFID.CurrentId function does not verify wheter a tag reference refers to an empty tag object or not (for further infomation, see the RFID.IdList function).

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 193 / 712

Nordic ID MHL Manual

Function Output:
Information the inventory produced and operations on the tag to which this reference is assigned are accessible, depending on the fact that this reference does refer to a tag within the RFID driver. (For further infomation, see the RFID.IdList function.)

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 194 / 712

Nordic ID MHL Manual

String RFID.Decode [AS399X]


Min Chars: 0 Max Chars: 100 READ ONLY NOT stored in MHL Profile.

Description:
The function gets EPC Binary Encoding received from a tag during an inventory round in the form being readable by humans. The scope of the RFID.Decode is the tags singulated using RFID.Inventory, RFID.MetaInventory, or RFID.InventorySelect function. The readable-by-humans covers the following GS1 96-bit system identifiers: - SGTIN-96 - SSCC-96 - SGLN-96 - GRAI-96 - GIAI-96. The decoded form can be further adjusted using an encoding-scheme-conscious Codes.Splitter function (for more information see the Codes.Splitter function). In case that decoding the identfier of the EPC Binary Encodings is either not enabled or not supported, the last error code is MHL_RFID_CODE_NOT_ENABLED. However, if the EPC information received from a tag is incomplete, the last error code is MHL_RFID_CODE_NOT_VALID. The following functions needs to be called with the TRUE value to get the RFID.Decode to format a particular GS1 96-bit system identifier. - Codes.SGTIN.Enable - Codes.SSCC.Enable - Codes.SGLN.Enable - Codes.GRAI.Enable - Codes.GIAI.Enable The RFID.Decode includes additional switches that make it possible to convert a GS1 SGTIN-96 system identifier into GS1 GTIN, and a GS1 SSCC-96 into SSCC 18-digit code. The switches can be turned to the on position using a Codes.SGTIN.ToGTIN14 and a Codes.SSCC.ToSSCC18 functions, respectively. The conversions also add a check digit to the GTIN and to the SSCC 18-digit code if the following functions are applied: Codes.SGTIN.CheckDigit, and Codes.SSCC.CheckDigit, respectively. The identfiers in the readable-by-humans form need to be read from the driver on a tag basis, meaning that every EPC identifier shall be first picked out for reading using RFID.CurrentId function. If there is no tag selected, the RFID.Decode returns with the last error code set to MHL_RFID_NO_TAG.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 195 / 712

Nordic ID MHL Manual

A Decoder.Error function gives the last error code on decoding after the RFID.Decode call. For more information, see Decoder.Error function. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG MHL_RFID_CODE_NOT_ENABLED MHL_RFID_CODE_NOT_VALID MHL_RFID_INVALID_PARTITION MHL_RFID_INVALID_COMPANY MHL_RFID_INVALID_PART2

Function Input:
n/a

Function Output:
Buffer = Decoded EPC identifier in the Unicode (UTF16) character form. To receive EPC identifier the size of the buffer shall be 100 in UTF16 units.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 196 / 712

Nordic ID MHL Manual

DWORD RFID.EPCC1G2.Bank
Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the memory bank parameter used in the following MHL RFID operations: - RFID.BlockData - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.EPCC1G2.Write - RFID.BlockDataString - RFID.BlockDataStringById - RFID.StringData - RFID.StringDataById - RFID.EPCC1G2.BlockErase - RFID.EPCC1G2.BlockWrite The memory bank parameter can have the values according to the Gen2 UHF RFID protocol specification (Version 1.2.0) as follows: 0b00 (Reserved), 0b01 (EPC), 0b10 (TID), and 0b11 (User). Last error codes: ERROR_SUCCESS ERROR_INVALID_PARAMETER

Function Input:
Have access to the memory bank as specified by this value when the memory operation is performed using one of the above-listed functions.

Function Output:
Memory access of the above-mentioned functions applies to this memory bank

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 197 / 712

Nordic ID MHL Manual

0 87

ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 198 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.BlockErase [AS399X]


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function erases memory area in the memory bank on the EPC C1G2 tag specified within the RFID driver by its EPC identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. (In this EPC C1G2 case, the RFID.EPCC1G2.Id is recommended.) Erasing memory locations in the bank being password protected requires setting an access password attribute and an access mode attribute of the eraser operation within the RFID driver. An RFID.EPCC1G2.Password provides the access password for the RFID.EPCC1G2.BlockErase, and an RFID.EPCC1G2.Secured switches the RFID.EPCC1G2.BlockErase to secured mode so that it puts a tag into the Secured state before dispatching the Gen2 BlockErase command to it. Before calling the RFID.EPCC1G2.BlockErase the following, required parameters of the BlockErase command shall be set as well: - MemBank, using the RFID.EPCC1G2.Bank function - WordPtr, using the RFID.BlockPointer function - WordCount,using the RFID.BlockCount function The API of the RFID driver sees the count and the starting address as bytes although data in the memory bank on the UHF C1G2 tag is aligned on a 16-bit boundary. As a result, the WordPtr and WordCount values are set on 2-byte boudaries. Note that it is not possible to set a time limit for the RFID.EPCC1G2.BlockErase operation. The implementation uses its internal time limits. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 199 / 712

Nordic ID MHL Manual

Function Input:
TRUE = Erase the memory area in the memory bank on the tag specifed within the RFID drive by its EPC identifier. FALSE = n/a

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 200 / 712

Nordic ID MHL Manual

Binary RFID.EPCC1G2.BlockWrite [AS399X]


Min Bytes: 2 Max Bytes: 128 WRITE ONLY NOT stored in MHL Profile.

Description:
The function writes to the memory bank of the UHF C1G2 tag specified within the RFID driver by its EPC identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. (In this case, the RFID.EPCC1G2.Id is recommended.) On the surface, this function is identical with the RFID.EPCC1G2.Write, that is, the parameters both functions need to work correctly, and how the parameters for both of them are set through the MHL interface. What makes the difference is under the hood. The write operation of the RFID.EPCC1G2.BlockWrite utilizes the Gen2 BlockWrite (optional) command in the air interface, while the RFID.EPCC1G2.Write makes use of the Gen2 Write command being mandatory according to the EPCglobal Air Interface spec. For more information on the usage, see the RFID.EPCC1G2.Write function. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR MHL_UHF_WRITE_ERROR

Function Input:
Write the 16-bit data units the buffer contains to the tag specified by its EPC identifier within the RFID driver. The size of the write buffer shall be 128 in bytes, and data it contains shall be in binary.

Function Output:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 201 / 712

Nordic ID MHL Manual

n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 202 / 712

Nordic ID MHL Manual

Binary RFID.EPCC1G2.Id
Min Bytes: 2 Max Bytes: 62 READ / WRITE NOT stored in MHL Profile.

Description:
The function sets/gets EPC identifier required, for example, to singulate a tag for read and write operations. In other words, the function is used for entering the EPC identifier of a particular tag becoming involved in the operation performed by any one of the following functions: - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.EPCC1G2.Write - RFID.EPCC1G2.KillTag - RFID.EPCC1G2.BlockWrite - RFID.EPCC1G2.BlockErase - RFID.EPCC1G2.Lock - RFID.BlockDataStringById - RFID.StringDataById The above-listed functions form a group of functions requiring that an capturing application specifies within the RFID driver the EPC identifier of a tag (the EPC Binary Encoding that is already stored in a tag) before invoking any one of them to operate with the tag. There is also another group of functions that expect an EPC identifier within the driver before operating with a tag. The difference between these two groups is how the identier has been entered in the driver. The latter group expects that the required identifier is available within the RFID driver because of the performed inventory round (see RFID.CurrentID). In the case of the above-listed functions, RFID.EPCC1G2.Id is one of the three functions that the capturing application may use to enter a required identifier in the driver. The other two functions are RFID.OperationIdString and RFID.OperationId. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID MHL_RFID_NO_TAG

Function Input:
Use this binary string as an EPC identifier (also termed Mask) to singulate a tag for memory access operations. (Note that the above-listed functions require that the mask is applied to the

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 203 / 712

Nordic ID MHL Manual

EPC memory block of the tag at 0x20 location.)

Function Output:
Binary string identifying an EPC C1G2 tag. The above-listed functions operate with the tag having this EPC identifier.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 204 / 712

Nordic ID MHL Manual

Integer RFID.EPCC1G2.KillPassword [AS399X]


Min Value: -2147483647 Max Value: 2147483647 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets kill password of the tag that can be killed using one of the following functions: RFID.KillTagById, RFID.KillTag, and RFID.EPCC1G2.KillTag. The kill password is not assigned to any particular tag, but it is a global setting within the RFID driver. For example, in the case of the RFID.KillTag operation, the kill password is not assigned to the tag picked out for an object of operations using RFID.CurrentId function, but with one password setting it is possible to kill all the tags singulated using RFID.Inventory, RFID.MetaInventory, or RFID.InventorySelect function, if need be. (Of course, if all in the group of the inventoried tags implement the kill password and have the same kill password.)

Function Input:
Use this 32-bit value as a kill password parameter of the Gen2 Kill commands dispatched within the scope of RFID.KillTagById, RFID.KillTag, and RFID.EPCC1G2.KillTag operations.

Function Output:
The 32-bit kill password being in use at the moment within the scope of the Gen2 kill operations.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 205 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.KillTag
TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function terminates the UHF C1G2 tag specified within the RFID driver by its EPC identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. (In this case, the RFID.EPCC1G2.Id is recommended.) That is, the RFID.EPCC1G2.KillTag puts an end to the existence of a tag using the identifier in the EPC Binary Encoding field of the EPC memory block as a selection criterion for the kill. The kill operation does not succeed if the RFID driver does not know the kill password stored in the Reserved memory on the tag (, or if the kill password is zero on the tag). The password is assigned to the kill using either an RFID.KillPassword or an RFID.EPCC1G2.KillPassword function. Note that it is not possible to set a time limit for RFID.EPCC1G2.KillTag operation. The implementation uses its internal time limits. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR

Function Input:
TRUE = Kill the tag specified within the RFID driver by its EPC identifier. FALSE = n/a

Function Output:
n/a

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 206 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 207 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.Lock
TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function sets read/write permissions of the logical memory blocks on the UHF C1G2 tag specified within the RFID driver by its EPC identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. (In this case, the RFID.EPCC1G2.Id is recommended.) In EPCglobal terms, the function transmits the Gen2 Lock command to the tag to attempt to change the lock status of memory bank(s) and/or password(s). The required parameters to the Lock command can be set using an RFID.EPCC1G2.LockPayload function. It takes the parameters as they are defined in the Gen2 Lock command message in the air interface, that is, the 20 payload-bits dividing into 10-bit Action and Mask parameters. (For more information, see the EPCglobal Air Interface specification of the Class-1 Generation-2 UHF RFID) There is also an alternative way to pass the Mask and Action parameters in the RFID.EPCC1G2.Lock. Using the following set of functions that are grouped according to the logical memory having the lock status of its own: Note! Before using the listed functions below, an internal lock-payload variable within the RFID driver shall be initialized, that is, to set all payload bits of the Lock message to 0 using an RFID.EPCC1G2.LockPayload function. In addition, if the lock setting of some memory block on the tag is wanted to skip, (that is, the lock status of the block is not wanted to change) the related block functions shall not be called at all. Access password =============== - RFID.EPCC1G2.PwdMem.Access.Open; Access password can be written and read in the Open and Secured state - RFID.EPCC1G2.PwdMem.Access.Permawrite; Access password can be written and read always in the Open and Secured state, the lock status cannot be changed any longer - RFID.EPCC1G2.PwdMem.Access.Secured; Access password can be written and read in the Secured state only - RFID.EPCC1G2.PwdMem.Access.Permalock; Access password cannot be written or read any longer Kill password ===========

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 208 / 712

Nordic ID MHL Manual

- RFID.EPCC1G2.PwdMem.Kill.Open; Kill password can be written and read in the Open and Secured state - RFID.EPCC1G2.PwdMem.Kill.Permawrite; Kill password can be written and read always in the Open and Secured state, the lock status cannot be changed any longer - RFID.EPCC1G2.PwdMem.Kill.Secured; Kill password can be written and read in the Secured state only - RFID.EPCC1G2.PwdMem.Kill.Permalock; Kill password cannot be written or read any longer EPC memory bank ================ - RFID.EPCC1G2.UIIMemory.Open; EPC memory can be read and written in the Open and Secured state - RFID.EPCC1G2.UIIMemory.Permawrite; in addition to the read, EPC memory can be written always, the lock status cannot be changed any longer - RFID.EPCC1G2.UIIMemory.Secured; altough EPC memory can be read without access password, it cannot be written without it - RFID.EPCC1G2.UIIMemory.Permalock; EPC memory can be read, but it cannot be written any longer TID memory bank =============== - RFID.EPCC1G2.TIDMemory.Open; TID memory can be read and written in the Open and Secured state - RFID.EPCC1G2.TIDMemory.Permawrite; in addition to the read, TID memory can be written always, the lock status cannot be changed any longer - RFID.EPCC1G2.TIDMemory.Secured; altough TID memory can be read without access password, it cannot be written without it - RFID.EPCC1G2.TIDMemory.Permalock; TID memory can be read, but it cannot be written any longer User memory bank ================= - RFID.EPCC1G2.UserMemory.Open, User memory can be read and written in the Open and Secured state - RFID.EPCC1G2.UserMemory.Permawrite, in addition to the read, User memory can be written always, the lock status cannot be changed any longer - RFID.EPCC1G2.UserMemory.Secured, altough User memory can be read without access password, it cannot be written without it - RFID.EPCC1G2.UserMemory.Permalock, User memory can be read, but it cannot be written any longer For more information, see a particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 209 / 712

Nordic ID MHL Manual

Although the Lock command is a mandatory requirement for EPC Class-1 Generation-2 tags and readers, how the tag applies the access protection to its logical memories is not. Accordingly, the usage of the Action and Mask bits shall be considered as specified by the type of a particular tag. (For more information, see the EPCglobal Air Interface specification of the Class-1 Generation-2 UHF RFID) An EPC C1G2 tag executes the Lock command in the Secured state only. Because the tag retains its Secured state in case of receiving the Access command in that state, the RFID.EPCC1G2.Lock operation can always dispatch an Access command to the tag whether or not it is in the Open state (for more information, consult the Annex B in the EPCglobal Air Interface specification of the Class-1 Generation-2 UHF RFID). For that reason, the function always takes an access password to perform the read/write protection on the tag, althoug the access password is zero on the tag. The password is assigned to the operation using an RFID.EPCC1G2.Password function. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR MHL_UHF_WRITE_ERRO

Function Input:
TRUE = Set read/write permissions of the logical memory blocks on the tag specified within the RFID driver by its EPC identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. FALSE = n/a

Function Output:
n/a

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 210 / 712

Nordic ID MHL Manual

ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 211 / 712

Nordic ID MHL Manual

Integer RFID.EPCC1G2.LockPayload
Min Value: 0 Max Value: 1048575 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets mask and action parameters used in the RFID.EPCC1G2.Lock function to specify locking/unlocking memory banks on the UHF C1G2 tag. The Air Interface spec tells the meaning of the Mask and Action bit flags according to their position in the 20-bit payload, on which memory block the flag has an influence and what kind of protections are provided. The RFID.EPCC1G2.LockPayload takes the Mask and Action parameters as they are defined in the Gen2 Lock command message in the air interface. The bits 10 through 19 of the 32-bit integer parameter correspond to the bits 10 through 19 in the payload of the Lock command (Mask bits), and the bits 0 through 9 of the 32-bit integer parameter correspond to the bits 0 through 9 in the payload of the Lock command (Action bits). For more information, see the EPCglobal Gen2 Air Interface specification. Although the EPCglobal Air Interface spec of the Class-1 Generation-2 UHF RFID straightforwardly tells the memory access variants being possible to select in any memory bank, it also gives tag manufacturers freedom to implement the memory-access-related details from which banks the memory of the tag consists of to the degree of flexibility what memory protection mechanisms can be applied to a particular bank. As a result, wheteher it is possible or not to lock some memory band, and what kind of memory protection is possible to use on a band bases may be a challenge without information on how the type of a particular tag addresses those issues. Referring to the above-mentioned possible variants on the memory-access-related details being available for the tag manufacturers, the RFID.EPCC1G2.LockPayload is not able to check an applicability of the Mask and Action bits in any particular case, meaning that the function call always succeeds except that some of the bits 20 through 31 of the integer parameter are set to 1 for some reason. The final result of locking/unlocking is available when the RFID.EPCC1G2.Lock function returns its success/failure status. Note that its also possible to initialize to 0 an internal lock-payload variable within the RFID driver using this RFID.EPCC1G2.LockPayload function, when an alternative method is used for setting the Mask and Action bit flags of the Gen2 Lock message. For more information, see RFID.EPCC1G2.Lock function. Last error codes: ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 212 / 712

Nordic ID MHL Manual

ERROR_INVALID_PARAMETER

Function Input:
Use the bits 0 through 19 of this integer as a payload of the Gen2 Lock message when the RFID.EPCC1G2.Lock function is called.

Function Output:
The bits 0 through 19 of the integer tells the Mask and Action parameters of Gen2 Lock command if the RFID.EPCC1G2.Lock function were called. Note that the 20-bit flag array does not necessarily indicate the memory protection being in effect on any tag, but after the successfull execution of the RFID.EPCC1G2.Lock.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 213 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.LongEPC [M5e-c]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose the maximum length of the EPC identifier fitting into the buffer allocated per a tag. The M5e-c radio element needs this information before invoking the Gen2 Query command. In practice, the size of the EPC identfier should be known before every Gen2 protocol operation. The Gen2 operation ends in failure, if in the buffer there is not enough space for the EPC identifier coming in or going out. Last error codes: ERROR_SUCCESS ERROR_IO_DEVICE

Function Input:
TRUE = Allocate tag buffers for the EPC identifiers being a maximum of 496 bits in length. FALSE = Allocate tag buffers for the EPC identifiers being a maximum of 96 bits in length.

Function Output:
TRUE = There is room in the buffers to receive/transmit a maximum of 496bit EPC identifiers. FALSE = There is room in the buffers to reveive/transmit a maximum of 96bit EPC identifiers.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 214 / 712

Nordic ID MHL Manual

DWORD RFID.EPCC1G2.Miller
Min Value: 2 Max Value: 8 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets backscatter subcarrier modulation that the tag-reader communication utilizes. There are Miller-modulated subcarriers to choose from, FM0 is not obtainable. This function does the same as the RFID.RxDecoding function being available with the AS399X radio element. Last error codes: ERROR_SUCCESS ERROR_IO_DEVICE

Function Input:
Direct the tags to use this subcarrier modulation when backscatters.The following Miller subcarrier options are available: M2 (represented in integer as 2), M4 (as 4), and M8 (as 8).

Function Output:
Miller-modulated subcarrier used for the tag-reader communication. Default is 2 with the AS399X radio element, and 4 with the M5e-c radio element.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 215 / 712

Nordic ID MHL Manual

Integer RFID.EPCC1G2.Password
Min Value: -2147483648 Max Value: 2147483647 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets password needed for the memory access in UHF C1G2 tag communication, when the access to the memory bank is password protected. In other words, the tag has a non-zero access password, and the lock status of the memory area does not permit read, write, lock or erase operations in the Open state. Password setting is a global one within the RFID driver, meaning that the password is not connected with any particular tag within the RFID driver, such as the tag picked out for the memory access using RFID.CurrentId function. The RFID.EPCC1G2.Password is applicable in the context of the following functions: - RFID.BlockData - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.EPCC1G2.Write - RFID.EPCC1G2.BlockWrite - RFID.EPCC1G2.BlockErase - RFID.EPCC1G2.Lock - RFID.BlockDataString - RFID.BlockDataStringById - RFID.StringData - RFID.StringDataById - RFID.NXP.ReadProtect - RFID.NXP.EAS Applying the access password to the above-mentioned functions is conditional on the position of a switch turned using a RFID.EPCC1G2.Secured function. When the switch is turned to the on position (set to TRUE) the Access command(s) together with the password is passed on to a tag. If the switch is the off position, the above-mentioned functions attempt to get access to the tag memory without password. As an aside the tag may or may not support Access command and Access password. They are optional according to the Gen2 UHF RFID Specification. Last error codes: ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 216 / 712

Nordic ID MHL Manual

Function Input:
Use this 32-bit value as a password to access a tag memory using the above-listed functions. The RFID driver handles 32-bit value as the Gen2 UHF RFID specification details, so the endianess is not an issue, when inserting the password in the driver.

Function Output:
Access password the above-mentioned operations transmit to a tag to get access to the memory bank on the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 217 / 712

Nordic ID MHL Manual

Binary RFID.EPCC1G2.ProgramId [M5e-c]


Min Bytes: 2 Max Bytes: 62 WRITE ONLY NOT stored in MHL Profile.

Description:
The function writes EPC identifier to the EPC memory bank of a tag. The selection criteria used for recognizing the tag being an object of the EPC writing expect that there is only one tag within range of the reader, that is, the first tag responding to the reader receives its tag identifier. The EPC Binary Encoding being written to a tag is passed as a binary parameter to the function. The function may be suitable to label a brand new or a recomissioned tag with the EPC identifier. However, the EPC Binary Encoding can be written to any tag that does not have the write-protected EPC memory bank. The write operation requires that the RFID radio element has allocated enough space for the identifier to be written to the EPC bank. For more information, see RFID.EPCC1G2.LongEPC function. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID MHL_RFID_OUTOFRANGE MHL_RFID_LOW_POWER MHL_RFID_NO_TAG MHL_UHF_WRITE_ERROR MHL_RFID_ACCESS_ERROR MHL_RFID_INVALID

Function Input:
Write the contents of the byte buffer to the EPC memory bank as an EPC Binary Encoding of a tag (Header, Filter, Partition, and the GS1 system identifier as specified by the Header and Partion information). Maximum buffer size is 62 in bytes, that is, a maximum of 496-bit encoding of a system identifier can be written.

Function Output:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 218 / 712

Nordic ID MHL Manual

n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 219 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.PwdMem.Access.Open
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the access permission of the Access password memory to the RFID.EPCC1G2.Lock call by giving permission for read and writing the Access password to everyone. In EPCglobal terms, the Access password memory on the tag can be read and written both in the Open and in the Secured state. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the access permission of the Access password memory block to the RFID.EPCC1G2.Lock call by allowing reading and writing the Access password both in the Open and in the Secured state. FALSE = n/a

Function Output:
TRUE = Access permission for read and writing the Access password both in the Open and in the Secured state is selected. FALSE = The access option of reading and writing the Access Password in the Open or in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 220 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.PwdMem.Access.Permalock
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the access permission of the Access password memory to the RFID.EPCC1G2.Lock call by giving unchangeable permission for read and writing the Access password to no one. In EPCglobal terms, the Access password memory on the tag cannot be read nor written in any state, that is, the Aceess password memory is made permanently hidden. The function also tells whether or not this irrevocable access-denied-to-everyone is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the access prohibition of reading and writing no longer the Access password memory block to the RFID.EPCC1G2.Lock call. This lock status is made permanent. FALSE = n/a

Function Output:
TRUE = Irrevocable access prohibition of reading and writing no longer the Access password is selected. FALSE = The access option of not allowing reading and writing the Access Password any longer will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 221 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.PwdMem.Access.Permawrite
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the access permission of the Access password memory to the RFID.EPCC1G2.Lock call by giving unchangeable permission for read and writing the Access password to everyone. In EPCglobal terms, the Access password memory on the tag can be read and written both in the Open and in the Secured state, and the permission is made permanently unchangeable. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the access permission of the Access password memory block to the RFID.EPCC1G2.Lock call by allowing reading and writing the Access password both in the Open and in the Secured state. This lock status cannot be changed any longer. FALSE = n/a

Function Output:
TRUE = Irrevocable access permission for read and writing the Access password both in the Open and in the Secured state is selected. FALSE = The access option of reading and writing the Access Password in the Open or in the Secured state will not be made permanent on the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 222 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.PwdMem.Access.Secured
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the access permission of the Access password memory to the RFID.EPCC1G2.Lock call by giving permission for read and writing the Access password to someone knowing the access password of the tag. In EPCglobal terms, the Access password memory on the tag can be read and written in the Secured state only. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the access permission of the Access password memory block to the RFID.EPCC1G2.Lock call by allowing reading and writing the Access password in the Secured state. FALSE = n/a

Function Output:
TRUE = Access permission for read and writing the Access password in the Secured state is selected. FALSE = The access option of reading and writing the Access Password in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 223 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.PwdMem.Kill.Open
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the access permission of the Kill password memory to the RFID.EPCC1G2.Lock call by giving permission for read and writing the Kill password to everyone. In EPCglobal terms, the Kill password memory on the tag can be read and written both in the Open and in the Secured state. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Specify the access permission of the Kill password memory block to the RFID.EPCC1G2.Lock call by allowing reading and writing the Kill password both in the Open and in the Secured state. FALSE = n/a

Function Output:
TRUE = Access permission for read and writing the Kill password both in the Open and in the Secured state is selected. FALSE = The access option of reading and writing the Kill Password in the Open or in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 224 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.PwdMem.Kill.Permalock
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the access permission of the Kill password memory to the RFID.EPCC1G2.Lock call by giving unchangeable permission for read and writing the Kill password to no one. In EPCglobal terms, the Kill password memory on the tag cannot be read nor written in any state, that is, the Kill password memory is made permanently hidden. The function also tells whether or not this irrevocable access-denied-to-everyone is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the access prohibition of reading and writing no longer the Kill password memory block to the RFID.EPCC1G2.Lock call. This lock status is made permanent. FALSE = n/a

Function Output:
TRUE = Irrevocable access prohibition of reading and writing no longer the Kill password is selected. FALSE = The access option of not allowing reading and writing the Kill Password any longer will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 225 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.PwdMem.Kill.Permawrite
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the access permission of the Kill password memory to the RFID.EPCC1G2.Lock call by giving unchangeable permission for read and writing the Kill password to everyone. In EPCglobal terms, the Kill password memory on the tag can be read and written both in the Open and in the Secured state, and the permission is made permanently unchangeable. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the access permission of the Kill password memory block to the RFID.EPCC1G2.Lock call by allowing reading and writing the Kill password both in the Open and in the Secured state. This lock status cannot be changed any longer. FALSE = n/a

Function Output:
TRUE = Irrevocable access permission for read and writing the Kill password both in the Open and in the Secured state is selected. FALSE = The access option of reading and writing the Kill Password in the Open or in the Secured state will not be made permanent on the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 226 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.PwdMem.Kill.Secured
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the access permission of the Kill password memory to the RFID.EPCC1G2.Lock call by giving permission for read and writing the Kill password to someone knowing the access password of the tag. In EPCglobal terms, the Kill password memory on the tag can be read and written in the Secured state only. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the access permission of the Kill password memory block to the RFID.EPCC1G2.Lock call by allowing reading and writing the Kill password in the Secured state. FALSE = n/a

Function Output:
TRUE = Access permission for read and writing the Kill password in the Secured state is selected. FALSE = The access option of reading and writing the Kill Password in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 227 / 712

Nordic ID MHL Manual

DWORD RFID.EPCC1G2.Q [AS399X]


Min Value: 0 Max Value: 7 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets Q parameter of the Gen2 Query command which is dispatched during the inventory round performed by RFID.InventorySelect, RFID.Inventory, or RFID.MetaInventory function. The value of RFID.EPCC1G2.Q shall be seen as a starting point for randomness of tag replies, which may be adjusted adaptively with the Gen2 QueryAdjust command during the inventory round by the driver.

Function Input:
Use this value for the Q parameter of the Query command, when the invetory round is performed using RFID.Inventory, RFID.MetaInventory, or RFID.InventorySelect function. The Q value can be set in the range of 0 to 7.

Function Output:
A Q parameter for above-mentioned inventory rounds. Default is 3.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 228 / 712

Nordic ID MHL Manual

DWORD RFID.EPCC1G2.Q [M5e-c]


Min Value: 0 Max Value: 15 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets Q parameter of the Gen2 Query command. The Q value is used for every Query command dispatched. The Q value zero has a special meaning to the Gen2 protocol handling on the implementation of M5e-c RFID radio element. When set to zero, the selection of the Q value and adjusting it is done algorithmically, not neceassrily in the way the Gen2 UHF RFID protocol specification (Version 1.2.0) suggests in Annex D. Last error codes: - ERROR_SUCCESS - ERROR_IO_DEVICE

Function Input:
Use this value for the Q parameter of the Query command. The Q value can be set in the range of 0 to 15. The value zero switches the Gen2 protocol handler into the automatic mode of Q handling.

Function Output:
A Q parameter for Gen2 Query command. Default is 3.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 229 / 712

Nordic ID MHL Manual

Binary RFID.EPCC1G2.Read
Min Bytes: 0 Max Bytes: 128 READ ONLY NOT stored in MHL Profile.

Description:
The function reads data from the UHF C1G2 tag specified within the RFID driver by its EPC identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. (In this case, the RFID.EPCC1G2.Id is recommended.) When the read access to the memory bank is password protected (that is, the tag has a non-zero access password, and the lock status of the memory location does not permit reading data in the Open state), the RFID.EPCC1G2.Read needs to transmit the Gen2 Access command with an access password to the tag. If that is the case, the RFID.EPCC1G2.Read shall be initialized by invoking an RFID.EPCC1G2.Secured function with the TRUE value. On the other hand, if the tag has a zero-valued access password, or does not implement the access password, the RFID.EPCC1G2.Secured function shall be invoked with the FALSE value. The password is assigned to the read operation using an RFID.EPCC1G2.Password function.The size of the contents in bytes in the read buffer will refer to the 16-bit address boundary, meaning that the received data the buffer contains will be always alingned on 2-byte boundary. The parameters of the read are set using the following functions: - RFID.EPCC1G2.Bank sets the bank to be read - RFID.BlockPointer sets the starting address within the memory bank - RFID.BlockCount sets the number of bytes to be read starting at the location set by the RFID.BlockPointer. Note that it is not possible to set a time limit for RFID.EPCC1G2.Read operation. The implementation uses its internal time limits. In addition to the last error code, the RFID.BytesOK function gives information on the number of bytes that were succesfully read from the tag, that is, the number of bytes the buffer contains. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 230 / 712

Nordic ID MHL Manual

MHL_RFID_READ_ERROR

Function Input:
n/a

Function Output:
Read buffer = 16-bit data units, in binary, from the tag specified by its EPC identifier within the RFID driver. The EPC identifier is set using any of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. The read buffer shall be 128 bytes in length.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 231 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.Secured
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch applying a password to the operations getting access to the memory banks being password protected on a tag. The following functions are within the scope of the RFID.EPCC1G2.Secured: - RFID.BlockData - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.EPCC1G2.Write - RFID.EPCC1G2.BlockWrite - RFID.EPCC1G2.BlockErase - RFID.EPCC1G2.Lock - RFID.BlockDataString - RFID.BlockDataStringById - RFID.StringData - RFID.StringDataById - RFID.NXP.ReadProtect - RFID.NXP.EAS The actual password is assigned to the above-mentioned functions using RFID.EPCC1G2.Password function. Last error codes: ERROR_SUCCESS

Function Input:
TRUE = Pass on the Gen2 Access command(s) together with the password to a tag, when the above-listed functions are called. FALSE = Bypass transmitting the Gen2 Access command(s) during the memory operations on a tag performed by the above-listed functions.

Function Output:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 232 / 712

Nordic ID MHL Manual

TRUE = Password is applied to the operations needing it to access the memory on a Gen2 tag, that is, the tag implements Access command and has a non-zero access password. FALSE = The above-mentioned functions expect to get access to the tag memory without a password, that is, the Gen2 tag has either zero password or not provide password protection of a particular memory bank.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 233 / 712

Nordic ID MHL Manual

Integer RFID.EPCC1G2.Session
Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a session variable on the driver. The scope of the variable depends on the RFID radio element being in use on the reader. The scope can extend to all the functions perfoming an inventory round (M5e-c), or to some ones (AS399X) in which case the usage of the RFID.EPCC1G2.Session is mentioned in the description of a function. The session value is used for the Target parameter of the Gen2 Select command, and for the Session parameter of the Gen2 Query command. The Session parameter sets limits on the possible values being as follows: 0b00 (S0), 0b01 (S1), 0b10 (S2), and 0b11 (S3).

Last error codes: - ERROR_SUCCESS - ERROR_IO_DEVICE

Function Input:
Use this value for a Target parameter of the Select command, and for a Session parameter of the Query command.

Function Output:
Least significant two bits in integer variable specifies the session within which the tags become involved in the inventory round or to be excluded from it.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 234 / 712

Nordic ID MHL Manual

String RFID.EPCC1G2.Target [M5e-c]


Min Chars: 1 Max Chars: 2 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the RFID driver variable determining the value of the target parameter in the Gen2 Query command. The scope of the RFID.EPCC1G2.Target is all the RFID functions that operate with a tag or tags due to the fact that the sequence of the Gen2 Select and Query commands begins all communication between reader and tags. However, there are four settings of the attribute, from which two are available only for inventory rounds. The letter symbols the internal driver variable can obtain are as follows: A, B, AB, and BA. The A and B represent directly the values that the target parameter of the Gen2 Qurey command can contain, whether the tag having the inventoried flag set to A or to B will be involved in the query session. The AB and BA represent the query procedure which is switched on when the RFID.EPCC1G2.Target sets the internal driver variable to either upper-case letter pair before every inventory round. The meaning of the letter pairs is as follows: - AB: The reader starts singulating the tags that set their invetoried flag to A when received a Select command from the reader. After iterating through the A tags within range (not necessarily all the tags), the reader continues singulating the tags that has set their invetoried flag to B, for whatever reason. - BA: The setting triggers the same procedure as the setting of AB does, but the search order is reverse. Note that the settings of AB and BA are a one-off, meaning that after every inventory round the setting has to be renewed so that the search order remains the same. Last error codes: ERROR_SUCCESS ERROR_IO_DEVICE

Function Input:
Direct the singulation to search for tag(s) as specified by this upper-case letter (or letter pair) determining the position of the inventoried flag on the tag becoming singulated. The size of the string buffer shall be 30 times the size of the UTF16 character, and its contents shall be terminated with the null character.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 235 / 712

Nordic ID MHL Manual

Function Output:
Singulation is performed within the inventory flag setting as specified by the contents of this 0-terminated Unicode (UTF16) character string. (Default is A)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 236 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.TIDMemory.Open
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the TID memory bank to the RFID.EPCC1G2.Lock call by giving permission for writing data to the TID memory to everyone. In EPCglobal terms, to have write access to the TID memory is possible both in the Open and in the Secured state. The function also tells whether or not this particular write-access permission is selected to be written to the tag. Note that The EPCglobal Air Interface spec of the Class-1 Generation-2 UHF RFID does not specify the read protection for the TID memory bank. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the write-access permission of the TID memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the TID memory both in the Open and in the Secured state. FALSE = n/a

Function Output:
TRUE = Having write access to the TID memory both in the Open and in the Secured state is selected. FALSE = The access option of writing data to the TID memory in the Open and in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 237 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.TIDMemory.Permalock
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the TID memory bank to the RFID.EPCC1G2.Lock call by giving unchangeable permission for writing data to the TID memory to no one. In EPCglobal terms, to have write access to the TID memory is not possible in any state, that is, the TID memory bank is made permanently read-only. The function also tells whether or not this irrevocable read-only access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the unchangeable access prohibition against allowing writing data to the TID memory bank to the RFID.EPCC1G2.Lock call. The lock status is made permanent. FALSE = n/a

Function Output:
TRUE = Irrevocable access prohibition of writing no longer data to the TID memory is selected. FALSE = The access option of not allowing writing any longer data to the TID memory will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 238 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.TIDMemory.Permawrite
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the TID memory bank to the RFID.EPCC1G2.Lock call by giving unchangeable permission for writing data to the TID memory to everyone. In EPCglobal terms, to have write access to the TID memory is possible both in the Open and in the Secured state, and the permission is made permanently unchangeable. The function also tells whether or not this particular write-access permission is selected to be written to the tag. Note that The EPCglobal Air Interface spec of the Class-1 Generation-2 UHF RFID does not specify the read protection for the TID memory bank. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the unchangeable write-access permission of the TID memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the TID memory both in the Open and in the Secured state. FALSE = n/a

Function Output:
TRUE = Having unchangable write access to the TID memory both in the Open and in the Secured state is selected. FALSE = The access option of writing data to the TID memory in the Open and in the Secured state will not be made permanent on the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 239 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.TIDMemory.Secured
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the TID memory bank to the RFID.EPCC1G2.Lock call by giving permission for writing data to the TID memory to someone who can supply a valid access password to the tag. In EPCglobal terms, to have write access to the TID memory is possible in the Secured state only. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the write-access permission of the TID memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the TID memory in the Secured state. FALSE = n/a

Function Output:
TRUE = Having write access to the TID memory in the Secured state is selected. FALSE = The access option of writing data to the TID memory in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 240 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.UIIMemory.Open
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the EPC memory bank to the RFID.EPCC1G2.Lock call by giving permission for writing data to the EPC memory to everyone. In EPCglobal terms, to have write access to the EPC memory is possible both in the Open and in the Secured state. The function also tells whether or not this particular write-access permission is selected to be written to the tag. Note that The EPCglobal Air Interface spec of the Class-1 Generation-2 UHF RFID does not specify the read protection for the EPC memory bank. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the write-access permission of the EPC memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the EPC memory both in the Open and in the Secured state. FALSE = n/a

Function Output:
TRUE = Having write access to the EPC memory both in the Open and in the Secured state is selected. FALSE = The access option of writing data to the EPC memory in the Open and in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 241 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.UIIMemory.Permalock
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write access permission of the EPC memory bank to the RFID.EPCC1G2.Lock call by giving unchangeable permission for writing data to the EPC memory to no one. In EPCglobal terms, to have write access to the EPC memory is not possible in any state, that is, the EPC memory bank is made permanently read-only. The function also tells whether or not this irrevocable read-only access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the unchangeable access prohibition against allowing writing data to the EPC memory bank to the RFID.EPCC1G2.Lock call. The lock status is made permanent. FALSE = n/a

Function Output:
TRUE = Irrevocable access prohibition of writing no longer data to the EPC memory is selected. FALSE = The access option of not allowing writing any longer data to the EPC memory will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 242 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.UIIMemory.Permawrite
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the EPC memory bank to the RFID.EPCC1G2.Lock call by giving unchangeable permission for writing data to the EPC memory to everyone. In EPCglobal terms, to have write access to the EPC memory is possible both in the Open and in the Secured state, and the permission is made permanently unchangeable. The function also tells whether or not this particular write-access permission is selected to be written to the tag. Note that The EPCglobal Air Interface spec of the Class-1 Generation-2 UHF RFID does not specify the read protection for the EPC memory bank. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the unchangeable write-access permission of the EPC memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the EPC memory both in the Open and in the Secured state. FALSE = n/a

Function Output:
TRUE = Having unchangable write access to the EPC memory both in the Open and in the Secured state is selected. FALSE = The access option of writing data to the EPC memory in the Open and in the Secured state will not be made permanent on the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 243 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.UIIMemory.Secured
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the EPC memory bank to the RFID.EPCC1G2.Lock call by giving permission for writing data to the EPC memory to someone who can supply a valid access password to the tag. In EPCglobal terms, to have write access to the EPC memory is possible in the Secured state only. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the write-access permission of the EPC memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the EPC memory in the Secured state. FALSE = n/a

Function Output:
TRUE = Having write access to the EPC memory in the Secured state is selected. FALSE = The access option of writing data to the EPC memory in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 244 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.UserMemory.Open
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the User memory bank to the RFID.EPCC1G2.Lock call by giving permission for writing data to the User memory to everyone. In EPCglobal terms, to have write access to the User memory is possible both in the Open and in the Secured state. The function also tells whether or not this particular write-access permission is selected to be written to the tag. Note that The EPCglobal Air Interface spec of the Class-1 Generation-2 UHF RFID does not specify the read protection for the User memory bank. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the write-access permission of the User memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the User memory both in the Open and in the Secured state. FALSE = n/a

Function Output:
TRUE = Having write access to the User memory both in the Open and in the Secured state is selected. FALSE = The access option of writing data to the User memory in the Open and in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 245 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.UserMemory.Permalock
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the User memory bank to the RFID.EPCC1G2.Lock call by giving unchangeable permission for writing data to the User memory to no one. In EPCglobal terms, to have write access to the User memory is not possible in any state, that is, the User memory bank is made permanently read-only. The function also tells whether or not this irrevocable read-only access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the unchangeable access prohibition against allowing writing data to the User memory bank to the RFID.EPCC1G2.Lock call. The lock status is made permanent. FALSE = n/a

Function Output:
TRUE = Irrevocable access prohibition of writing no longer data to the User memory is selected. FALSE = The access option of not allowing writing any longer data to the User memory will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 246 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.UserMemory.Permawrite
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the User memory bank to the RFID.EPCC1G2.Lock call by giving unchangeable permission for writing data to the User memory to everyone. In EPCglobal terms, to have write access to the User memory is possible both in the Open and in the Secured state, and the permission is made permanently unchangeable. The function also tells whether or not this particular write-access permission is selected to be written to the tag. Note that The EPCglobal Air Interface spec of the Class-1 Generation-2 UHF RFID does not specify the read protection for the User memory bank. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function.

Function Input:
TRUE = Specify the unchangeable write-access permission of the User memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the User memory both in the Open and in the Secured state. FALSE = n/a

Function Output:
TRUE = Having unchangable write access to the User memory both in the Open and in the Secured state is selected. FALSE = The access option of writing data to the User memory in the Open and in the Secured state will not be made permanent on the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 247 / 712

Nordic ID MHL Manual

Boolean RFID.EPCC1G2.UserMemory.Secured
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function specifies the write-access permission of the User memory bank to the RFID.EPCC1G2.Lock call by giving permission for writing data to the User memory to someone who can supply a valid access password to the tag. In EPCglobal terms, to have write access to the User memory is possible in the Secured state only. The function also tells whether or not this particular access permission is selected to be written to the tag. For more information on the change of the access permissions on the memory banks, see RFID.EPCC1G2.Lock function

Function Input:
TRUE = Specify the write-access permission of the User memory bank to the RFID.EPCC1G2.Lock call by allowing writing data to the User memory in the Secured state. FALSE = n/a

Function Output:
TRUE = Having write access to the User memory in the Secured state is selected. FALSE = The access option of writing data to the User memory in the Secured state will not be written to the tag.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 248 / 712

Nordic ID MHL Manual

Binary RFID.EPCC1G2.Write
Min Bytes: 2 Max Bytes: 128 WRITE ONLY NOT stored in MHL Profile.

Description:
The function writes to the memory bank of the UHF C1G2 tag specified within the RFID driver by its EPC identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. (In this case, the RFID.EPCC1G2.Id is recommended.) When the write access to the memory bank is password protected (that is, a tag has a non-zero access password, and the lock status of the memory does not permit write operation in the Open state), the RFID.EPCC1G2.Write needs to put a tag into the Secured state. In that case, before calling the RFID.EPCC1G2.Write, it shall be initialized by calling an RFID.EPCC1G2.Secured function with the TRUE value, and an access password shall be assigned to the write operation using an RFID.EPCC1G2.Password function. On the other hand, if a tag has a zero-valued access password, or does not implement the Access password, the RFID.EPCC1G2.Secured function shall be called with the FALSE value and the password setting is not needed. Before calling the RFID.EPCC1G2.Write the actual write parameters need to be set as well. The location to which first data unit (16-bit word) will be written shall be set using a RFID.BlockPointer function. The implementation also requires information on how many bytes the RFID.BlockData shall write to the tag. A byte count value is set using a RFID.BlockCount function. The size of the contents in bytes in the write buffer shall refer to the 16-bit address boundary used on the UHF C1G2 tag, meaning that the data the buffer contains shall be always alingned on 2-byte boundary. Target memory bank is specified using a RFID.EPCC1G2.Bank function. Note that it is not possible to set a time limit for the RFID.EPCC1G2.Write operation. The implementation uses its internal time limits. In addition to the last error code, there is an RFID.BytesOK function that also gives success/failure information in the form of the number of bytes that were succesfully written to the tag. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 249 / 712

Nordic ID MHL Manual

MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR MHL_UHF_WRITE_ERROR

Function Input:
Write the tag data units (16-bit words) the buffer contains to the tag specified by its EPC identifier within the RFID driver. The size of the write buffer shall be 128 bytes, and data it contains shall be in binary form.

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 250 / 712

Nordic ID MHL Manual

String RFID.Frequency
Min Chars: 3 Max Chars: 4 READ ONLY NOT stored in MHL Profile.

Description:
The function gives general information about the frequncy band the RFID reader is designed for.

Function Input:
n/a

Function Output:
One of the following texts, in Unicode (UTF16) characters, describes the frequency band in which the RFID reader operates: HF UHF

Error Codes:
0 20015 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 251 / 712

Nordic ID MHL Manual

String RFID.FWRelease [M5e-c]


Min Chars: 0 Max Chars: 201 READ ONLY NOT stored in MHL Profile.

Description:
The function gives release information about the firmware being in use on the RFID radio element.

Function Input:
n/a

Function Output:
Firmware release in Unicode (UTF16) characters. The information can be 200 characters in length at most.

Error Codes:
0 20015 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 252 / 712

Nordic ID MHL Manual

Binary RFID.IdList
Min Bytes: 128 Max Bytes: 128 READ ONLY NOT stored in MHL Profile.

Description:
The function gives a tag reference array representing the tags being available after the invetory operation is performed using RFID.Inventory, RFID.MetaInventory, or RFID.InventorySelect function. Based on the array list, the tags can be individually picked out for further operations using RFID.CurrentId function. Note 1: A tag reference is a concept that is used within the driver context only, so using the list the tags can be referenced within the RFID driver one at the time. Note 2: The list is generated after every inventory round performed by the RFID.Inventory, RFID.MetaInventory, or RFID.InventorySelect function.

Function Input:
n/a

Function Output:
The list of the tags the reader has singulated during the inventory round. The array gives references of the tags as follows: If the value of an array element is 1, then the position (index value) of that array element is a valid tag reference. Correspondingly, the index value having the element value 0 associated with it is not a valid reference. The size of the reference list (IdList) is 128 in bytes, so the tag references are in the range of 0 to 127 (the value 0 is also a tag reference).

Return Value:
The get operation returns with the success status whether or not the array includes valid IDs.

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 253 / 712

Nordic ID MHL Manual

ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 254 / 712

Nordic ID MHL Manual

Boolean RFID.Inventory [AS399X]


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function performs inventory procedure (inventory round) of the Gen2 protocol. The Gen2 Select command is included in the RFID.Inventory with the selection criteria involving all the tags in the inventory, for more information see below. The Q value needed for the Gen2 Query command may be set using a RFID.EPCC1G2.Q function. The Q also determines how long the inventory round takes, the value is used as a base for counting down to the end of the round. However, the implementation of the RFID.Inventory sets a 2 second total limit for the inventory. The other parameters of the Gen2 Query command may be set, or have built-in values as follows: - DR: The parameter is set/chosen implicitely when the frequency is picked out for the backscatter link using a RFID.BLF function. - M: The parameter is set using either a RFID.RxDecoding or a RFID.EPCC1G2.Miller function. - TRext: The parameter is implemented as a built-in setting set to extended preamble (0b1 use pilot tone). - Sel: The parameter is implemented as a built-in setting set to All (0b00) - Session: The parameter may be set using a RFID.EPCC1G2.Session function. - Target: The parameter is implemented as a built-in setting; the tags with the inventoried flag set to A become involved in the Query (0b0). A Tari (the basic Gen2 parameter determining e.g the timing of the Gen2 Query preamble parameters) is picked out implicitly when the frequency is set for the backscatter link using the RFID.BLF function. The implementation uses the PW set to 0.5 * Tari in length, and the data-1 symbol set to 2.0 * Tari. Within the RFID.Inventory, the Gen2 Select command is sent out with the following parameters: - Target: Be inventoried in the session set/returned by the RFID.EPCC1G2.Session function - Action: Set inventoried flag to A (built-in value) - MemBank: 0b01 - mask applies to EPC memory (built-in value). (If one or more tags are singulated, there is EPC Binary Encoding information available on a tag basis, see the note section below.) - Pointer: 0x20 (built-in value) - Mask length: 0 - all tags are included in the inventory (built-in value) - Mask: No mask (built-in value)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 255 / 712

Nordic ID MHL Manual

- Truncate: Disabled (built-in value) In addition to the possibility of adjusting the parameters of the Gen2 protocol, it is also possible to adjust the power in the signal transmitted using either a RFID.RFPower or a RFID.TxLevel function. Note: When RFID.Inventory succeeds in singulating tags, all the information the singulation produced is stored in the RFID driver, meaning that the RFID.Inventory just returns with a piece of information on successful or unsuccessfull inventory round. The actual tag information needs to be read from the driver using the functions intended for that purpose. The next two functions give general information on the singulation: - RFID.TagsCount - the number of tags the inventory round singulated. - RFID.IdList - the list of the singulated tags represented by tag references. Reading the actual tag information needs some preparition with the following functions: - RFID.Tag1 to RFID.Tag16 - puts one of the sixteen possible tags under the microscope in the RFID driver. Be aware the RFID.IdList gives valid tag references by adding one to the reference value taken out of the RFID.IdList to use RFID.Tag[ID] functions. For example, the value 0 as a valid reference from the RFID.IdList results in RFID.Tag1 function. - RFID.CurrentId - is another possibility to bring a tag into focus in the driver. The RFID.IdList may be applied directly to this function without first adding one to the reference value extracted from the list. After the pick of a tag under examination in the driver, the following functions may be called to receive information on that particular tag, or to perform a kill action in the tag: - RFID.ChipId - RFID.SerialString - RFID.BinString - RFID.KillTag - RFID.Decode For further information, see the description of a particular function. Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG

Function Input:
TRUE = Singulate tags.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 256 / 712

Nordic ID MHL Manual

FALSE = n/a

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 257 / 712

Nordic ID MHL Manual

Boolean RFID.Inventory [M5e-c]


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function performs inventory procedure (inventory round) of the Gen2 protocol to search for all the tags within range of the reader. It is also possible to influence the inventory procedure using the following functions: - RFID.Timeout: to specify a period of time over which the tags are searched for. Time scale can vary between 50 and 1500 milliseconds. - RFID.EPCC1G2.Session: to specify the session within which the tags become involved in the inventory round (from S0 to S3). Default is S0. - RFID.EPCC1G2.Q: to specify the number of slots used in the round. Note that the Q set to zero gets the reader adjusting the Q value automatically. - RFID.EPCC1G2.Miller: to specify the M parameter of the Gen2 Query command. The following Miller subcarrier options are available: M2, M4, and M8. - RFID.EPCC1G2.Target: note that the RFID.Inventory uses the mode in which the tags having the inventoried flag set to A or B are singulated first, and then the tags with the inventoried flag being contrary to the first singulation. Using the RFID.EPCC1G2.Target the singulation order may be selected, either starting on inventoried A or B target. In addition to the functions that can be used for adjusting the parameters of the Gen2 protocol, there are some functions that may be used for influencing the physical properties of the reader-tag communication: - RFID.Polarization - RFID.RFPower (or RFID.TxLevel) RFID.Polarization requires that the reader incorporates the cross-dipole antenna. When the RFID.Inventory succeeds in singulating tags, all the information the singulation produced is stored in the RFID driver, meaning that the RFID.Inventory just returns with a piece of information on successful or unsuccessfull inventory round. The actual tag information needs to be read from the driver using the functions intended for that purpose. However, the size of the EPC identifier on the tags shall be known beforehand, especially if the length is longer than 96 bits (default). The reader needs the length information for its buffer management before starting to singulate tags. The length of the buffer needed for an EPC identifier can be set using a RFID.EPCC1G2.LongEPC function. The next two functions give general information on the singulation: - RFID.TagsCount - the number of tags the inventory round singulated. - RFID.IdList - the list of the singulated tags represented by tag references.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 258 / 712

Nordic ID MHL Manual

Reading the actual tag information needs some preparition with the following functions: - RFID.Tag1 to RFID.Tag16 - puts one of the sixteen possible tags under the microscope in the RFID driver. Be aware the RFID.IdList gives valid tag reference values by adding one to the reference value extracted from the RFID.IdList to use RFID.Tag[ID] functions. For example, the value 0 as a valid reference from the RFID.IdList results in RFID.Tag1 function. - RFID.CurrentId - is another possibility to bring a tag into focus in the driver. The RFID.IdList may be applied directly to this function without first adding one to the reference value extracted from the list. After the pick of a tag under examination in the driver, the following functions may be called to receive information on that particular tag, or to perform a kill action in the tag: - RFID.ChipId - RFID.SerialString - RFID.KillTag Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG - ERROR_IO_DEVICE

Function Input:
TRUE = Singulate tags. FALSE = n/a

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 259 / 712

Nordic ID MHL Manual

Boolean RFID.InventorySelect [AS399X]


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function performs inventory round of the Gen2 protocol using the Gen2 Select command implicitly with the user-defined parameters, see below. The function also produces additional information known as metadata on a tag basis (for more information, see a RFID.MetaInventory function). The Q parameter of the Gen2 Query command may be set using a RFID.EPCC1G2.Q function. Be aware that the Q value also determines how long the inventory session will take, although the implementation sets a 2 second limit for the inventory round of the RFID.InventorySelect, including the Select command. Note that the Target parameter of the Gen2 Query command is set to A (0b0) and the Sel parameter to All (0b00) implicitely, which have an effect on how to use RFID.SelectInvert and RFID.EPCC1G2.Session functions. (In fact, the RFID.EPCC1G2.Session does not allow modifying a SL flag, and the RFID.SelectInvert relies on the above-mentioned built-in settings). The user-defined parameters of the Gen2 Select command can be set as follows: - Target: Using RFID.EPCC1G2.Session function (default session is S0) - Action: Using RFID.SelectInvert function (default value of invertion is FALSE) - MemBank: Using RFID.SelectBank function (default bank is EPC memory) - Pointer: Using RFID.SelectAddress function (default bit address is 32 (0x20)) - Length: Using RFID.SelectLength function (default mask length is 8) - Mask: Using RFID.SelectMask function (default mask is initialized to zero-bits) - Truncate: The parameter is implicitly set to zero meaning the disabled truncation For further information, see the description of a particular function. The results the RFID.InventorySelect produces are accessible in the same way as the results of the RFID.Inventory function are, for further information see the RFID.Inventory function. Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG

Function Input:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 260 / 712

Nordic ID MHL Manual

TRUE = Singulate tags selected according to the user-defined parameters. FALSE = n/a

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 261 / 712

Nordic ID MHL Manual

Boolean RFID.InventorySelect [M5e-c]


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function performs inventory round of the Gen2 protocol using the Gen2 Select command implicitly with the user-defined parameters, see below. The function also produces additional information known as meta data on a tag basis (for more information, see a RFID.MetaInventory function). In addition to the parameters of the Select command, the inventory round can be also managed using the following functions: - RFID.Timeout: to specify a period of time over which the tags are singulated according to the selection criteria. Time scale can vary between 50 and 1500 milliseconds. Default is 300ms. - RFID.EPCC1G2.Session: to specify the session within which the tags become involved in the inventory round (from S0 to S3). Default is S0. - RFID.EPCC1G2.Q: to specify the number of slots used in the round. Note that the Q set to zero gets the reader adjusting the Q value automatically. Default is 3. - RFID.EPCC1G2.Miller: to specify the M parameter of the Gen2 Query command. The following Miller subcarrier options are available: M2, M4, and M8. - RFID.EPCC1G2.Target: to specify the inventoried-flag position of the tag becoming involved in the round. Default is A. (Note that the RFID.SelectInvert function relies on the fact that the tags with the inventoried flag set to A become involved in the inventory round.) In addition to the functions that can be used for adjusting the parameters of the Gen2 Query command, there are some functions that may be used for influencing the physical properties of the reader-tag communication: - RFID.Polarization - RFID.RFPower (or RFID.TxLevel) Using RFID.Polarization function requires that the reader incorporates the cross-dipole antenna. The user-defined parameters of the Gen2 Select command can be set as follows: - Target: Using RFID.EPCC1G2.Session function (default session is S0) - Action: Using RFID.SelectInvert function (default value of invertion is FALSE), - MemBank: Using RFID.SelectBank function (default bank is EPC memory) - Pointer: Using RFID.SelectAddress function (default bit address is 32 (0x20)) - Length: Using RFID.SelectLength function (default mask length is 8) - Mask: Using RFID.SelectMask function (default mask is initialized to zero-bits) - Truncate: The parameter is implicitly set to zero meaning the disabled truncation For further information, see the description of a particular function. The results the RFID.InventorySelect produces are accessible in the same way as the results of the RFID.Inventory function are, for further information see the RFID.Inventory function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 262 / 712

Nordic ID MHL Manual

Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG - ERROR_IO_DEVICE

Function Input:
TRUE = Singulate tags selected according to the user-defined parameters. FALSE = n/a

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 263 / 712

Nordic ID MHL Manual

Integer RFID.KillPassword
Min Value: -2147483648 Max Value: 2147483647 READ / WRITE Stored in MHL Profile.

Description:
The function does the same as RFID.EPCC1G2.KillPassword function. It sets/gets kill password of the tags that can be killed using one of the following functions: RFID.KillTagById, RFID.KillTag, and a RFID.EPCC1G2.KillTag. For more information, see the RFID.EPCC1G2.KillPassword.

Function Input:
Use this 32-bit value as a kill password parameter of the Gen2 Kill commands dispatched within the scope of RFID.KillTagById, RFID.KillTag, and RFID.EPCC1G2.KillTag operations.

Function Output:
The 32-bit kill password being in use at the moment within the scope of the Gen2 kill operations.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 264 / 712

Nordic ID MHL Manual

Boolean RFID.KillTag
TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function terminates the tag chosen to be an object of the operations within the RFID driver using RFID.CurrentId function. The reader searches the tag for the kill according to its identifier. The RFID.KillTag also requires a kill password of the tag. The kill password of the targeted tag may be assigned to the kill using either RFID.EPCC1G2.KillPassword or RFID.KillPassword function. Note that it is not possible to set a time limit for RFID.KillTag operation. The implementation uses its internal time limits. Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG - ERROR_IO_DEVICE - MHL_RFID_OUTOFRANGE - MHL_RFID_LOCK_ERROR - MHL_RFID_LOW_POWER - MHL_RFID_ACCESS_ERROR

Function Input:
TRUE = Kill the tag chosen to be the centre of operations within the RFID driver FALSE = n/a

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 265 / 712

Nordic ID MHL Manual

87

ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 266 / 712

Nordic ID MHL Manual

Binary RFID.KillTagById
Min Bytes: 2 Max Bytes: 62 WRITE ONLY NOT stored in MHL Profile.

Description:
The function puts an end to the existence of the tag specified by its indentifier, which is passed in the byte buffer to the function. Otherwise the function works in the same way as RFID.KillTag function, and in the case of the UHF C1G2 tag, as RFID.EPCC1G2.KillTag function. For more information on the kill of a tag, see the RFID.KillTag and RFID.EPCC1G2.KillTag functions. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG ERROR_IO_DEVICE MHL_RFID_OUTOFRANGE MHL_RFID_LOCK_ERROR MHL_RFID_LOW_POWER MHL_RFID_ACCESS_ERROR

Function Input:
Kill the tag specified by its identfier in the parameter buffer. The maximum length of the identfier is 62 in bytes. The indentifier is passed to the function in binary.

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 267 / 712

Nordic ID MHL Manual

DWORD RFID.Meta.Frequency
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the frequency at which the reader operated as it transmitted the Gen2 ACK command to a particular tag during the inventory round to receive the PC and EPC of the tag. The frequency can be read from the RFID driver on a tag basis by picking out first a tag for an object of operations using the RFID.CurrentId function and then reading the frequency being related to the communication with that tag. Last error codes: - ERROR_SUCCESS - ERROR_INVALID_PARAMETER (referring to the value of the RFID.CurrentId) - MHL_RFID_NO_TAG (referring to the value of the RFID.CurrentId)

Function Input:
n/a

Function Output:
Frequency in kHz used by the reader as it talked to the tag to which the RFID.CurrentId refers.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 268 / 712

Nordic ID MHL Manual

DWORD RFID.Meta.PC
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the PC part of the EPC memory on a particular tag inventoried using either RFID.MetaInventory, or RFID.InventorySelect function. After inventory round the PC can be read from the RFID driver on a tag basis by picking out first a tag for the centre of operations using the RFID.CurrentId function and then reading the PC of the tag. Last error codes: - ERROR_SUCCESS - ERROR_INVALID_PARAMETER (referring to the value of the RFID.CurrentId) - MHL_RFID_NO_TAG (referring to the value of the RFID.CurrentId)

Function Input:
n/a

Function Output:
16-bit protocol control (PC) section in the EPC memory on the tag to which the focus is set in the RFID driver.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 269 / 712

Nordic ID MHL Manual

DWORD RFID.Meta.RSSI
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the strength of the signal received from a particular tag during the inventory round, assuming the inventory function supports meta data property. After inventory round the received signal strength can be read from the RFID driver on a tag basis by picking out first a tag for the centre of operations using the RFID.CurrentId function and then reading the received signal strength indicator (RSSI) information of the tag. Last error codes: - ERROR_SUCCESS - ERROR_INVALID_PARAMETER (referring to the value of the RFID.CurrentId) - MHL_RFID_NO_TAG (referring to the value of the RFID.CurrentId)

Function Input:
n/a

Function Output:
A negative integer value representing the received signal strength in dBm from the tag to which the RFID.CurrentId refers.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 270 / 712

Nordic ID MHL Manual

DWORD RFID.Meta.Time
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the period of time that passed between the start of an inventory round and the point at which the reader received the PC and EPC of a particular tag within the inventory round. After inventory round the time how long the singulation of a particular tag took can be read from the RFID driver by picking out first a tag for the centre of operations using the RFID.CurrentId function. Last error codes: - ERROR_SUCCESS - ERROR_INVALID_PARAMETER (referring to the value of the RFID.CurrentId) - MHL_RFID_NO_TAG (referring to the value of the RFID.CurrentId)

Function Input:
n/a

Function Output:
The number of milliseconds that elapsed to singulate the tag that has been picked out within the RFID driver for reading information about it.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 271 / 712

Nordic ID MHL Manual

Boolean RFID.MetaInventory
TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function performs inventory procedure (inventory round) of the Gen2 protocol. Read MetaInventory as inventory round that produces information beyond that the inventory according to Gen2 protocol does (with the exception of the PC (protocol control) section in the EPC memory). The function does the same as the RFID.Inventory function, but gives more information on the singulation in addition to that mentioned in the context of the RFID.Inventory function. So called metadata is available with the following functions in the same way as the basic tag data is taken from the RFID driver (see the description of the RFID.Inventory function of a particular RFID radio element): - RFID.Meta.RSSI - RFID.Meta.Frequency - RFID.Meta.PC - RFID.Meta.Time - RFID.Meta.Count (only with the M5e-c RFID radio element) For further information, see the description of a particular function. Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG - ERROR_IO_DEVICE (only with the M5e-c RFID radio element)

Function Input:
TRUE = Singulate tags. FALSE = n/a

Function Output:
n/a

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 272 / 712

Nordic ID MHL Manual

ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 273 / 712

Nordic ID MHL Manual

String RFID.Module
Min Chars: 6 Max Chars: 16 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the name of the RFID radio element incorporated in the handheld reader.

Function Input:
n/a

Function Output:
One of the following text identifiers, in Unicode (UTF16), specifies the RFID radio element on the reader: ThingMagic M5e-c AS399x

Error Codes:
0 20015 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 274 / 712

Nordic ID MHL Manual

Binary RFID.OperationId [M5e-c]


Min Bytes: 2 Max Bytes: 62 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets chip identifier (in the case of the Gen2 UHF tag, an EPC identifier) required to singulate a particular tag for the tag actions performed by the following functions: - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.EPCC1G2.Write - RFID.EPCC1G2.KillTag - RFID.EPCC1G2.BlockWrite - RFID.EPCC1G2.BlockErase - RFID.EPCC1G2.Lock - RFID.BlockDataStringById - RFID.StringDataById Chip indentifier is the term used in the context of the RFID driver for referring to the identity of the item to which the tag is attached. The above-listed functions form the group of functions requiring that an capturing application defines within the RFID driver the chip identifier of a tag (in EPCglobal terms, an EPC Binary Encoding stored on the tag) before invoking any of them to operate with the tag. There is also another group of functions that expect a chip identifier within the driver before operating with a tag. The difference between these two groups is how the identfier has been entered in the driver. The latter group expects that the chip identifier is already available within the RFID driver because of the performed inventory round (see RFID.CurrentID). In the case of the above-listed functions, the RFID.OperationId is one of the three functions that the capturing application may use for entering a chip identifier in the driver. The other two functions are RFID.EPCC1G2.Id and RFID.OperationIdString. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID MHL_RFID_NO_TAG

Function Input:
Use this binary string as an chip identifier (according to the EPC C1G2 specification, to specify a Mask parameter) to singulate a tag for memory access operations. In the case of the UHF

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 275 / 712

Nordic ID MHL Manual

C1G2 reader, the above-listed functions require that the mask is an EPC Binary Encoding of the tag, or a part of it starting at the 0x20 location in the EPC memory bank. The binary string can be a maximum of 62 in bytes.

Function Output:
Binary string identifying the tag with which the above-listed functions operate. (On the tag, the binary string identifies the object to which a tag is attached.) The binary string can be a maximum of 496-bit identifier.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 276 / 712

Nordic ID MHL Manual

String RFID.OperationIdString [M5e-c]


Min Chars: 4 Max Chars: 124 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets chip identifier (in the case of the Gen2 UHF tag, an EPC identifier) required to singulate a particular tag for the tag actions performed by the following functions: - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.EPCC1G2.Write - RFID.EPCC1G2.KillTag - RFID.EPCC1G2.BlockWrite - RFID.EPCC1G2.BlockErase - RFID.EPCC1G2.Lock - RFID.BlockDataStringById - RFID.StringDataById Chip indentifier is the term used in the context of the RFID driver for referring to the identity of the item to which the tag is attached. The above-listed function use the identity information of the item stored on the tag as a select criterion. The RFID.OperationIdString is one of the three functions that an capturing application may use to insert a required chip identifier in the driver. The other two functions are RFID.EPCC1G2.Id and RFID.OperationId. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID MHL_RFID_NO_TAG

Function Input:
Use this hexadecimal Unicode (UTF16) string terminated with the null character as an chip identifier (according to the EPC C1G2 specification, to specify a Mask parameter) to singulate a tag for memory operations. The above-listed functions require that the mask is an EPC Binary Encoding or a part of it, as far as the EPC C1G2 tag is concerned, at the 0x20 location in the EPC memory bank. Note that the hexadecimals can be separated in pairs by space characters (or grouped together in pair units using space characters), if need be. The buffer can contain a

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 277 / 712

Nordic ID MHL Manual

maximum of 124 hexadecimals.

Function Output:
Null-terminated hexadecimal Unicode (UTF16) string identifying a tag, in the case of the EPC C1G2 tag, the EPC identifier of the tag which the above-listed functions operate with. Note that the hexadecimal output may be formatted using an RFID.Separator function. The size of the buffer may be a maximum of 186 + 1 in UTF16 units when the RFID.Separator switch is turned to the on position (, meaning that the output is a hexadecimal dump - hexadecimals separated in pairs by space characters), and a maximum of 496-bit identifier encoding is in question.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 278 / 712

Nordic ID MHL Manual

String RFID.Polarization [AS399X]


Min Chars: 12 Max Chars: 12 READ ONLY NOT stored in MHL Profile.

Description:
The functions gives information on the RFID antenna, about its orientation on the reader being either parallel (horizontally polarized antenna) or perpendicular (vertically polarized antenna) to the surface of the earth when the reader is held in the palm of the hand with the display and keypad facing upwards. Vertical and horizontal polarization refers to the orientation of the electric field in the received and transmitted signal as the antenna has its best performance.

Function Input:
n/a

Function Output:
0-terminated Unicode (UTF16) string containing one of the following texts: Horizontal, Vertical

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 279 / 712

Nordic ID MHL Manual

String RFID.Polarization [M5e-c]


Min Chars: 12 Max Chars: 12 READ / WRITE Stored in MHL Profile.

Description:
The functions sets/gets use of the RFID antennas on the reader, if there are more than one antenna on the reader. In the case of the configuration with one RFID antenna, the function gives information on the orientation of the antenna, whether it is vertically linear polarized or horizontaly linear polarized. When there is the reader with two antennas, it is possible to use either horizontal or vertical antenna, or both of them. Vertical and horizontal polarization refers to the orientation of the electric field in the received and transmitted signal, as the antenna has its best performance. Horizontal means parallel to, and vertical means perpendicular to the surface of the earth, when the reader is held in the hand with the display and keypad facing upwards. The function can have the following Unicode (UTF16) strings: - both - horizontal - vertical {both} string signifies that both the vertical and the horizontal antennas are in use. {vertical} string puts the vertical antenna to use, and {horizontal} string the horizontal antenna. Last error codes: ERROR_SUCCESS MHL_RFID_NOT_SUPPORTED MHL_RFID_INVALID

Function Input:
Use the antennas as they are defined in the buffer containing 0-terminated UTF16 character string. The size of the buffer shall be 12 in UTF16 units.

Function Output:
Antenna(s) the 0-terminated UTF16 charater string represents is (are) in use. (Default string is

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 280 / 712

Nordic ID MHL Manual

horizontal)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 281 / 712

Nordic ID MHL Manual

Boolean RFID.PrASK
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector allowing to choose between the ASK (DSB-ASK) and PR-ASK modulation schemes, which the reader may use for sending out binary-coded commands. Last error codes: ERROR_SUCCESS ERROR_IO_DEVICE

Function Input:
TRUE = Switch the radio element to PR-ASK modulation FALSE = Switch the radio element to ASK modulation

Function Output:
TRUE = PR-ASK modulation scheme is in use FALSE = ASK modulation scheme is in use

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 282 / 712

Nordic ID MHL Manual

Boolean RFID.Reset
TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The functions gives a power-on reset to the RFID element on the reader. In addition, it sets the internal state variables of the driver to zeros.

Function Input:
TRUE = Re-initialize the RFID driver and power down and up the RFID element. FALSE = n/a

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 283 / 712

Nordic ID MHL Manual

DWORD RFID.RFPower [AS399X]


Min Value: 13 Max Value: 100 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets transmission power level of the reader in milliwatts. Last error codes: - ERROR_SUCCESS - ERROR_INVALID_PARAMETER - ERROR_IO_DEVICE

Function Input:
Transmit to tags using this approximate power level. The power level is set in milliwatts in the range of 13 to 100. Note that there are about 10 adjusting steps in use from the 13 mW to 100 mW on the RFID element, although the power level may be set to any value in the range of 13mW to 100 mW using this function. (For more information see the RFID.TxLevel function)

Function Output:
The transmission power level, in milliwatts, fitted to the adjusting steps on the RFID element.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 284 / 712

Nordic ID MHL Manual

DWORD RFID.RFPower [M5e-c]


Min Value: 10 Max Value: 200 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets transmission power level of the reader in milliwatts. The radio element is able to transmit at 23dBm (+/-1.0 dBm accuracy) power level, in other words, approximately 200mW power at a maximum. Last error codes: - ERROR_SUCCESS - ERROR_IO_DEVICE

Function Input:
Transmit to tags using this approximate power level. The power level is set in milliwatts in the range of 10 to 200. (See also the RFID.TxLevel function.)

Function Output:
The transmission power level, in milliwatts.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 285 / 712

Nordic ID MHL Manual

DWORD RFID.RxDecoding [AS399X]


Min Value: 2 Max Value: 8 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets backscatter subcarrier modulation that the tag-reader communication utilizes. There are Miller-modulated subcarriers to choose from, FM0 is not available. This function does the same as the RFID.EPCC1G2.Miller function. Last error codes: ERROR_SUCCESS ERROR_IO_DEVICE

Function Input:
Direct the tags to use this subcarrier modulation when backscatters. The following Miller subcarrier options are available: M2 (represented in integer as 2), M4 (as 4), and M8 (as 8).

Function Output:
Miller-modulated subcarrier used for the tag-reader communication. Default is 2.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 286 / 712

Nordic ID MHL Manual

Boolean RFID.ScanAsync [AS399X]


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function performs inventory round of the Gen2 protocol with the implicit Gen2 select command, see below. The function echoes EPC identifier of the first tag responding to the Query on the screen using key events (note input focus). The RFID.ScanAsync is an asynchrounous operation. The function initiates the search, which ends when one EPC identifier is received and written on the screen. If there is no tag responding within the time limit set for the RFID.ScanAsync using a Scanner.Timeout function, the operation ends in failure. The success or failure of the search may be sounded with beeps and/or signaled with vibration. The beeps for the success and failure are enabled using RFID.SoundSuccess.Enable and RFID.SoundFailure.Enable functions, respectively. Similarly, RFID.VibSuccess.Enable and RFID.VibFailed.Enable functions turn the success and failure vibrations on and off, if need be. (Note that the above-mentioned features are dependent on the hand-held reader, not on the RFID radio element. That is, the reader may or may not support, for example, vibration indication.) How the read-out of the GS1 EPC identfier from the EPC Binary Encodings is formated depends on the position of a decoding switch turned using a Decoder.Enabled function. When the switch is turned to the on position, the read-out is readable by humans, if switched off, the EPC identifiers are shown in the raw form as hexadecimal characters. The hexadecimal output may be formatted using an RFID.Separator function. When the decoding switch is turned to the readable-by-humans position the EPC identifier goes through a check before the result is shown on the screen. In addition to the failing in the check, if decoding the GS1 system identifier that received from the singulated tag is not enabled or not supported the RFID.ScanAsync also ends in failure. The following functions act as an on-off switch to enable decoding the supported GS1 system identifiers in the RFID driver. - Codes.SGTIN.Enable - Codes.SSCC.Enable - Codes.SGLN.Enable - Codes.GRAI.Enable - Codes.GIAI.Enable A Decoder.Error function gives the last error code on decoding if the decoding is enabled. For more information, see Decoder.Error function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 287 / 712

Nordic ID MHL Manual

To filter a particular GS1 system identifier requires that the filtering is enabled using the following functions: - Codes.SGTIN.EnableFiltering - Codes.SSCC.EnableFiltering - Codes.SGLN.EnableFiltering - Codes.GRAI.EnableFiltering - Codes.GIAI.EnableFiltering Note that if the filtering of the received identifier type is enabled and the identifier is filtered out, the RFID.ScanAsync stops singulating a next possible and ends in failure. For more information, see a particular enabling function of the GS1 system identifier, either decoding or filtering. The parameters of the implicit Gen2 select command are as follows: - Target: Inventoried (S0) - Action: Set inventoried flag to A - MemBank: 0b01 - mask applies to EPC memory - Pointer: 0x20 - Mask length: 0 - all tags are included in the inventory - Mask: No mask - Truncate: Disabled Last error codes: - ERROR_SUCCESS - MHL_SCAN_IN_PROGRESS

Function Input:
TRUE = Echo, on the screen, the EPC identifier received from the tag responding first to the Gen2 Query command. FALSE = n/a

Function Output:
n/a

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 288 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 289 / 712

Nordic ID MHL Manual

Boolean RFID.ScanAsync [M5e-c]


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function performs inventory round of the Gen2 protocol to search for any tag that responds first to the Gen2 Query command. The function echoes EPC identifier of the tag responding to the Query on the screen using key events (note input focus). The EPC identifier are shown in the raw form as hexadecimal characters. The hexadecimal output may be formatted using an RFID.Separator function. The RFID.ScanAsync is an asynchrounous operation. The function initiates the search, which ends when one EPC identifier is received and written on the screen. If there is no tag responding whitin the time limit set for the RFID.ScanAsync using a Scanner.Timeout function, the operation ends in failure. The success or failure of the search may be sounded with beeps. The beeps for the success and failure are enabled using RFID.SoundSuccess.Enable and RFID.SoundFailure.Enable functions, respectively. Last error codes: - ERROR_SUCCESS - MHL_SCAN_IN_PROGRESS

Function Input:
TRUE = Echo, on the screen, the EPC identifier received from the tag responding first to the Gen2 Query command. FALSE = n/a

Function Output:
n/a

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 290 / 712

Nordic ID MHL Manual

ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 291 / 712

Nordic ID MHL Manual

Binary RFID.ScanSingle [AS399X]


Min Bytes: 12 Max Bytes: 62 READ ONLY NOT stored in MHL Profile.

Description:
The function performs inventory round of the Gen2 protocol using the Query command with the Q value set to zero (that is, to order a tag(s) to reply immediately to the Query command). According to the RFID Gen2 Air Interface specification, the chance that a tag replies to the Query is 100%. In case of many tags in range, the probability that the reader receives any RN16 response may collapse. The inventory round ends when the first EPC identifier has come in, or if there is no tag available within the built-in 2 second time limit set for the operation. Be aware that the Gen2 select command is implicit in the RFID.ScanSingle function with the following parameters: - Target: Inventoried (S0) - Action: Set inventoried flag to A - MemBank: 0b01 - mask applies to EPC memory - Pointer: 0x20 - Mask length: 0 - all tags are included in the inventory - Mask: No mask - Truncate: Disabled Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG

Function Input:
n/a

Function Output:
If succeeded: Buffer = EPC in binary bytes. The size of the buffer shall be 62 + 1 bytes to receive 496 bits EPC, if need be.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 292 / 712

Nordic ID MHL Manual

(See also RFID.ScanSingleString function)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 293 / 712

Nordic ID MHL Manual

Binary RFID.ScanSingle [M5e-c]


Min Bytes: 12 Max Bytes: 62 READ ONLY NOT stored in MHL Profile.

Description:
The function performs inventory round of the Gen2 protocol to search for any tag within range, and returns the EPC identifier of the tag responding first to the Gen2 Query command. If there is no response within the time limit set for the RFID.ScanSingle using a RFID.Timeout function, the function returns with the error code. Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG

Function Input:
n/a

Function Output:
If succeeded: Buffer = EPC in binary bytes. The size of the buffer shall be 62 + 1 bytes to receive 496 bits EPC, if need be. (See also RFID.ScanSingleString function)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 294 / 712

Nordic ID MHL Manual

String RFID.ScanSingleString
Min Chars: 0 Max Chars: 50 READ ONLY NOT stored in MHL Profile.

Description:
The function performs inventory round of the Gen2 protocol to search for any tag within range in the same way as does the RFID.ScanSingle function. The difference between the RFID.ScanSingle and this function is the format in which the result is represented. For more information, see the RFID.ScanSingle function of a particular RFID radio element. Last error codes: - ERROR_SUCCESS - MHL_RFID_NO_TAG

Function Input:
n/a

Function Output:
Buffer = EPC Binary Encoding of a tag expressed as 0-terminated hexadecimal Unicode (UTF16) character string. To receive an EPC the size of the buffer shall be 36 + 1 in UTF16 units, that is, to receive 96-bit EPC with extra space characters between each 8-bit unit of the EPC Binary Encoding that is converted to hexadecimal character pair. For more information on extra space insertion, see an RFID.Separator function.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 295 / 712

Nordic ID MHL Manual

DWORD RFID.SelectAddress
Min Value: 0 Max Value: 2147483647 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets bit address of the mask of the Gen2 Select command. The address (pointer) parameter set by the function is used within RFID.InventorySelect function. The bit address specifies the starting address the tag uses to match mask bit string against the bit string stored in its memory. (Mask is set using the RFID.SelectMask function).

Function Input:
Use this integer as a pointer parameter of the Gen2 Select command specifying the starting address of the Mask set by the RFID.SelectMask function. The address is defined as a memory bit address without any formating, that is, the driver forms EBV (Extensible Bit Vectors) structure from the integer.

Function Output:
Integer in double word variable references bit address in the tag memory. Default address points to the 32nd bit location in the memory bank.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 296 / 712

Nordic ID MHL Manual

DWORD RFID.SelectBank
Min Value: 1 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets memory bank (MemBank) parameter of the Gen2 Select command. The memory bank parameter set by the function is used within RFID.InventorySelect function. It specifies the memory bank to which the mask applies. (Mask is set using the RFID.SelectMask function).

Function Input:
Use this value as a MemBank parameter of the Gen2 Select command specifying the area in the tag memory to which the tag applies the Mask set by the RFID.SelectMask function. The value can be one of the following set {0b01 (EPC), 0b10 (TID), 0b11 (User memory)}.

Function Output:
Least significant two bits in double word variable specifies the memory bank according to the RFID Gen2 Air Interface specification. Default is EPC memory bank.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 297 / 712

Nordic ID MHL Manual

Boolean RFID.SelectInvert
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to simplify pick of the values being available for the Action parameter of the Gen2 Select command. The scope of this function is limited to RFID.InventorySelect function. The idea behind the approach to narrow down the pick of the values to the two possibilities is that the tags having the inventoried flag set to A would become involved in the Gen2 Query command. The point of using the RFID.SelectInvert is that the tags picked out for the inventory round are either the ones matching the Select criteria, or the ones that do not match.

Function Input:
TRUE = Use the selection criteria so that the tags that DO NOT match the criteria become involved in the inventory round (assuming that the tags with the inventoried flag set to A take part in the inventory round). FALSE = Use the selection criteria so that the tags that DO match the criteria become involved in the inventory round (assuming that the tags with the inventoried flag set to A take part in the inventory round).

Function Output:
TRUE = The tags that do not match the Select criteria are inventoried. FALSE = The tags that match the Select criteria are inventoried.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 298 / 712

Nordic ID MHL Manual

DWORD RFID.SelectLength
Min Value: 0 Max Value: 128 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets length of the mask of the Gen2 Select command. The length parameter set by the function is used within RFID.InventorySelect function. It specifies how many bits the mask parameter consists of. (Mask is set using the RFID.SelectMask function).

Function Input:
Use this integer as a length parameter of the Gen2 Select command specifying the number of bits in the Mask set by the RFID.SelectMask function.

Function Output:
Double word variable contains number of bits in the Mask parameter. Default number of bits is 8.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 299 / 712

Nordic ID MHL Manual

Binary RFID.SelectMask
Min Bytes: 0 Max Bytes: 16 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets mask parameter of the Gen2 Select command. The mask parameter set by the function is used within RFID.InventorySelect function. The length of the mask bit string is defined using RFID.SelectLength function, and the starting address (Pointer paramater) using RFID.SelectAddress function.

Function Input:
Apply this mask bit string to the Gen2 Select command sent out within RFID.InventorySelect function. The size of the bit string buffer is 16 bytes.

Function Output:
Byte buffer containing a user-defined Mask parameter of the Gen2 Select command in bit string format. Default mask contains 0-bits only.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 300 / 712

Nordic ID MHL Manual

Boolean RFID.Separator
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable insertion of extra space characters into the data string read in hexadecimal from the tags. Space character is inserted between each 8-bit unit of binary data that is converted to hexadecimal character pair to form a hexadecimal dump of data. The scope of this on-off switch is the following functions: - RFID.ScanAsync - RFID.SerialString - RFID.OperationIdString (M5e-c only) - RFID.ScanSingleString - RFID.BlockDataString - RFID.BlockDataStringById (M5e-c only)

Function Input:
TRUE = Enable the insertion of extra spaces into the read data represented in hexadecimal. FALSE = Disable the insertion of extra spaces

Function Output:
TRUE = Extra spaces are added to the read data represented in hexadecimal. FALSE = No insertion of extra spaces.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 301 / 712

Nordic ID MHL Manual

String RFID.SerialString
Min Chars: 0 Max Chars: 100 READ ONLY NOT stored in MHL Profile.

Description:
The function gives EPC Binary Encoding of a tag as hexadecimal characters. The hexadecimal output may be formatted using an RFID.Separator function. The scope of the RFID.SerialString function is the tags inventoried using a RFID.Inventory, a RFID.MetaInventory, or a RFID.InventorySelect function. The RFID.SerialString is one of the three functions to get the binary-encoded form of the EPC (,that is the EPC Binary Encoding in the raw form) on the tags after inventory round. The other two functions are RFID.BinString and RFID.ChipId. To read the EPC Binary Encoding of a particular tag, the tag shall be brougth into focus in the RFID driver using a RFID.CurrentId function. Last error codes: ERROR_SUCCESS MHL_RFID_NO_TAG

Function Input:
n/a

Function Output:
Buffer = EPC Binary Encoding of a tag represented as 0-terminated hexadecimal Unicode (UTF16) character string. To receive an 96-bit EPC Binary Encoding the size of the buffer shall be 36 + 1 in the units of UTF16 with the insertion of extra spaces using the RFID.Separator function.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 302 / 712

Nordic ID MHL Manual

String RFID.SoundFailed [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function is identical with a Scanner.SoundFailed. For more information, see that particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 303 / 712

Nordic ID MHL Manual

String RFID.SoundFailed.Enable [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function is identical with a Scanner.SoundFailed.Enable. For more information, see that particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 304 / 712

Nordic ID MHL Manual

String RFID.SoundSuccess [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function is identical with a Scanner.SoundSuccess. For more information, see that particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 305 / 712

Nordic ID MHL Manual

String RFID.SoundSuccess.Enable [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function is identical with a Scanner.SoundSuccess.Enable. For more information, see that particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 306 / 712

Nordic ID MHL Manual

String RFID.StringData [M5e-c]


Min Chars: 2 Max Chars: 128 READ / WRITE NOT stored in MHL Profile.

Description:
The function makes it possible to have an read/write access to a particular tag inventoried using an RFID.Inventory, an RFID.MetaInventory, or an RFID.InventorySelect function in the same way as an RFID.BlockData does. The difference between the RFID.StringData function and the RFID.BlockData is the form of input/output data. The RFID.StringData reads/writes the memory contents on a tag that consists of ASCII characters. What applies to the access protection on a tag, to the writing to a tag, and to the read from a tag are described in the context of the RFID.BlockData. Note that the time limit for the read operation may be set using an RFID.Timeout function. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID MHL_RFID_OUTOFRANGE MHL_RFID_LOW_POWER MHL_RFID_NO_TAG MHL_UHF_WRITE_ERROR MHL_RFID_ACCESS_ERROR

Function Input:
Transforming from the Unicode (UTF16) ASCII characters in the buffer into the byte form, write the contents to the tag picked out for the target of writing using the RFID.CurrentId function. The number of Unicode characters shall align on the address boundary used on the tag. The write buffer may be a maximum of 128 + 1 in UTF16 units, and its contents shall be terminated with the null character. The actual data that will be written to the tag may be a maximum of 128 in bytes.

Function Output:
Read buffer = 0-terminated Unicode (UTF16) ASCII character string read from the tag picked

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 307 / 712

Nordic ID MHL Manual

out for the read using the RFID.CurrentId function. The read buffer shall be 128 + 1 in UTF16 units.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 308 / 712

Nordic ID MHL Manual

String RFID.StringDataById [M5e-c]


Min Chars: 2 Max Chars: 128 READ / WRITE NOT stored in MHL Profile.

Description:
The function reads from/writes to the memory of the tag specified within the RFID driver by its chip identifier using any one of the following functions: RFID.OperationIdString, RFID.EPCC1G2.Id, or RFID.OperationId. The function works in the same way as an RFID.BlockData function does. So in the case of the UHF C1G2 tag, the access protection issues are addressed using an RFID.EPCC1G2.Secured and an RFID.EPCC1G2.Password function. RFID.EPCC1G2.Bank, RFID.BlockPointer, and RFID.BlockCount functions are used for setting/getting the parameters for write and read operations. As to the memory address boundary on a tag, the size of the contents in the read/write buffer shall align on it. For further information, see a particular function mentioned above. The essence of the RFID.StringData is that it reads and writes the memory contents on a tag that consists of ASCII characters. Note that the time limit for the read operation may be set using an RFID.Timout function. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID MHL_RFID_OUTOFRANGE MHL_RFID_LOW_POWER MHL_RFID_NO_TAG MHL_UHF_WRITE_ERROR MHL_RFID_ACCESS_ERROR

Function Input:
Transforming from the Unicode (UTF16) ASCII characters in the buffer into the byte form, write the contents to the tag specified within the RFID driver by its chip identifier. The number of Unicode characters shall align on the address boundary used on the tag. The write buffer may be a maximum of 128 + 1 in UTF16 units, and its contents shall be terminated with the null character. The actual data that will be written to the tag may be a maximum of 128 in bytes.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 309 / 712

Nordic ID MHL Manual

Function Output:
Read buffer = 0-terminated Unicode (UTF16) ASCII character string read from the tag specified by its chip identifier within the RFID driver. The read buffer shall be 128 + 1 in UTF16 units

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 310 / 712

Nordic ID MHL Manual

Boolean RFID.Tag1
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a first tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the first object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling the RFID.Tag1 is needed, for example, before attempting to read data from or write data to the tag the first tag object refers to. After the focus within the driver is assigned to the first object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 311 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 312 / 712

Nordic ID MHL Manual

Boolean RFID.Tag10
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 10th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 11th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 10th tag object refers to. After the focus within the driver is assigned to the 10th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the reference this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 313 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 314 / 712

Nordic ID MHL Manual

Boolean RFID.Tag11
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 11th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 11th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 11th tag object refers to. After the focus within the driver is assigned to the 11th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the reference this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 315 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 316 / 712

Nordic ID MHL Manual

Boolean RFID.Tag12
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 12th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 12th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 12th tag object refers to. After the focus within the driver is assigned to the 12th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the reference this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 317 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 318 / 712

Nordic ID MHL Manual

Boolean RFID.Tag13
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 13th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 13th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 13th tag object refers to. After the focus within the driver is assigned to the 13th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the reference this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 319 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 320 / 712

Nordic ID MHL Manual

Boolean RFID.Tag14
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 14th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 14th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 14th tag object refers to. After the focus within the driver is assigned to the 14th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus.

Function Input:
TRUE = Bring the tag into focus having the reference this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 321 / 712

Nordic ID MHL Manual

ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 322 / 712

Nordic ID MHL Manual

Boolean RFID.Tag15
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 15th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 15th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 15th tag object refers to. After the focus within the driver is assigned to the 15th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the reference this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 323 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 324 / 712

Nordic ID MHL Manual

Boolean RFID.Tag16
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 16th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 16th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 16th tag object refers to. After the focus within the driver is assigned to the 16th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the reference this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 325 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 326 / 712

Nordic ID MHL Manual

Boolean RFID.Tag2
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 2nd tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 2nd object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 2nd tag object refers to. After the focus within the driver is assigned to the 2nd object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 327 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 328 / 712

Nordic ID MHL Manual

Boolean RFID.Tag3
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 3rd tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 3rd object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 3rd tag object refers to. After the focus within the driver is assigned to the 3rd object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 329 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 330 / 712

Nordic ID MHL Manual

Boolean RFID.Tag4
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 4th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 4th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 4th tag object refers to. After the focus within the driver is assigned to the 4th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 331 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 332 / 712

Nordic ID MHL Manual

Boolean RFID.Tag5
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 5th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 5th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 5th tag object refers to. After the focus within the driver is assigned to the 5th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 333 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 334 / 712

Nordic ID MHL Manual

Boolean RFID.Tag6
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 6th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 6th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 6th tag object refers to. After the focus within the driver is assigned to the 6th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 335 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 336 / 712

Nordic ID MHL Manual

Boolean RFID.Tag7
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 7th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 7th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 7th tag object refers to. After the focus within the driver is assigned to the 7th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 337 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 338 / 712

Nordic ID MHL Manual

Boolean RFID.Tag8
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose an 8th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 8th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 8th tag object refers to. After the focus within the driver is assigned to the 8th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 339 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 340 / 712

Nordic ID MHL Manual

Boolean RFID.Tag9
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
The function acts like an assignment statement to choose a 9th tag object from the list of tag objects within the RFID driver before attempting to reference information, such as EPC identifier, the 9th object contains. The tag objects within the RFID driver are listed during the RFID.Inventory, RFID.MetaInventory, and RFID.InventorySelect calls. There is a set of functions that rely on the tag object list within the RFID driver when they attempt to operate with a particular tag. Calling this function is needed, for example, before attempting to read data from or write data to the tag the 9th tag object refers to. After the focus within the driver is assigned to the 9th object, the EPC identifier the object contains is available for tag access operations. For more information on which functions rely on the tag object list, see RFID.CurrentId function. Note that the function returns an MHL_RFID_INVALID_CHIP as a last error code for an empty reference, that is, if there is no tag object within the driver the function represents. The function may also get information whether or not it represents the reference to the tag object being in focus. Last error codes: ERROR_SUCCESS MHL_RFID_INVALID_CHIP

Function Input:
TRUE = Bring the tag into focus having the refrence this function represents in the driver. FALSE = n/a

Function Output:
TRUE = The tag object this function refers to within the RFID driver is in focus. FALSE = The tag object this function refers to within the RFID driver is not accessible to any function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 341 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 342 / 712

Nordic ID MHL Manual

Integer RFID.TagsCount
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
The function gives information on how many tags the reader has singulated during the inventory round.

Function Input:
n/a

Function Output:
A number of the tags found in the last inventory round.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 343 / 712

Nordic ID MHL Manual

String RFID.TagType
Min Chars: 5 Max Chars: 30 READ ONLY NOT stored in MHL Profile.

Description:
The function gives general information on the RFID capability of the reader.

Function Input:
n/a

Function Output:
One of the following texts, in Unicode (UTF16) characters, defines the RFID compatibility of the reader: ISO15693 ICode ISO18000 6B EPC C1G2

Error Codes:
0 20015 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 344 / 712

Nordic ID MHL Manual

DWORD RFID.Timeout [M5e-c]


Min Value: 50 Max Value: 1500 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a time limit for many tag operations the reader performs. The main two groups of the operations are inventory rounds and data reads. The inventory group also includes the singulation of a single tag. The operation that stops after this time limit typically ends in failure with the exception of the inventory rounds. The inventory round just has to be stopped at some point. The time limit can be set from 50 to 1500 milliseconds. Default is 300ms. The following functions that are grouped according to their operation type are within the scope of the RFID.Timeout. Inventory round operations: - RFID.MetaInventory - RFID.Inventory - RFID.InventorySelect - RFID.ScanSingle Data reads operations: - RFID.BlockData - RFID.BlockDataById - RFID.EPCC1G2.Read - RFID.BlockDataString - RFID.BlockDataStringById - RFID.StringData - RFID.StringDataById Data write operation: - RFID.EPCC1G2.ProgramId NXP specific operations: - RFID.NXP.ReadProtect - RFID.NXP.EAS - RFID.NXP.EASAlarm Last error codes: ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 345 / 712

Nordic ID MHL Manual

Function Input:
Limit the operations the above-listed functions perform to this number of milliseconds.

Function Output:
Time limit in milliseconds for the above-listed functions.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 346 / 712

Nordic ID MHL Manual

Integer RFID.TxLevel [AS399X]


Min Value: -9 Max Value: 0 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets transmission power level of the reader. The function does the same as the RFID.RFPower with the exception of the viewpoint. Using the function the attenuation of the transmitted signal can be adjusted, although the end result is an adjusted transmission power. Last error codes: - ERROR_SUCCESS - ERROR_INVALID_PARAMETER - ERROR_IO_DEVICE

Function Input:
Attenuate transmission power according to this value. The attenuation can be adjusted in the range of 0 to -9dBm. The value 0 means no attenuation. The approximate correspondence between the attenuation values and the transmission power levels are as follows: 0dBm -> 100mW -1dBm -> 80mW -2dBm -> 65mW -3dBm -> 50mW -4dBm -> 40mW -5dBM -> 30mw -6dBm -> 25mW -7dBm -> 20mW -8dBm -> 15mW -9dBm -> 13mW

Function Output:
The attenuation of the transmission power level as a negative integer value (decibel-milliWatt value) in the range of -1 to -9, zero means no attenuation. The less the numerical value is, the greater the attenuation is.

Error Codes:

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 347 / 712

Nordic ID MHL Manual

0 87

ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 348 / 712

Nordic ID MHL Manual

Integer RFID.TxLevel [M5e-c]


Min Value: -10 Max Value: 0 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets transmission power level of the reader. The function does the same as the RFID.RFPower with the exception of the viewpoint. Using the function the attenuation of the transmitted signal can be adjusted, although the end result is an adjusted transmission power. Last error codes: - ERROR_SUCCESS - ERROR_IO_DEVICE

Function Input:
Attenuate transmission power according to this value. The attenuation can be adjusted in the range of 0dBm to -10dBm, 0dBm means no attenuation. When the RFID radio element attenuate transmission power, the starting point is 23dBm (200mW) being a maximum transmission power. For example, if the maximum attenuation is used, then the transmission power level is 13dBm (23dBm - 10dBm = 13dBm), in milliwats it is about 20.

Function Output:
The attenuation of the transmission power level as a negative decibel-milliWatt value in the range of -1 to -10, zero means no attenuation. The less the numerical value is, the greater the attenuation is.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 349 / 712

Nordic ID MHL Manual

String RFID.VibFailed.Enable [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function is identical with a Scanner.VibFailed.Enable. For more information, see that particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 350 / 712

Nordic ID MHL Manual

String RFID.VibFailed.Pattern [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function is identical with a Scanner.VibFailed.Pattern. For more information, see that particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 351 / 712

Nordic ID MHL Manual

String RFID.VibSuccess.Enable [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function is identical with a Scanner.VibSuccess.Enable. For more information, see that particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 352 / 712

Nordic ID MHL Manual

String RFID.VibSuccess.Pattern [AS399X]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function is identical with a Scanner.VibSuccess.Pattern. For more information, see that particular function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 353 / 712

Nordic ID MHL Manual

String Scanner.SoundFailed [AS399X]


Min Chars: 0 Max Chars: 254 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a sound effect to be played after the timeout of the RFID.ScanAsync operation.

Function Input:
Use the sound file specified by a directory path and filename in the 0-terminated Unicode (UTF16) character string for sounding the unsuccessful tag singulation. (The default sound effect as an example: \\Windows\\bleep.wav)

Function Output:
A sound file specified by a directory path and filename in Unicode (UTF16) characters (a maximum of 254 characters).

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 354 / 712

Nordic ID MHL Manual

Boolean Scanner.SoundFailed.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply sound effect to the RFID.ScanAsync operation ending in timeout without the recognition of a tag.

Function Input:
TRUE= Signal the timout of singulation FALSE= Do not make a sound after failing in the recognition of a tag

Function Output:
TRUE= Sound is in use FALSE= No sound to indicate the timeout

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 355 / 712

Nordic ID MHL Manual

String Scanner.SoundSuccess [AS399X ]


Min Chars: 0 Max Chars: 254 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a sound effect to be played after acknowledging a tag in the RFID.ScanAsync operation.

Function Input:
Use the sound file specified by a directory path and filename in the 0-terminated Unicode (UTF16) character string. (The default sound effect as an example: \\Windows\\blep.wav)

Function Output:
A sound file specified by a directory path and filename in Unicode (UTF16) characters (a maximum of 254 characters).

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 356 / 712

Nordic ID MHL Manual

Boolean Scanner.SoundSuccess.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply sound effect to the recognition of a tag in the RFID.ScanAsync operation.

Function Input:
TRUE = Signal the successful acknowledgement of a tag FALSE = Do not make a sound after learning the identifier of a tag

Function Output:
TRUE = Sound is in use FALSE = No sound

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 357 / 712

Nordic ID MHL Manual

DWORD Scanner.Timeout
Min Value: 1 Max Value: 5 READ / WRITE Stored in MHL Profile.

Description:
The function sets a time limit for the one-tag singulation performed by the RFID.ScanAsync. Last error codes: ERROR_SUCCESS ERROR_INVALID_PARAMETER

Function Input:
Restrict the RFID.ScanAsync operation to this number of seconds. The limit may be set in the range of 1 to 5 seconds.

Function Output:
The operation the RFID.ScanAsync sets off ends when this number of seconds has elapsed without the recognition of a tag. (Default is 3 seconds.)

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 358 / 712

Nordic ID MHL Manual

Boolean Scanner.VibFailed.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply vibration to the RFID.ScanAsync operation ending in timeout without the recognition of a tag.

Function Input:
TRUE= Signal with vibration the timout of singulation FALSE= Do not vibrate after failing in the recognition of a tag

Function Output:
TRUE= Vibration is in use FALSE= No vibration to indicate the timeout

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 359 / 712

Nordic ID MHL Manual

String Scanner.VibFailed.Pattern [AS399X]


Min Chars: 0 Max Chars: 254 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a vibration spec of the unsuccessfull acknowledgement of a tag in the RFID.ScanAsync operation.

Function Input:
Use the vibration specified by the pulse pattern in the 0-terminated Unicode (UTF16) character string. The default pulse pattern as an example (the braces {} are not part of the spec): {300,150,300,150,300}

Function Output:
A vibration spec in Unicode (UTF16) characters (a maximum of 254 characters).

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 360 / 712

Nordic ID MHL Manual

Boolean Scanner.VibSuccess.Enable [AS399X]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on on-off switch to apply vibration to the recognition of a tag in the RFID.ScanAsync operation.

Function Input:
TRUE= Signal with vibration the successful acknowledgement of a tag FALSE= Do not vibrate after learning the identifier of a tag

Function Output:
TRUE= Vibration is in use FALSE= No vibration to indicate the recognition of a tag

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 361 / 712

Nordic ID MHL Manual

String Scanner.VibSuccess.Pattern [AS399X]


Min Chars: 0 Max Chars: 254 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets vibration spec of the successful acknowledgement of a tag in the RFID.ScanAsync operation.

Function Input:
Use the vibration specified by pulse pattern in the 0-terminated Unicode (UTF16) character string. The default pulse pattern as an example (the braces {} are not part of the spec): {500} (See also the pulse pattern example of an unsuccesful reading)

Function Output:
A vibration spec in Unicode (UTF16) characters (a maximum of 254 characters).

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 362 / 712

Nordic ID MHL Manual

Scanner - 1.0.0
This driver contains functions to check and control the behavior of the barcode scanner, if one is attached to the unit. The same driver works the same way for both 1D and 2D barcode scanners for all features they have in common. Functionality only found in either will return the NOT_SUPPORTED or NOT_IMPLEMENTED error codes when used with the other.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 363 / 712

Nordic ID MHL Manual

Boolean Code.Auspost.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Australian Postal Code.

Function Input:
TRUE = Enable decoding of Australian Postal Code symbology. FALSE = Disable decoding of Australian Postal Code symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 364 / 712

Nordic ID MHL Manual

Boolean Code.Aztec.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Aztec Code.

Function Input:
TRUE = Enable decoding of Aztec Code symbology. FALSE = Disable decoding of Aztec Code symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 365 / 712

Nordic ID MHL Manual

DWORD Code.Aztec.MaxLength [Imager]


Min Value: 1 Max Value: 3750 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Aztec Code symbol to be decoded. (See also the Code.Aztec.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the Aztec Code symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 3750. (Default)

Function Output:
The Aztec Code symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 366 / 712

Nordic ID MHL Manual

Boolean Code.Aztec.MesaCode128 [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Aztec Mesas on Code 128.

Function Input:
TRUE = Enable decoding of Aztec Mesas on Code 128 symbology. FALSE = Disable decoding of Aztec Mesas on Code 128 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 367 / 712

Nordic ID MHL Manual

Boolean Code.Aztec.MesaCode39 [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Aztec Mesas on Code 39.

Function Input:
TRUE = Enable decoding of Aztec Mesas on Code 39 symbology. FALSE = Disable decoding of Aztec Mesas on Code 39 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 368 / 712

Nordic ID MHL Manual

Boolean Code.Aztec.MesaCode93 [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Aztec Mesas on Code 93.

Function Input:
TRUE = Enable decoding of Aztec Mesas on Code 93 symbology. FALSE = Disable decoding of Aztec Mesas on Code 93 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 369 / 712

Nordic ID MHL Manual

Boolean Code.Aztec.MesaEAN13 [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Aztec Mesas on EAN-13.

Function Input:
TRUE = Enable decoding of Aztec Mesas on EAN-13 symbology. FALSE = Disable decoding of Aztec Mesas on EAN-13 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 370 / 712

Nordic ID MHL Manual

Boolean Code.Aztec.MesaIL25 [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Aztec Mesas on Interleaved 2 of 5.

Function Input:
TRUE = Enable decoding of Aztec Mesas on Interleaved 2 of 5 symbology. FALSE = Disable decoding of Aztec Mesas on Interleaved 2 of 5 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 371 / 712

Nordic ID MHL Manual

Boolean Code.Aztec.MesaUPCA [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Aztec Mesas on UPC-A.

Function Input:
TRUE = Enable decoding of Aztec Mesas on UPC-A symbology. FALSE = Disable decoding of Aztec Mesas on UPC-A symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 372 / 712

Nordic ID MHL Manual

DWORD Code.Aztec.MinLength [Imager]


Min Value: 1 Max Value: 3750 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Aztec Code symbol to be decoded. (See also the Code.Aztec.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the Aztec Code symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The Aztec Code symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 373 / 712

Nordic ID MHL Manual

Boolean Code.BooklandEAN.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Bookland EAN.

Function Input:
TRUE = Enable decoding of Bookland EAN FALSE = Disable decoding of Bookland EAN

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 374 / 712

Nordic ID MHL Manual

Boolean Code.BPO.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of BPO Four State Code.

Function Input:
TRUE = Enable decoding of BPO Four State Code symbology. FALSE = Disable decoding of BPO Four State Code symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 375 / 712

Nordic ID MHL Manual

Boolean Code.Canpost.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Canadian Post.

Function Input:
TRUE = Enable decoding of Canadian Post symbology. FALSE = Disable decoding of Canadian Post symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 376 / 712

Nordic ID MHL Manual

Boolean Code.Codabar.AnyLength [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of the Codabar bar code of any length.

Function Input:
TRUE = Enable any-length decoding FALSE = Disable any-length decoding

Function Output:
TRUE = Any-length decoding is enabled FALSE = Any-length decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 377 / 712

Nordic ID MHL Manual

Boolean Code.Codabar.CheckCharOn [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to restrict decoding of Codabar symbology to the code labels including a check character.

Function Input:
TRUE = Decode the code label only if a check character is included. FALSE = Ignore a check character, if present, in decoding.

Function Output:
TRUE = Only the Codabar bar codes with the check character are decoded FALSE = The Codabar bar codes are decode whether or not a check character exists. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 378 / 712

Nordic ID MHL Manual

Boolean Code.Codabar.CLSIEditing [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable a CLSI-editing in Codabar bar code reading. (The CLSI-editing is an option which inserts a space after the 1st, 5th, and 10th characters of the 14-character Codabar symbol. The length includes start and stop characters.)

Function Input:
TRUE = Enable CLSI-editing FALSE = Disable CLSI-editing

Function Output:
TRUE = CLSI-editing is enabled FALSE = CLSI-editing is disabled (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 379 / 712

Nordic ID MHL Manual

Boolean Code.Codabar.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Codabar.

Function Input:
TRUE = Enable decoding of Codabar FALSE = Disable decoding of Codabar

Function Output:
TRUE = Decoding of Codabar is enabled FALSE = Decoding of Codabar is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 380 / 712

Nordic ID MHL Manual

DWORD Code.Codabar.MaxLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Codabar bar code to be decoded (see also Code.Codabar.MinLength, which sets a minimum limit for the length).

Function Input:
Decode the Codabar bar codes being equal to this or fewer number of characters in length. [Laser] The largest possible number of characters is 55. (Default) [Imager] The largest possible number of characters is 60. (Default)

Function Output:
The Codabar bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 381 / 712

Nordic ID MHL Manual

DWORD Code.Codabar.MinLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Codabar bar code to be decoded (see also Code.Codabar.MaxLength, which sets a maximum limit for the length).

Function Input:
Decode the Codabar bar codes being at least this number of characters in length. [Laser] The smallest possible number of characters is 1. (Default) [Imager] The smallest possible number of characters is 2. (Default)

Function Output:
The Codabar bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 382 / 712

Nordic ID MHL Manual

Boolean Code.Codabar.NOTISEditing [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable a NOTIS-editing in Codabar bar code reading. (The NOTIS-editing is an option that strips the start and stop characters from the decoded scan result of the Codabar bar code.)

Function Input:
TRUE = Enable NOTIS-editing FALSE = Disable NOTIS-editing

Function Output:
TRUE = NOTIS-editing is enabled (Default) FALSE = NOTIS-editing is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 383 / 712

Nordic ID MHL Manual

Boolean Code.Codabar.SSXMit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of the start and stop characters on the Codabar label in the decoded scan result.

Function Input:
TRUE = Enable inclusion of the start and stop characters in the decoded scan result. FALSE = Disable inclusion.

Function Output:
TRUE = The start and stop characters on the Codabar bar code are included in the decoded scan result. FALSE = Inclusion of the start and stop characters is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 384 / 712

Nordic ID MHL Manual

Boolean Code.Codabar.XmitCheckCharOn [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of a check character in the decode scan result.

Function Input:
TRUE = Include check character in the decode scan result. FALSE = Strip check character.

Function Output:
TRUE = Check character is part of the the decode scan result. FALSE = No check character is included in the decode scan result. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 385 / 712

Nordic ID MHL Manual

Boolean Code.Codablock.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Codablock F.

Function Input:
TRUE = Enable decoding of Codablock F symbology. FALSE = Disable decoding of Codablock F symbology.

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 386 / 712

Nordic ID MHL Manual

DWORD Code.Codablock.MaxLength [Imager]


Min Value: 0 Max Value: 2048 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Codablock F symbol to be decoded. (See also the Code.Codablock.MinLength, which sets a minimum limit for the lenght)

Function Input:
Decode the Codablock F symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 2048. (Default)

Function Output:
The Codablock F symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 387 / 712

Nordic ID MHL Manual

DWORD Code.Codablock.MinLength [Imager]


Min Value: 0 Max Value: 2048 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Codablock F symbol to be decoded. (See also the Code.Codablock.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the Codablock F symbols being at least this number of characters in length. The smallest possible number of characters is 0. (Default)

Function Output:
The Codablock F symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 388 / 712

Nordic ID MHL Manual

Boolean Code.Code11.AnyLength [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable reading of the Code 11 bar codes of any length.

Function Input:
TRUE = Enable any-length decoding FALSE = Disable any-length decoding

Function Output:
TRUE = Any-length decoding is enabled FALSE = Any-length decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 389 / 712

Nordic ID MHL Manual

DWORD Code.Code11.CheckDigits [Laser]


Min Value: 0 Max Value: 2 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the number of check digits the decoding process takes into account to ensure the integrity of data.

Function Input:
0 = Disable the integrity check 1 = Use one check digit for verifying data 2 = Use two check digits for verifying data

Function Output:
0 = No integrity check is in use 1 = One check digit is expected on the bar code to verify data 2 = Two check digits are expected on the bar code to verify data

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 390 / 712

Nordic ID MHL Manual

Boolean Code.Code11.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Code 11.

Function Input:
TRUE = Enable decoding of Code 11 symbology FALSE = Disable decoding of Code 11 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 391 / 712

Nordic ID MHL Manual

DWORD Code.Code11.MaxLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of Code 11 bar code to be decoded (see also Code.Code11.MinLength, which sets a minimum limit for the length).

Function Input:
Decode the Code 11 bar codes being equal to this or fewer number of characters in length [Laser] The largest possible number of characters is 55. (Default) [Imager] The largest possible number of characters is 80. (Default)

Function Output:
The Code 11 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 392 / 712

Nordic ID MHL Manual

DWORD Code.Code11.MinLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of Code 11 bar code to be decoded (see also Code.Code11.MaxLength, which sets a maximum limit for the length).

Function Input:
Decode the Code 11 bar codes being at least this number of characters in length. [Laser] The smallest possible number of characters is 1 (Default) [Imager] The smallest possible number of characters is 1 (Default is 4)

Function Output:
The Code 11 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 393 / 712

Nordic ID MHL Manual

Boolean Code.Code11.ToCheckDigits [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose whether the Code 11 labels with two check digits or with one check digit are decoded.

Function Input:
TRUE = Decode the Code 11 labels with two check digits. FALSE = Decode the Code 11 labels with one check digit.

Function Output:
TRUE = Only the bar codes incuding two check digits are decoded. (Default) FALSE = Only the bar codes including one check digit are decoded.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 394 / 712

Nordic ID MHL Manual

Boolean Code.Code11.TransmitCheckDigits [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of check digit(s) in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of check digit(s) in the decoded scan result FALSE = Disable the inclusion of check digit(s) in the decoded scan result

Function Output:
TRUE = The decoded scan result includes check digit(s) FALSE = Check digit(s) is stripped

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 395 / 712

Nordic ID MHL Manual

Boolean Code.Code128.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Code 128

Function Input:
TRUE = Enable decoding of Code 128 symbology FALSE = Disable decoding of Code 128 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 396 / 712

Nordic ID MHL Manual

DWORD Code.Code128.MaxLength [Imager]


Min Value: 0 Max Value: 80 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Code 128 bar code to be decoded. (See also the Code.Code128.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the Code 128 bar codes being equal to this or fewer number of characters in length. The largest possible number of characters is 80. (Default)

Function Output:
The Code 128 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 397 / 712

Nordic ID MHL Manual

DWORD Code.Code128.MinLength [Imager]


Min Value: 0 Max Value: 80 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Code 128 bar code to be decoded. (See also the Code.Code128.MaxLength, which sets a maximum limit for the lenght)

Function Input:
Decode the Code 128 bar codes being at least this number of characters in length. The smallest possible number of characters is 1; default is 4.

Function Output:
The Code 128 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 398 / 712

Nordic ID MHL Manual

Boolean Code.Code32.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Code 32.

Function Input:
TRUE = Enable decoding of Code 32 symbology. FALSE = Disable decoding of Code 32 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 399 / 712

Nordic ID MHL Manual

Boolean Code.Code39.AnyLength [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable reading of the Code 39 bar codes of any length.

Function Input:
TRUE = Enable reading of the Code 39 symbols containing any number of characters FALSE = Disable any-length reading

Function Output:
TRUE = Any-length reading is enabled FALSE = Any-length reading is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 400 / 712

Nordic ID MHL Manual

Boolean Code.Code39.CheckDigit
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable the integrity check of the Code 39.

Function Input:
TRUE = Enable integrity check, only the bar codes including a modulo 43 check digit are decoded FALSE = Disable integrity check

Function Output:
TRUE = A modulo 43 check digit is expected in decoding of the Code 39 bar codes FALSE = Decoding ignores the check digit if available on the bar code

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 401 / 712

Nordic ID MHL Manual

Boolean Code.Code39.Code32Prefix [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable addition of the prefix character A to the outcome of the Code-39-to-Code-32 conversion.

Function Input:
TRUE = Enable addition of the prefix A FALSE = Disble addition of the prefix A

Function Output:
TRUE = Prefix A is added to the decoded scan result FALSE = No prefix inclusion

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 402 / 712

Nordic ID MHL Manual

Boolean Code.Code39.ConvertToCode32 [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable conversion from the Code 39 to the Code 32.

Function Input:
TRUE = Enable Code-39-to-Code-32 conversion FALSE = Disable Code-39-to-Code-32 conversion

Function Output:
TRUE = Conversion is on FALSE = Conversion is off (default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 403 / 712

Nordic ID MHL Manual

Boolean Code.Code39.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Code 39.

Function Input:
TRUE = Enable decoding of Code 39 symbology FALSE = Disable decoding of Code 39 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 404 / 712

Nordic ID MHL Manual

Boolean Code.Code39.FullAscii
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable the Full ASCII conversion of the Code 39.

Function Input:
TRUE = Enable the Full ASCII conversion FALSE = Disable the Full ASCII conversion

Function Output:
TRUE = Conversion is on FALSE = Conversion is off (default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 405 / 712

Nordic ID MHL Manual

DWORD Code.Code39.MaxLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Code 39 bar code to be decoded (see also the Code.Code39.MinLength, which sets a minimum limit for the length).

Function Input:
Decode the Code 39 bar codes being equal to this or fewer number of characters in length. [Laser] The largest possible number of characters is 55. (Default) [Imager] The largest possible number of characters is 48. (Default)

Function Output:
The Code 39 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 406 / 712

Nordic ID MHL Manual

DWORD Code.Code39.MinLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Code 39 bar code to be decoded (see also the Code.Code39.MaxLength, which sets a maximum limit for the length).

Function Input:
Decode the Code 39 bar codes being at least this number of characters in length. [Laser] The smallest possible number of characters is 1 (Default) [Imager] The smallest possible number of characters is 1 (Default is 2)

Function Output:
The Code 39 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 407 / 712

Nordic ID MHL Manual

Boolean Code.Code39.SSXmit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of the start and stop characters on the Code 39 symbol in the decode scan result.

Function Input:
TRUE = Enable inclusion of the start and stop characters in the decoded scan result. FALSE = Disable inclusion.

Function Output:
TRUE = The start and stop characters on the Code 39 bar code are included in the decoded scan result. FALSE = Inclusion of the start and stop characters is disabled. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 408 / 712

Nordic ID MHL Manual

Boolean Code.Code39.TransmitCheckDigits
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of a check digit in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of a check digit in the decoded scan result FALSE = Disable the inclusion of a check digit

Function Output:
TRUE = Check digit is available in the decoded scan result FALSE = Check digit is stripped

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 409 / 712

Nordic ID MHL Manual

Boolean Code.Code49.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Code 49.

Function Input:
TRUE = Enable decoding of Code 49 symbology. FALSE = Disable decoding of Code 49 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 410 / 712

Nordic ID MHL Manual

DWORD Code.Code49.MaxLength [Imager]


Min Value: 1 Max Value: 81 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Code 49 symbol to be decoded. (See also the Code.Code49.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the Code 49 symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 81. (Default)

Function Output:
The Code 49 symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 411 / 712

Nordic ID MHL Manual

DWORD Code.Code49.MinLength [Imager]


Min Value: 1 Max Value: 81 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Code 49 symbol to be decoded. (See also the Code.Code49.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the Code 49 symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The Code 49 symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 412 / 712

Nordic ID MHL Manual

Boolean Code.Code93.AnyLength [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable reading of the Code 93 bar codes of any length.

Function Input:
TRUE = Enable reading of the Code 93 symbols containing any number of characters FALSE = Disable any-length reading

Function Output:
TRUE = Any-length reading is enabled FALSE = Any-length reading is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 413 / 712

Nordic ID MHL Manual

Boolean Code.Code93.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Code 93.

Function Input:
TRUE = Enable decoding of the Code 93 symbology FALSE = Disable decoding of the Code 93 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 414 / 712

Nordic ID MHL Manual

DWORD Code.Code93.MaxLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Code 93 bar code to be decoded (see also the Code.Code93.MinLength, which sets a maximum limit for the length).

Function Input:
Decode the Code 93 bar codes being equal to this or fewer number of characters in length [Laser] The largest possible number of characters is 55. (Default) [Imager] The largest possible number of characters is 80. (Default)

Function Output:
The Code 93 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 415 / 712

Nordic ID MHL Manual

DWORD Code.Code93.MinLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Code 93 bar code to be decoded (see also the Code.Code93.MaxLength, which sets a maximum limit for the length).

Function Input:
Decode the Code 93 bar codes being at least this number of characters in length. [Laser] The smallest possible number of characters is 1 (Default) [Imager] The smallest possible number of characters is 1 (Default is 4)

Function Output:
The Code 93 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 416 / 712

Nordic ID MHL Manual

Boolean Code.Datamatrix.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Data Matrix.

Function Input:
TRUE = Enable decoding of Data Matrix symbology. FALSE = Disable decoding of Data Matrix symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 417 / 712

Nordic ID MHL Manual

DWORD Code.Datamatrix.MaxLength [Imager]


Min Value: 1 Max Value: 1500 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Data Matrix symbol to be decoded. (See also the Code.Datamatrix.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the Data Matrix symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 1500. (Default)

Function Output:
The Data Matrix symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 418 / 712

Nordic ID MHL Manual

DWORD Code.Datamatrix.MinLength [Imager]


Min Value: 1 Max Value: 1500 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Data Matrix symbol to be decoded. (See also the Code.Datamatrix.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the Data Matrix symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The Data Matrix symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 419 / 712

Nordic ID MHL Manual

Boolean Code.Discrete25.AnyLength [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable reading of the Discrete 2 of 5 bar codes of any length.

Function Input:
TRUE = Enable reading of the Discrete 2 of 5 symbols containing any number of characters FALSE = Disable any-length reading

Function Output:
TRUE = Any-length reading is enabled FALSE = Any-length reading is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 420 / 712

Nordic ID MHL Manual

Boolean Code.Discrete25.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Discrete 2 of 5.

Function Input:
TRUE = Enable decoding of Discrete 2 of 5 symbology FALSE = Disable decoding of Discrete 2 of 5 symbology

Function Output:
TRUE= Decoding is enabled FALSE= Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 421 / 712

Nordic ID MHL Manual

DWORD Code.Discrete25.MaxLength [Laser]


Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Discrete 2 of 5 bar code to be decoded (see also the Code.Discrete25.MinLength, which sets a minimum limit for the length).

Function Input:
Decode the Discrete 2 of 5 bar codes being equal to this or fewer number of characters in length. The largest possible number of characters is 55. (Default)

Function Output:
The Discrete 2 of 5 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 422 / 712

Nordic ID MHL Manual

DWORD Code.Discrete25.MinLength [Laser]


Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Discrete 2 of 5 bar code to be decoded (see also the Code.Discrete25.MaxLength, which sets a maximum limit for the length).

Function Input:
Decode the Discrete 2 of 5 bar codes being at least this number of characters in length. The smallest possible number of characters is 1 (Default)

Function Output:
The Discrete 2 of 5 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 423 / 712

Nordic ID MHL Manual

Boolean Code.Dutchpost.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of KIX (Netherlands) Post.

Function Input:
TRUE = Enable decoding of KIX (Netherlands) Post symbology. FALSE = Disable decoding of KIX (Netherlands) Post symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 424 / 712

Nordic ID MHL Manual

Boolean Code.EAN-13.Addenda2Digit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of 2-digit supplemental data in the decoded scan result, if present on the bar code.

Function Input:
TRUE = Enable the inclusion of 2-digit supplementa data in the decoded scan result. FALSE = Disable the inclusion of 2-digit supplementa data in the decoded scan result.

Function Output:
TRUE = 2-digit supplemental data is included. FALSE = No 2-digit supplemental data is included. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 425 / 712

Nordic ID MHL Manual

Boolean Code.EAN-13.Addenda5Digit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of 5-digit supplemental data in the decoded scan result, if present on the bar code.

Function Input:
TRUE = Enable the inclusion of 5-digit supplemental data in the decoded scan result. FALSE = Disable the inclusion of 5-digit supplemental data in the decoded scan result.

Function Output:
TRUE = 5-digit supplemental data is included in the decoded scan result. FALSE = No 5-digit supplemental data is included. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 426 / 712

Nordic ID MHL Manual

Boolean Code.EAN-13.AddendaOnly [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to restrict decoding of EAN-13 symbology to the bar codes including either 2- or 5-digit supplemental data.

Function Input:
TRUE = Restrict decoding of EAN-13 symbology to the code labels containing supplemental data. FALSE = Decode the EAN-13 symbol whether or not the symbol contains supplemental data.

Function Output:
TRUE = Decoding of EAN-13 bar codes with supplemental data only. FALSE = Decoding of all the EAN-13 bar codes with or without supplemental data. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 427 / 712

Nordic ID MHL Manual

Boolean Code.EAN-13.AddendaSeparator [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable insertion of extra space character in the decoded scan result between the EAN-13 code and the supplemental data.

Function Input:
TRUE = Put extra space character between the code and the supplemental data. FALSE = Do not insert extra space character.

Function Output:
TRUE = Space character is inserted between the code and the supplemental data. FALSE = No insertion of extra space character. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 428 / 712

Nordic ID MHL Manual

DWORD Code.EAN-13.DecodeSupplementals [Laser]


Min Value: 0 Max Value: 5 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose how to deal with the supplemental characters of EAN-13 (either 2- or 5-digit supplemetal data) in decoding.

Function Input:
0 = Ignore the supplemental data if present 1 = Decode only the EAN-13 bar codes that include supplemental data 2 = Decode both the EAN-13 code and the supplemental data, if present, using redundancy in decoding. (see Code.EAN-13.SupplementalRedundancy as well) 3 = Decode the suplemental data if one of the following code prefixes is included in the bar code: a 378, a 379, or a 978. With other prefixes, ignore the supplemental data, if present. 4 = Decode the suplemental data if one of the following code prefixes is included in the bar code: a 378 or a 379. With other prefixes, ignore the supplemental data if present. 5 = Decode the suplemental data if the following code prefix is included in the bar code: a 978. With other prefixes, ignore the supplemental data if present.

Function Output:
0 = Decoding of all the EAN-13 bar codes with or without supplemental data by ignoring the supplemental data if present (Default) 1 = Only if supplemental data is included, the EAN-13 bar code with the supplemental data is decoded. 2 = The EAN-13 bar codes are decoded with or without supplemental data using redundancy in decoding. Both the EAN-13 code and the supplemental data, if present, are decoded. (see Code.EAN-13.SupplementalRedundancy as well) 3 = The EAN-13 bar codes having one of the following code prefixes are decoded together with their supplementa data: a 378, a 379, or a 978. Others are decoded by ignoring the supplemental data if present. 4 = The EAN-13 bar codes having one of the following code prefixes are decoded together with their supplementa data: a 378, or a 379. Others are decoded by ignoring the supplemental data if present. 5 = The EAN-13 bar codes having the code prefix 978 are decoded together with their supplemental data. Others are decoded by ignoring the supplemental data if present.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 429 / 712

Nordic ID MHL Manual

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 430 / 712

Nordic ID MHL Manual

Boolean Code.EAN-13.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of EAN-13.

Function Input:
TRUE = Enable decoding of EAN-13 symbology FALSE = Disable decoding of EAN-13 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 431 / 712

Nordic ID MHL Manual

DWORD Code.EAN-13.SecurityLevel [Laser]


Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
NOTE! Available from Morphic image version 2.2.0 and Merlin image version 1.7.0.

This function controls the UPC/EAN Security Level. The four available security levels are:

UPC/EAN Security Level 0 This default setting allows the scanner to operate in its most aggressive state, while providing sufficient security in decoding most in-spec UPC/EAN bar codes.

UPC/EAN Security Level 1 [DEFAULT SETTING AS OF Morphic 2.2.0 and Merlin 1.7.0] As bar code quality levels diminish, certain characters become prone to mis-decodes before others (i.e., 1, 2, 7, 8). If mis-decodes of poorly printed bar codes occur, and the mis-decodes are limited to these characters, select this security level.

UPC/EAN Security Level 2 If mis-decodes of poorly printed bar codes occur, and the mis-decodes are not limited to characters 1, 2, 7, and 8, select this security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 432 / 712

Nordic ID MHL Manual

UPC/EAN Security Level 3 If misdecodes still occur after selecting Security Level 2, select this security level. Be advised, selecting this option is an extreme measure against mis-decoding severely out of spec bar codes. Selection of this level of security significantly impairs the decoding ability of the scanner. If this level of security is necessary, try to improve the quality of the bar codes.

Functionality Note: This function controls parameter 0x4D in the laser scanner. It is a shared setting for all UPC and EAN barcodes. Changing this setting for one barcode type changes it for all others as well.

Function Input:
The desired security level.

Function Output:
The active security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 433 / 712

Nordic ID MHL Manual

DWORD Code.EAN-13.SupplementalRedundancy [Laser]


Min Value: 2 Max Value: 30 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the number of times the Scanner decodes the EAN-13 bar codes without the supplemental characters before informing success/failure in reading. Note! The value of the Code.EAN-13.DecodeSupplementals may need to be set to 2, before this takes effect.

Function Input:
Repeat this number of times the decoding of the EAN-13 bar codes having no supplemetal data before giving the result. The number of times can be in the range of 2 to 30. More than four times are recommended.

Function Output:
This number of times the decoding of the EAN-13 bar codes without the supplemental data is performed before the end result of the reading is available.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 434 / 712

Nordic ID MHL Manual

Boolean Code.EAN-13.XmitCheckChar [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of a check character in the decoded scan result.

Function Input:
TRUE = Include check character in the decode scan result. FALSE = Strip check character.

Function Output:
TRUE = Check character is part of the the decode scan result. FALSE = No check character is included in the decode scan result. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 435 / 712

Nordic ID MHL Manual

Boolean Code.EAN-8.Addenda2Digit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of 2-digit supplemental data in the decoded scan result, if present on the EAN-8 bar code.

Function Input:
TRUE = Enable the inclusion of 2-digit supplementa data in the decoded scan result. FALSE = Disable the inclusion of 2-digit supplementa data in the decoded scan result.

Function Output:
TRUE = 2-digit supplemental data is included. FALSE = No 2-digit supplemental data is included. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 436 / 712

Nordic ID MHL Manual

Boolean Code.EAN-8.Addenda5Digit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of 5-digit supplemental data in the decoded scan result, if present on the EAN-8 bar code.

Function Input:
TRUE = Enable the inclusion of 5-digit supplementa data in the decoded scan result. FALSE = Disable the inclusion of 5-digit supplementa data in the decoded scan result.

Function Output:
TRUE = 5-digit supplemental data is included. FALSE = No 5-digit supplemental data is included. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 437 / 712

Nordic ID MHL Manual

Boolean Code.EAN-8.AddendaOnly [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to restrict decoding of EAN-8 symbology to the code labels including either 2- or 5-digit supplemental data.

Function Input:
TRUE = Decode only the code labels containing supplemental data. FALSE = Do not restrict decoding of EAN-8 symbology to the code labels including supplemental data.

Function Output:
TRUE = Decoding of EAN-8 bar codes with supplemental data only FALSE = Decoding of all the EAN-8 bar codes with or without supplemental data (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 438 / 712

Nordic ID MHL Manual

Boolean Code.EAN-8.AddendaSeparator [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable insertion of space character between the EAN-8 code and the supplemental data in the decoded scan result.

Function Input:
TRUE = Put extra space character between the code and supplemental data. FALSE = Do not insert extra space character.

Function Output:
TRUE = Space character is inserted between the code and supplemental data. FALSE = No insertion of extra space character. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 439 / 712

Nordic ID MHL Manual

Boolean Code.EAN-8.ConvertToEan13 [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable the zero-extended EAN-8 decodings to be interpreted as 13-digit EAN codes. (Enabling this feature requires that the Code.EAN-8.ZeroExtend is enabled as well.)

Function Input:
TRUE = Enable construing of the zero-extended EAN-8 code as EAN-13 code FALSE = Disable construing of the zero-extended EAN-8 code as EAN-13 code

Function Output:
TRUE = The zero-extended EAN-8 code is viewed as EAN-13 code FALSE = Viewing the zero-extended EAN-8 code as EAN-13 code is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 440 / 712

Nordic ID MHL Manual

Boolean Code.EAN-8.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of EAN-8.

Function Input:
TRUE = Enable decoding of EAN-8 symbology FALSE = Disable decoding of EAN-8 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 441 / 712

Nordic ID MHL Manual

DWORD Code.EAN-8.SecurityLevel [Laser]


Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
NOTE! Available from Morphic image version 2.2.0 and Merlin image version 1.7.0.

This function controls the UPC/EAN Security Level. The four available security levels are:

UPC/EAN Security Level 0 This default setting allows the scanner to operate in its most aggressive state, while providing sufficient security in decoding most in-spec UPC/EAN bar codes.

UPC/EAN Security Level 1 [DEFAULT SETTING AS OF Morphic 2.2.0 and Merlin 1.7.0] As bar code quality levels diminish, certain characters become prone to mis-decodes before others (i.e., 1, 2, 7, 8). If mis-decodes of poorly printed bar codes occur, and the mis-decodes are limited to these characters, select this security level.

UPC/EAN Security Level 2 If mis-decodes of poorly printed bar codes occur, and the mis-decodes are not limited to characters 1, 2, 7, and 8, select this security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 442 / 712

Nordic ID MHL Manual

UPC/EAN Security Level 3 If misdecodes still occur after selecting Security Level 2, select this security level. Be advised, selecting this option is an extreme measure against mis-decoding severely out of spec bar codes. Selection of this level of security significantly impairs the decoding ability of the scanner. If this level of security is necessary, try to improve the quality of the bar codes.

Functionality Note: This function controls parameter 0x4D in the laser scanner. It is a shared setting for all UPC and EAN barcodes. Changing this setting for one barcode type changes it for all others as well.

Function Input:
The desired security level.

Function Output:
The active security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 443 / 712

Nordic ID MHL Manual

Boolean Code.EAN-8.XmitCheckChar [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of a check character in the decoded scan result.

Function Input:
TRUE = Include check character in the decode scan result. FALSE = Strip check character.

Function Output:
TRUE = Check character is part of the decode scan result. FALSE = No check character is included in the decode scan result. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 444 / 712

Nordic ID MHL Manual

Boolean Code.EAN-8.ZeroExtend [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable addition of five leading zeros to the decoded EAN-8 codes (that is, to change them into the EAN-13-length).

Function Input:
TRUE = Enable the adding of five leading zeros FALSE = Disable the adding of five leading zeros

Function Output:
TRUE = Five leading zeros are added to the decoded scan result. FALSE = No adding in use

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 445 / 712

Nordic ID MHL Manual

Boolean Code.EAN-UCC.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of EAN.UCC Composite with a UCC/EAN-128 or RSS (RSS-14, RSS Limited, and RSS Expanded) linear component.

Function Input:
TRUE = Enable decoding of EAN.UCC Composite on UCC/EAN-128 or RSS symbology. FALSE = Disable decoding of EAN.UCC Composite on UCC/EAN-128 or RSS symbology

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 446 / 712

Nordic ID MHL Manual

String Code.EAN-UCC.MaxLength [Imager]


Min Chars: 1 Max Chars: 300 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the EAN.UCC Composite symbol to be decoded. (See also the Code.EAN-UCC.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the EAN.UCC Composite symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 300. (Default)

Function Output:
The EAN.UCC Composite symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 447 / 712

Nordic ID MHL Manual

DWORD Code.EAN-UCC.MinLength [Imager]


Min Value: 1 Max Value: 300 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the EAN.UCC Composite symbol to be decoded. (See also the Code.EAN-UCC.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the EAN.UCC Composite symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The EAN.UCC Composite symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 448 / 712

Nordic ID MHL Manual

Boolean Code.EAN-UCC.UpcEanEnable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of EAN.UCC Composite with an EAN or UPC linear component (EAN-8, EAN-13, UPC-A, and UPC-E).

Function Input:
TRUE = Enable decoding of EAN.UCC Composite symbology with an EAN or UPC linear component. FALSE = Disable decoding of EAN.UCC Composite symbology with an EAN or UPC linear component.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 449 / 712

Nordic ID MHL Manual

Boolean Code.IATA25.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of IATA 25.

Function Input:
TRUE = Enable decoding of IATA 25 symbology FALSE = Disable decoding of IATA 25 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 450 / 712

Nordic ID MHL Manual

DWORD Code.IATA25.MaxLength [Imager]


Min Value: 4 Max Value: 80 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the IATA 25 bar code to be decoded. (See also the Code.IATA25.MinLength, which sets a minimum limit for the lenght)

Function Input:
Decode the IATA 25 bar codes being equal to this or fewer number of characters in length. The largest possible number of characters is 80. (Default)

Function Output:
The IATA 25 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 451 / 712

Nordic ID MHL Manual

DWORD Code.IATA25.MinLength [Imager]


Min Value: 4 Max Value: 80 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the IATA 25 bar code to be decoded. (See also the Code.IATA25.MaxLength, which sets a maximum limit for the lenght)

Function Input:
Decode the IATA 25 bar codes being at least this number of characters in length. The smallest possible number of characters is 4. (Default)

Function Output:
The IATA 25 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 452 / 712

Nordic ID MHL Manual

Boolean Code.Interleaved25.AnyLength [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable reading of the Interleaved 2 of 5 bar codes of any length.

Function Input:
TRUE = Enable reading of the Interleaved 2 of 5 symbols containing any number of characters FALSE = Disable any-length reading

Function Output:
TRUE = Any-length reading is enabled FALSE = Any-length reading is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 453 / 712

Nordic ID MHL Manual

Boolean Code.Interleaved25.CheckDigit
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable the integrity check of Interleaved 2 of 5.

Function Input:
TRUE = Enable integrity check (only the bar codes including a check digit are decoded) FALSE = Disable integrity check

Function Output:
TRUE = Decoding expects a check digit on the bar code FALSE = Decoding ignores the check digit if available on the bar code

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 454 / 712

Nordic ID MHL Manual

Boolean Code.Interleaved25.ConvertToEan13 [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable conversion from the 14-character Interleaved 2 of 5 code to the EAN-13 code, the decoded scan result is as EAN-13 code. (Enabling this feature requires that the value of the Code.Interleaved25.Enable is set to TRUE.) Note: The 14-character Interleaved 2 of 5 code must include a leading zero. In addition, the check character calculation is done in the EAN-13-like manner.

Function Input:
TRUE= Enable the conversion from the 14-character Interleaved 2 of 5 code to the EAN-13 code FALSE= Disable the conversion

Function Output:
TRUE= The 14-character Interleaved 2 of 5 code is converted to the EAN-13 code FALSE= No conversion

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 455 / 712

Nordic ID MHL Manual

Boolean Code.Interleaved25.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Interleaved 2 of 5.

Function Input:
TRUE = Enable decoding of Interleaved 2 of 5 symbology FALSE = Disable decoding of Interleaved 2 of 5 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 456 / 712

Nordic ID MHL Manual

DWORD Code.Interleaved25.MaxLength
Min Value: 0 Max Value: 68 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Interleaved 2 of 5 bar codes to be decoded. (See also the Code.Interleaved25.MinLength, which sets a minimum limit for the length.)

Function Input:
Decode the Interleaved 2 of 5 bar codes being equal to this or fewer number of characters in length [Laser] The largest possible number of characters is 68. (Default) [Imager] The largest possible number of characters is 80. (Default)

Function Output:
The Interleaved 2 of 5 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 457 / 712

Nordic ID MHL Manual

DWORD Code.Interleaved25.MinLength
Min Value: 0 Max Value: 68 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Interleaved 2 of 5 bar codes to be decoded. (See also the Code.Interleaved25.MaxLength, which sets a maximum limit for the length.)

Function Input:
Decode the Interleaved 2 of 5 bar codes being at least this number of characters in length. [Laser] The smallest possible number of characters is 1 (Default) [Imager] The smallest possible number of characters is 4 (Default)

Function Output:
The Interleaved 2 of 5 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 458 / 712

Nordic ID MHL Manual

Boolean Code.Interleaved25.TransmitCheckDigit
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of a check digit in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of a check digit in the decoded scan result FALSE = Disable the inclusion of a check digit

Function Output:
TRUE = Check digit is included in the decoded scan result FALSE = Check digit is stripped

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 459 / 712

Nordic ID MHL Manual

Boolean Code.ISBT128.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of ISBT 128.

Function Input:
TRUE = Enable decoding of ISBT 128 symbology FALSE = Disable decoding of ISBT 128 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 460 / 712

Nordic ID MHL Manual

Boolean Code.Japost.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Japanese Post.

Function Input:
TRUE = Enable decoding of Japanese Post symbology. FALSE = Disable decoding of Japanese Post symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 461 / 712

Nordic ID MHL Manual

Boolean Code.Matrix2of5.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Matrix 2 of 5.

Function Input:
TRUE = Enable decoding of Matrix 2 of 5 symbology FALSE = Disable decoding of Matrix 2 of 5 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 462 / 712

Nordic ID MHL Manual

DWORD Code.Matrix2of5.MaxLength [Laser]


Min Value: 4 Max Value: 80 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Matrix 2 of 5 bar code to be decoded. (See also the Code.Matrix2of5.MinLength, which sets a minimum limit for the lenght)

Function Input:
Decode the Matrix 2 of 5 bar codes being equal to this or fewer number of characters in length. The largest possible number of characters is 80. (Default)

Function Output:
The Matrix 2 of 5 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 463 / 712

Nordic ID MHL Manual

DWORD Code.Matrix2of5.MinLength [Imager]


Min Value: 4 Max Value: 80 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Matrix 2 of 5 bar code to be decoded. (See also the Code.Matrix2of5.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the Matrix 2 of 5 bar codes being at least this number of characters in length. The smallest possible number of characters is 4. (Default)

Function Output:
The Matrix 2 of 5 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 464 / 712

Nordic ID MHL Manual

Boolean Code.Maxicode.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Maxicode.

Function Input:
TRUE = Enable decoding of Maxicode symbology. FALSE = Disable decoding of Maxicode symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 465 / 712

Nordic ID MHL Manual

DWORD Code.Maxicode.MaxLength [Imager]


Min Value: 1 Max Value: 150 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Maxicode symbol to be decoded. (See also the Code.Maxicode.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the Maxicode symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 150. (Default)

Function Output:
The Maxicode symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 466 / 712

Nordic ID MHL Manual

DWORD Code.Maxicode.MinLength [Imager]


Min Value: 1 Max Value: 150 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Maxicode symbol to be decoded. (See also the Code.Maxicode.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the Maxicode symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The Maxicode symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 467 / 712

Nordic ID MHL Manual

Boolean Code.MicroPDF.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of MicroPDF417.

Function Input:
TRUE = Enable decoding of MicroPDF417 symbology. FALSE = Disable decoding of MicroPDF417 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 468 / 712

Nordic ID MHL Manual

DWORD Code.MicroPDF.MaxLength [Imager]


Min Value: 1 Max Value: 2750 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the MicroPDF417 symbol to be decoded. (See also the Code.MicroPDF.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the MicroPDF417 symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 2750. (Default)

Function Output:
The MicroPDF417 symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 469 / 712

Nordic ID MHL Manual

DWORD Code.MicroPDF.MinLength [Imager]


Min Value: 1 Max Value: 2750 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the MicroPDF417 symbol to be decoded. (See also the Code.MicroPDF.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the MicroPDF417 symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The MicroPDF417 symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 470 / 712

Nordic ID MHL Manual

Boolean Code.MSI.AnyLength [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable reading of the MSI bar codes of any length.

Function Input:
TRUE = Enable reading of the MSI symbols containing any number of characters FALSE = Disable any-length reading

Function Output:
TRUE = Any-length reading is enabled FALSE = Any-length reading is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 471 / 712

Nordic ID MHL Manual

DWORD Code.MSI.CheckDigitAlgorithm [Laser]


Min Value: 0 Max Value: 1 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose the algorithm to verify the integrity of the MSI bar codes with two check digits. Note: The Code.MSI.TwoCheckDigits may need to be enabled, before this takes effect.

Function Input:
0 = Use modulo 10/modulo 11 1 = Use modulo 10/modulo 10

Function Output:
0 = Integrity check is based on the modulo 10/modulo 11 algorithm 1 = Integrity check is based on the modulo 10/modulo 10 algorithm

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 472 / 712

Nordic ID MHL Manual

Boolean Code.MSI.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of MSI.

Function Input:
TRUE = Enable decoding of MSI symbology FALSE = Disable decoding of MSI symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 473 / 712

Nordic ID MHL Manual

DWORD Code.MSI.MaxLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the MSI bar code to be decoded. (See also the Code.MSI.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the MSI bar codes being equal to this or fewer number of characters in length. [Laser] The largest possible number of characters is 55. (Default) [Imager] The largest possible number of characters is 48. (Default)

Function Output:
The MSI bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 474 / 712

Nordic ID MHL Manual

DWORD Code.MSI.MinLength
Min Value: 0 Max Value: 55 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the MSI bar code to be decoded. (See also the Code.MSI.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the MSI bar codes being at least this number of characters in length. [Laser] The smallest possible number of characters is 1 (Default) [Imager] The smallest possible number of characters is 4 (Default)

Function Output:
The MSI bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 475 / 712

Nordic ID MHL Manual

Boolean Code.MSI.TransmitCheckDigit
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of check character(s) in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of check character(s) in the decoded scan result FALSE = Disable the inclusion of check character(s) in the decoded scan result

Function Output:
TRUE = Check character(s) is included in the decoded scan result FALSE = Check character(s) is stripped

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 476 / 712

Nordic ID MHL Manual

String Code.MSI.TwoCheckDigits [Laser]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable the integrity check of MSI data based on two check digits. If disabled, the integrity of the code is checked against one check digit.

Function Input:
TRUE = Enable the integrity check of data using two check digits. FALSE = Disable the integrity check based on two check digits

Function Output:
TRUE = Integrity check expects two check digits on the bar code FALSE = Integrity check expects one check digit on the bar code

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 477 / 712

Nordic ID MHL Manual

Boolean Code.OCR.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable Optical Character Recognition (OCR).

Function Input:
TRUE = Enable reading of stylished OCR fonts. FALSE = Disable reading of stylished OCR fonts.

Function Output:
TRUE = OCR is enabled. FALSE = OCR is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 478 / 712

Nordic ID MHL Manual

DWORD Code.OCR.Font [Imager]


Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose a font from among OCR A, OCR B, or OCR MONEY stylished fonts to be recognized.

Function Input:
0 = Do not select any font. 1 = Decode OCR A font text. 2 = Decode OCR B font text. 3 = Decode OCR MONEY font text.

Function Output:
0 = No font is selected. 1 = Reading of OCR-A font text is selected. (Default) 2 = Reading of OCR-B font text is selected. 3 = Reading of OCR MONEY font text is selected.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 479 / 712

Nordic ID MHL Manual

String Code.OCR.Template [Imager]


Min Chars: 0 Max Chars: 0 READ / WRITE Stored in MHL Profile.

Description:
The function sets up/gets one or more template patterns to describe, as a null-terminated character string, the type of characters which the OCR texts consist of. The template guides the character recognition to decrease the number of character possibilities to be recognized according to the location in a text (that is, the template pattern is defined on a column-to-column basis).

Function Input:
String = Use this template string for decoding the stylished OCR font characters as follows: a - this character means alphanumeric character c - this character means check character d - this character means a digit from 0 - 9 e - this character means any character l - this character means alphabetic letter r - this character delimits a row t - this character delimits multiple templates

Function Output:
Template pattern(s) for character recognition as a null terminated string.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 480 / 712

Nordic ID MHL Manual

Boolean Code.PDF417.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of PDF417.

Function Input:
TRUE = Enable decoding of PDF417 symbology. FALSE = Disable decoding of PDF417 symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 481 / 712

Nordic ID MHL Manual

DWORD Code.PDF417.MaxLength [Imager]


Min Value: 1 Max Value: 2750 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the PDF417 symbol to be decoded. (See also the Code.PDF417.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the PDF417 symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 2750. (Default)

Function Output:
The PDF417 symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 482 / 712

Nordic ID MHL Manual

DWORD Code.PDF417.MinLength [Imager]


Min Value: 1 Max Value: 2750 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the PDF417 symbol to be decoded. (See also the Code.PDF417.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the PDF417 symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The PDF417 symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 483 / 712

Nordic ID MHL Manual

Boolean Code.Planet.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Planet Code.

Function Input:
TRUE = Enable decoding of Planet Code symbology. FALSE = Disable decoding of Planet Code symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 484 / 712

Nordic ID MHL Manual

Boolean Code.Planet.XmitCheckChar [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of check digit in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of check digit in the decoded scan result. FALSE = Disable the inclusion of check digit in the decoded scan result.

Function Output:
TRUE = Check digit is included in the decoded scan result. FALSE = Check Check is stripped. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 485 / 712

Nordic ID MHL Manual

Boolean Code.Postnet.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Postnet.

Function Input:
TRUE = Enable decoding of Postnet symbology. FALSE = Disable decoding of Postnet symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 486 / 712

Nordic ID MHL Manual

Boolean Code.Postnet.XmitCheckChar [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of check digit in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of check digit in the decoded scan result. FALSE = Disable the inclusion of check digit in the decoded scan result.

Function Output:
TRUE = Check digit is included in the decoded scan result. FALSE = Check Check is stripped. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 487 / 712

Nordic ID MHL Manual

Boolean Code.QR.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of QR Code.

Function Input:
TRUE = Enable decoding of QR Code symbology. FALSE = Disable decoding of QR Code symbology.

Function Output:
TRUE = Decoding is enabled. FALSE = Decoding is disabled.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 488 / 712

Nordic ID MHL Manual

DWORD Code.QR.MaxLength [Imager]


Min Value: 1 Max Value: 3500 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the QR Code symbol to be decoded. (See also the Code.QR.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the QR Code symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 3500. (Default)

Function Output:
The QR Code symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 489 / 712

Nordic ID MHL Manual

DWORD Code.QR.MinLength [Imager]


Min Value: 1 Max Value: 3500 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the QR Code symbol to be decoded. (See also the Code.QR.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the QR Code symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The QR Code symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 490 / 712

Nordic ID MHL Manual

Boolean Code.RSS.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Reduced Space Symbologies (RSS) also known as GS1 DataBar symbologies.

Function Input:
TRUE = Enable decoding of the following RSS symbologies: RSS-14, RSS Limited, and RSS Expanded. FALSE = Disable decoding of RSS symbologies.

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 491 / 712

Nordic ID MHL Manual

DWORD Code.RSS.MaxLength [Imager]


Min Value: 1 Max Value: 80 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the RSS Expanded symbol to be decoded. (See also the Code.RSS.MinLength, which sets a minimum limit for the lenght)

Function Input:
Decode the RSS Expanded symbols being equal to this or fewer number of characters in length. The largest possible number of characters is 80. (Default)

Function Output:
The RSS Expanded symbols being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 492 / 712

Nordic ID MHL Manual

DWORD Code.RSS.MinLength [Imager]


Min Value: 1 Max Value: 80 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the RSS Expanded symbol to be decoded. (See also the Code.RSS.MaxLength, which sets a maximum limit for the lenght.)

Function Input:
Decode the RSS Expanded symbols being at least this number of characters in length. The smallest possible number of characters is 1. (Default)

Function Output:
The RSS Expanded symbols being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 493 / 712

Nordic ID MHL Manual

Boolean Code.RSS14.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of RSS-14.

Function Input:
TRUE = Enable decoding of RSS-14 symbology FALSE = Disable decoding of RSS-14 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 494 / 712

Nordic ID MHL Manual

Boolean Code.RSSExpanded.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of RSS Expanded.

Function Input:
TRUE = Enable decoding of RSS Expanded symbology FALSE = Disable decoding of RSS Expanded symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 495 / 712

Nordic ID MHL Manual

Boolean Code.RSSLimited.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of RSS Limited.

Function Input:
TRUE = Enable decoding of RSS Limited symbology FALSE = Disable decoding of RSS Limited symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 496 / 712

Nordic ID MHL Manual

Boolean Code.Straight2of5.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Straight 2 of 5.

Function Input:
TRUE = Enable decoding of Straight 2 of 5 symbology FALSE = Disable decoding of Straight 2 of 5 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 497 / 712

Nordic ID MHL Manual

DWORD Code.Straight2of5.MaxLength [Imager]


Min Value: 4 Max Value: 48 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the maximum length of the Straight 2 of 5 bar code to be decoded. (See also the Code.Straight2of5.MinLength, which sets a minimum limit for the lenght.)

Function Input:
Decode the Straight 2 of 5 bar codes being equal to this or fewer number of characters in length. The largest possible number of characters is 48. (Default)

Function Output:
The Straight 2 of 5 bar codes being this length or shorter, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 498 / 712

Nordic ID MHL Manual

DWORD Code.Straight2of5.MinLength [Imager]


Min Value: 4 Max Value: 48 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets, in encoded characters, the minimum length of the Straight 2 of 5 bar code to be decoded. (See also the Code.Straight2of5.MaxLength, which sets a maximum limit for the lenght)

Function Input:
Decode the Straight 2 of 5 bar codes being at least this number of characters in length. The smallest possible number of characters is 4. (Default)

Function Output:
The Straight 2 of 5 bar codes being this length or longer, in encoded characters, are decoded.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 499 / 712

Nordic ID MHL Manual

Boolean Code.TriopticCode39.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of Trioptic Code 39.

Function Input:
TRUE = Enable decoding of Trioptic Code 39 symbology FALSE = Disable decoding of Trioptic Code 39 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 500 / 712

Nordic ID MHL Manual

Boolean Code.UccEan128.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of UCC-128/EAN-128

Function Input:
TRUE = Enable decoding of UCC-128/EAN-128 symbology FALSE = Disable decoding of UCC-128/EAN-128 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 501 / 712

Nordic ID MHL Manual

Boolean Code.UPC-A.Addenda2Digit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of 2-digit supplemental data in the decoded scan result, if present on the bar code.

Function Input:
TRUE = Enable the inclusion of 2-digit supplemental data in the decoded scan result FALSE = Disable the inclusion of 2-digit supplemental data in the decoded scan result

Function Output:
TRUE = 2-digit supplemental data is included FALSE = 2-digit supplemental data is left out (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 502 / 712

Nordic ID MHL Manual

Boolean Code.UPC-A.Addenda5Digit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable the inclusion of 5-digit supplemental data in the decoded scan result, if present on the bar code.

Function Input:
TRUE = Enable the inclusion of 5-digit supplemental data in the decoded scan result. FALSE = Disable the inclusion of 5-digit supplemental data in the decoded scan result.

Function Output:
TRUE = 5-digit supplemental data is included. FALSE = 5-digit supplemental data is left out. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 503 / 712

Nordic ID MHL Manual

Boolean Code.UPC-A.AddendaOnly [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to restrict decoding of UPC Version A to the code labels having either 2- or 5-digit supplemental data.

Function Input:
TRUE = Decode only the bar codes including supplemental data. FALSE = Decode all the barcodes whether or not suplemental data is included.

Function Output:
TRUE = The UPC Version A bar code is decoded if it includes supplemental data. FALSE = All the UPC Version A bar codes with or without supplemental data are decoded. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 504 / 712

Nordic ID MHL Manual

Boolean Code.UPC-A.AddendaSeparator [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable insertion of extra space character in the decoded scan result between the UPC-A code and associated supplementary data.

Function Input:
TRUE = Enable the insertion of extra space character between the code and supplemental data. FALSE = Disable the insertion of extra space character.

Function Output:
TRUE = Extra space character is inserted. FALSE = No insertion of extra space character (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 505 / 712

Nordic ID MHL Manual

Boolean Code.UPC-A.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of UPC-A.

Function Input:
TRUE = Enable decoding of UPC Version A symbology FALSE = Disable decoding of UPC Version A symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 506 / 712

Nordic ID MHL Manual

DWORD Code.UPC-A.Preamble [Laser]


Min Value: 0 Max Value: 2 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose whether or not a number system character of the UPC coding scheme and a country code are included in the decoded scan result.

Function Input:
0 = Do not include the number system characte nor the contry code in the decoded scan result. 1 = Include the number system character in the decoded scan result as follows: <SYSTEM DIGIT><DATA> 2 = Include both the number system character and the country code in the decoded scan result as follows: <COUNTRY CODE><SYSTEM DIGIT><DATA>

Function Output:
0 = Neither the number system characte nor the contry code is included 1 = The number system character is included as follows: <SYSTEM DIGIT><DATA> 2 = Both the number system character and the country code are included as follows: <COUNTRY CODE><SYSTEM DIGIT><DATA>

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 507 / 712

Nordic ID MHL Manual

DWORD Code.UPC-A.SecurityLevel [Laser]


Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
NOTE! Available from Morphic image version 2.2.0 and Merlin image version 1.7.0.

This function controls the UPC/EAN Security Level. The four available security levels are:

UPC/EAN Security Level 0 This default setting allows the scanner to operate in its most aggressive state, while providing sufficient security in decoding most in-spec UPC/EAN bar codes.

UPC/EAN Security Level 1 [DEFAULT SETTING AS OF Morphic 2.2.0 and Merlin 1.7.0] As bar code quality levels diminish, certain characters become prone to mis-decodes before others (i.e., 1, 2, 7, 8). If mis-decodes of poorly printed bar codes occur, and the mis-decodes are limited to these characters, select this security level.

UPC/EAN Security Level 2 If mis-decodes of poorly printed bar codes occur, and the mis-decodes are not limited to characters 1, 2, 7, and 8, select this security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 508 / 712

Nordic ID MHL Manual

UPC/EAN Security Level 3 If misdecodes still occur after selecting Security Level 2, select this security level. Be advised, selecting this option is an extreme measure against mis-decoding severely out of spec bar codes. Selection of this level of security significantly impairs the decoding ability of the scanner. If this level of security is necessary, try to improve the quality of the bar codes.

Functionality Note: This function controls parameter 0x4D in the laser scanner. It is a shared setting for all UPC and EAN barcodes. Changing this setting for one barcode type changes it for all others as well.

Function Input:
The desired security level.

Function Output:
The active security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 509 / 712

Nordic ID MHL Manual

DWORD Code.UPC-A.Supplementals [Laser]


Min Value: 0 Max Value: 5 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose how to deal with the supplemental characters of UPC-A (either 2- or 5-digit supplemetal data) in decoding.

Function Input:
0 = Ignore the supplemental data if present 1 = Decode only the UPC-A bar codes that include supplemental data 2 = Decode both the UPC-A code and the supplemental data, if present, using redundancy in decoding. (See Code.EAN-13.SupplementalRedundancy as well. Note: The function may be also used in the UPC-A context.) 3 = Decode the suplemental data if one of the following prefixes is included in the bar code: a 378, a 379, or a 978. With other prefixes, ignore the supplemental data, if present. 4 = Decode the suplemental data if one of the following prefixes is included in the bar code: a 378 or a 379. With other prefixes, ignore the supplemental data if present. 5 = Decode the suplemental data if the following prefix is included in the bar code: a 978. With other prefixes, ignore the supplemental data if present.

Function Output:
0 = Decoding of all the UPC-A bar codes with or without supplemental data by ignoring the supplemental data if present (Default) 1 = Only if supplemental data is included, the UPC-A bar code with the supplemental data is decoded. 2 = The UPC-A bar codes are decoded with or without supplemental data using redundancy in decoding. Both the UPC-A code and the supplemental data, if present, are decoded. (See Code.EAN-13.SupplementalRedundancy as well. Note: The function may be also used in the UPC-A context.) 3 = The UPC-A bar codes having one of the following prefixes are decoded together with their supplementa data: a 378, a 379, or a 978. Others are decoded by ignoring the supplemental data if present. 4 = The UPC-A bar codes having one of the following prefixes are decoded together with their supplementa data: a 378, or a 379. Others are decoded by ignoring the supplemental data if present.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 510 / 712

Nordic ID MHL Manual

5 = The UPC-A bar codes having the prefix 978 are decoded together with their supplementa data. Others are decoded by ignoring the supplemental data if present.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 511 / 712

Nordic ID MHL Manual

Boolean Code.UPC-A.TransmitCheckDigit
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of a check digit in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of a check digit in the decoded scan result FALSE = Disable the inclusion of a check digit in the decoded scan result

Function Output:
TRUE = Check character is included in the decoded scan result FALSE = Check character is stripped

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 512 / 712

Nordic ID MHL Manual

Boolean Code.UPC-A.XmitNumSys [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of number system digit in the decoded scan result; first digit of UPC Version A symbol.

Function Input:
TRUE = Enable the inclusion of number system digit in the decoded scan result. FALSE = Disable the inclusion of number system digit in the decoded scan result.

Function Output:
TRUE = Number system digit is included in the decoded scan result. FALSE = Number system digit is excluded from the decoded scan result. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 513 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.Addenda2Digit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of 2-digit supplemental data in the decoded scan result, if present on the bar code.

Function Input:
TRUE = Enable the inclusion of 2-digit supplemental data in the decoded scan result. FALSE = Disable the inclusion of 2-digit supplemental data in the decoded scan result.

Function Output:
TRUE = 2-digit supplemental data is included in the decoded scan result. FALSE = 2-digit supplemental data is ignored, if present. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 514 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.Addenda5Digit [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of 5-digit supplemental data in the decoded scan result, if present on the bar code.

Function Input:
TRUE = Enable the inclusion of 5-digit supplemental data in the decoded scan result. FALSE = Disable the inclusion of 5-digit supplemental data in the decoded scan result.

Function Output:
TRUE = 5-digit supplemental data is included. FALSE = 5-digit supplemental data is ignored, if present. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 515 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.AddendaOnly [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to restrict decoding of UPC-E to the code labels including either 2- or 5-digit supplementary data.

Function Input:
TRUE = Decode only the bar codes including supplemental data. FALSE = Decode all the barcodes whether or not suplemental data is included.

Function Output:
TRUE = The UPC-E bar code is decoded if it includes supplemental data. FALSE = All the UPC-E bar codes with or without supplemental data are decoded. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 516 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.AddendaSeparator [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable insertion of extra space character in the decoded scan result between the UPC-E code and associated supplementary data.

Function Input:
TRUE = Enable the insertion of extra space character between the code and supplemental data. FALSE = Disable the insertion of extra space character.

Function Output:
TRUE = Extra space character is inserted. FALSE = No insertion of the extra space character (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 517 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.EnableE0 [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of UPC Version E (a Uniform Code Council symbology).

Function Input:
TRUE = Enable decoding of UPC Version E (UPC-E0) symbology. FALSE = Disable decoding of UPC Version E symbology.

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 518 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.EnableE1 [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of UPC-E1 (not a Uniform Code Council symbology).

Function Input:
TRUE = Enable decoding of UPC-E1 symbology. FALSE = Disable decoding of UPC-E1 symbology.

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 519 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.ExpandVersionE [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable expansion of the UPC-E code to the UPC Version A format.

Function Input:
TRUE = Enable the expansion of the UPC-E code to the UPC Version A format FALSE = Disable the expansion to the UPC Version A format

Function Output:
TRUE = Decoded UPC-E code is decompressed into UPC-A format. FALSE = No expansion of the UPC-E code in use. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 520 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.XmitCheckChar [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of check character in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of check character in the decoded scan result. FALSE = Disable the inclusion of check character.

Function Output:
TRUE = Check character is included in the decoded scan result. FALSE = Check character is stripped. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 521 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E.XmitNumSys [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of number system digit in the decoded scan result.

Function Input:
TRUE = Enable the inclusion of number system digit in the decoded scan result. TRUE = Disable the inclusion of number system digit in the decoded scan result.

Function Output:
TRUE = Number system digit is included in the decoded scan result. FALSE = Number system digit is excluded from the decoded scan result. (Default)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 522 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E0.ConvertToUPCA [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable conversion of the UPC-E code to a UPC-A code. Note: After decoding the Scanner applies all the enabled UPC-A options to the UPC-E-to-UPC-A conversion.

Function Input:
TRUE = Change the decoded UPC Version E code into a UPC Version A code FALSE = Disable the UPC-E-to-UPC-A conversion

Function Output:
TRUE = The decoded UPC Version E code is converted to a UPC Version A code FALSE = No conversion

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 523 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E0.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of UPC Version E.

Function Input:
TRUE = Enable decoding of UPC Version E symbology FALSE = Disable decoding of UPC Version E symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 524 / 712

Nordic ID MHL Manual

DWORD Code.UPC-E0.Preamble [Laser]


Min Value: 0 Max Value: 2 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose whether or not a number system character of the UPC coding scheme and a country code are included in the decoded scan result.

Function Input:
0 = Do not include the number system characte nor the contry code in the decoded scan result. 1 = Include the number system character in the decoded scan result as follows: <SYSTEM DIGIT><DATA> 2 = Include both the number system character and the country code in the decoded scan result as follows: <COUNTRY CODE><SYSTEM DIGIT><DATA>

Function Output:
0 = Neither the number system character nor the contry code is included 1 = The number system character is included as follows: <SYSTEM DIGIT><DATA> 2 = Both the number system character and the country code are included as follows: <COUNTRY CODE><SYSTEM DIGIT><DATA>

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 525 / 712

Nordic ID MHL Manual

DWORD Code.UPC-E0.SecurityLevel [Laser]


Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
NOTE! Available from Morphic image version 2.2.0 and Merlin image version 1.7.0.

This function controls the UPC/EAN Security Level. The four available security levels are:

UPC/EAN Security Level 0 This default setting allows the scanner to operate in its most aggressive state, while providing sufficient security in decoding most in-spec UPC/EAN bar codes.

UPC/EAN Security Level 1 [DEFAULT SETTING AS OF Morphic 2.2.0 and Merlin 1.7.0] As bar code quality levels diminish, certain characters become prone to mis-decodes before others (i.e., 1, 2, 7, 8). If mis-decodes of poorly printed bar codes occur, and the mis-decodes are limited to these characters, select this security level.

UPC/EAN Security Level 2 If mis-decodes of poorly printed bar codes occur, and the mis-decodes are not limited to characters 1, 2, 7, and 8, select this security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 526 / 712

Nordic ID MHL Manual

UPC/EAN Security Level 3 If misdecodes still occur after selecting Security Level 2, select this security level. Be advised, selecting this option is an extreme measure against mis-decoding severely out of spec bar codes. Selection of this level of security significantly impairs the decoding ability of the scanner. If this level of security is necessary, try to improve the quality of the bar codes.

Functionality Note: This function controls parameter 0x4D in the laser scanner. It is a shared setting for all UPC and EAN barcodes. Changing this setting for one barcode type changes it for all others as well.

Function Input:
The desired security level.

Function Output:
The active security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 527 / 712

Nordic ID MHL Manual

DWORD Code.UPC-E0.Supplementals [Laser]


Min Value: 0 Max Value: 5 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose how to deal with the supplemental characters of UPC Version E (either 2- or 5-digit supplemetal data) in decoding.

Function Input:
0 = Ignore the supplemental data if present 1 = Decode only the UPC-E bar codes that include supplemental data 2 = Decode both the UPC-E code and the supplemental data, if present, using redundancy in reading. (See Code.EAN-13.SupplementalRedundancy as well. Note: The function may be also used in the UPC-E context.) 3 = Decode the suplemental data if one of the following prefixes is included in the bar code: a 378, a 379, or a 978. With other prefixes, ignore the supplemental data, if present. 4 = Decode the suplemental data if one of the following prefixes is included in the bar code: a 378 or a 379. With other prefixes, ignore the supplemental data if present. 5 = Decode the suplemental data if the following prefix is included in the bar code: a 978. With other prefixes, ignore the supplemental data if present.

Function Output:
0 = Decoding of all the UPC-E bar codes with or without supplemental data by ignoring the supplemental data if present (Default) 1 = Only if supplemental data is included, the UPC-E bar code with the supplemental data is decoded. 2 = The UPC-E bar codes are decoded with or without supplemental data using redundancy in reading. Both the UPC-E code and the supplemental data, if present, are decoded. (See Code.EAN-13.SupplementalRedundancy as well. Note: The function may be also used in the UPC-E context.) 3 = The UPC-E bar codes having one of the following prefixes are decoded together with their supplementa data: a 378, a 379, or a 978. Others are decoded by ignoring the supplemental data if present. 4 = The UPC-E bar codes having one of the following prefixes are decoded together with their supplementa data: a 378, or a 379. Others are decoded by ignoring the supplemental data if

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 528 / 712

Nordic ID MHL Manual

present. 5 = The UPC-E bar codes having the prefix 978 are decoded together with their supplemental data. Others are decoded by ignoring the supplemental data if present.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 529 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E0.TransmitCheckDigit [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of check digit in the decoded scan result.

Function Input:
TRUE = Include check digit in the decoded scan result FALSE = Do not include check digit in the decoded scan result

Function Output:
TRUE= Check digit is included in the decoded scan result FALSE= Check digit is stripped

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 530 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E1.ConvertToUPCA [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable conversion of the UPC-E1 code to a UPC Version A code. Note: After decoding the Scanner applies all the enabled UPC-A options to the UPC-E1-to-UPC-A conversion.

Function Input:
TRUE = Change the decoded UPC-E1 code into a UPC Version A code FALSE = Disable the UPC-E1-to-UPC-A conversion

Function Output:
TRUE = The decoded UPC Version E code is converted to a UPC Version A code FALSE = No conversion

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 531 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E1.Enable [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of UPC-E1. (Note that the symbology is not apporved by the UCC.)

Function Input:
TRUE = Enable decoding of UPC-E1 symbology FALSE = Disable decoding of UPC-E1 symbology

Function Output:
TRUE = Decoding is enabled FALSE = Decoding is disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 532 / 712

Nordic ID MHL Manual

DWORD Code.UPC-E1.Preamble [Laser]


Min Value: 0 Max Value: 2 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose whether or not a number system character of the UPC coding scheme and a country code are included in the decoded scan result.

Function Input:
0 = Do not include the number system characte nor the contry code in the decoded scan result. 1 = Include the number system character in the decoded scan result as follows: <SYSTEM DIGIT><DATA> 2 = Include both the number system character and the country code in the decoded scan result as follows: <COUNTRY CODE><SYSTEM DIGIT><DATA>

Function Output:
0 = Neither the number system characte nor the contry code is included 1 = The number system character is included as follows: <SYSTEM DIGIT><DATA> 2 = Both the number system character and the country code are included as follows: <COUNTRY CODE><SYSTEM DIGIT><DATA>

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 533 / 712

Nordic ID MHL Manual

DWORD Code.UPC-E1.SecurityLevel [Laser]


Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
NOTE! Available from Morphic image version 2.2.0 and Merlin image version 1.7.0.

This function controls the UPC/EAN Security Level. The four available security levels are:

UPC/EAN Security Level 0 This default setting allows the scanner to operate in its most aggressive state, while providing sufficient security in decoding most in-spec UPC/EAN bar codes.

UPC/EAN Security Level 1 [DEFAULT SETTING AS OF Morphic 2.2.0 and Merlin 1.7.0] As bar code quality levels diminish, certain characters become prone to mis-decodes before others (i.e., 1, 2, 7, 8). If mis-decodes of poorly printed bar codes occur, and the mis-decodes are limited to these characters, select this security level.

UPC/EAN Security Level 2 If mis-decodes of poorly printed bar codes occur, and the mis-decodes are not limited to characters 1, 2, 7, and 8, select this security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 534 / 712

Nordic ID MHL Manual

UPC/EAN Security Level 3 If misdecodes still occur after selecting Security Level 2, select this security level. Be advised, selecting this option is an extreme measure against mis-decoding severely out of spec bar codes. Selection of this level of security significantly impairs the decoding ability of the scanner. If this level of security is necessary, try to improve the quality of the bar codes.

Functionality Note: This function controls parameter 0x4D in the laser scanner. It is a shared setting for all UPC and EAN barcodes. Changing this setting for one barcode type changes it for all others as well.

Function Input:
The desired security level.

Function Output:
The active security level.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 535 / 712

Nordic ID MHL Manual

DWORD Code.UPC-E1.Supplementals [Laser]


Min Value: 0 Max Value: 5 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose how to deal with the supplemental characters of UPC-E1 (either 2- or 5-digit supplemetal data) in decoding.

Function Input:
0 = Ignore the supplemental data if present 1 = Decode only the UPC-E1 bar codes that include supplemental data 2 = Decode both the UPC-E1 code and the supplemental data, if present, using redundancy in reading. (See Code.EAN-13.SupplementalRedundancy as well. Note: The function may be also used in the UPC-E1 context.) 3 = Decode the suplemental data if one of the following prefixes is included in the bar code: a 378, a 379, or a 978. With other prefixes, ignore the supplemental data, if present. 4 = Decode the suplemental data if one of the following prefixes is included in the bar code: a 378 or a 379. With other prefixes, ignore the supplemental data if present. 5 = Decode the suplemental data if the following prefix is included in the bar code: a 978. With other prefixes, ignore the supplemental data if present.

Function Output:
0 = Decoding of all the UPC-E1 bar codes with or without supplemental data by ignoring the supplemental data if present (Default) 1 = Only if supplemental data is included, the UPC-E1 bar code with the supplemental data is decoded. 2 = The UPC-E1 bar codes are decoded with or without supplemental data using redundancy in reading. Both the UPC-E1 code and the supplemental data, if present, are decoded. (See Code.EAN-13.SupplementalRedundancy as well. Note: The function may be also used in the UPC-E1 context.) 3 = The UPC-E1 bar codes having one of the following prefixes are decoded together with their supplementa data: a 378, a 379, or a 978. Others are decoded by ignoring the supplemental data if present. 4 = The UPC-E1 bar codes having one of the following prefixes are decoded together with their supplementa data: a 378, or a 379. Others are decoded by ignoring the supplemental data if

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 536 / 712

Nordic ID MHL Manual

present. 5 = The UPC-E1 bar codes having the prefix 978 are decoded together with their supplementa data. Others are decoded by ignoring the supplemental data if present.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 537 / 712

Nordic ID MHL Manual

Boolean Code.UPC-E1.TransmitCheckDigit [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable inclusion of a check digit in the decoded scan result.

Function Input:
TRUE = Include check digit in the decoded scan result FALSE = Strip check digit after decoding

Function Output:
TRUE = Check digit is included in the decoded scan result FALSE = Check digit is stripped

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 538 / 712

Nordic ID MHL Manual

Boolean Codes.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of all the symbologies the Scanner supports.

Function Input:
TRUE = Enable decoding of all the symbologies FALSE = Disable decoding of all the symbologies

Function Output:
TRUE = All the symbologies are enabled FALSE = All the symbologies are disabled

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 539 / 712

Nordic ID MHL Manual

Boolean Scanner.Aim [Laser]


TRUE / FALSE WRITE ONLY NOT stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable an aiming beam to help in aligning the hand-held reader before triggering the actual code scan (reading).

Function Input:
TRUE= Turn on the aiming beam FALSE= Turn off the aiming beam

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 540 / 712

Nordic ID MHL Manual

Boolean Scanner.AimsiMode
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable the inclusion of the AIM Symbology Identifier (AIM Symbology ID) of the symbol in the reading.

Function Input:
TRUE = Enable the inclusion FALSE = Disable the inclusion

Function Output:
TRUE = The AIM Symbology ID of the symbol is availabe after the successful reading with the Scanner.ScanAIMSI function. FALSE = No AIM Symbology ID will be made available.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 541 / 712

Nordic ID MHL Manual

Boolean Scanner.BDRedundancy [Laser]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
NOTE! This function is available from Morphic image 2.1.0 and Merlin image 1.6.0 onwards. Bidirectional Redundancy. If enabled, the barcode must be successfully scanned in both directions before it is accepted as valid. If disabled scanning it in either direction is enough.

Function Input:
TRUE to enable Bidirectional Redundancy, FALSE to disable it.

Function Output:
TRUE if Bidirectional Redundancy is enabled, FALSE if it is disabled.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 542 / 712

Nordic ID MHL Manual

Execute Scanner.CancelScan
WRITE ONLY NOT stored in MHL Profile.

Description:
The function cancels the reading in progress. Note that the synchronous reading can be cancelled within another thread.

Function Input:
n/a; no variants on cancel available

Function Output:
n/a

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 543 / 712

Nordic ID MHL Manual

DWORD Scanner.DecodeLimit [Imager]


Min Value: 0 Max Value: 10000 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a time limit, in milliseconds, for decoding of a potential code label. Within this time limit the Scanner should be able to decode the symbol in the caputured image. If not, the Scanner gets down to searching for a decodable code label in the new image. Note: The Scanner.Timeout sets/gets the total time limit for reading of a code label.

Function Input:
Limit the decoding of a potential code label to this number of milliseconds. The possible values can be in the range of 1 to 10,000 milliseconds; zero indicates no limit.

Function Output:
For this number of milliseconds the Scanner tries to decode potential code label per captured image. Default is 400 milliseconds.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 544 / 712

Nordic ID MHL Manual

DWORD Scanner.HHPID [Imager]


Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the code identifier of the decoded scan result as specified by the Scanner manufacturer (compare AIM Symbology ID). HHPID Symbology HHPID Symbology A (0x41) Australian Post j (0x6A) ISBT 128 z (0x7A) Aztec Code J (0x4A) Japanese Post Z (0x5A) Aztec Mesas K (0x4B) KIX (Netherlands) Post B (0x42) British Post x (0x78) MaxiCode C (0x43) Canadian Post R (0x52) MicroPDF417 a (0x61) Codabar g (0x67) MSI q (0x71) Codablock F O (0x4F) OCR h (0x68) Code 11 r (0x72) PDF417 b (0x62) Code 39 L (0x4C) Planet Code l (0x6C) Code 49 P (0x50) Postnet i (0x69) Code 93 and 93i s (0x73) QR Code j (0x6A) Code 128 y (0x79) Reduced Space Symbology w (0x77) Data Matrix f (0x66) Straight 2 of 5 IATA (two-bar start/stop) D (0x44) EAN- 8 T (0x54) TCIF Linked Code 39 (TLC39) d (0x64) EAN- 13 c (0x63) UPC-A y (0x79) EANUCC Composite E (0x45) UPC-E e (0x65) Interleaved 2 of 5 E (0x45) UPC-E1

Function Input:
n/a

Function Output:
The code identifier of the decoded scan result according to the Scanner manufacturer (See the table in the description section to interpret the ID).

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 545 / 712

Nordic ID MHL Manual

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 546 / 712

Nordic ID MHL Manual

String Scanner.Module
Min Chars: 0 Max Chars: 255 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the name of the Scanner subsystem incorporated in the handheld reader.

Function Input:
n/a

Function Output:
The name of the Scanner in the plain text. The output can be one of the following Unicode (UTF16) strings: Symbol SE955 (also known as Laser or as 1D bar code scanner) HHP IT5000 (also known as Imager or as 2D bar code scanner)

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 547 / 712

Nordic ID MHL Manual

DWORD Scanner.OptimizeDecoder [Imager]


Min Value: 0 Max Value: 2 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose optimal reading of code labels concerning the search for a code symbol in the captured image. (Be aware that reading can also be tried to optimize by setting a time limit for the search using the Scanner.SearchLimit, and for decoding using the Scanner.DecodeLimit as well as disabling decoding of unnecessary symbologies.)

Function Input:
0 = Read all code labels in any orientation without optimization. 1 = Read only the linear and stacked bar codes horizontally using the coarsest possible scan. 2 = Read all code labels in any orientation by searching for a code symbol around the center region of the image.

Function Output:
0 = Full omnidirectional reading; all code labels can be read in any orientation without optimization, meaning that the search for a potential code symbol is thorough, which can reduce performance of reading. 1 = Advanced linear reading; optimization is about horizontal reading of linear and stacked bar codes only. In addition, the search for a bar code in the captured image is done in the coarsest possible scan. Note: This optimization does not work with postal and 2D codes other than the stacked bar codes. 2 = Quick omnidirectional reading; the search for a code symbol in the captured image is optimized around the center region of the image. Reading of all the symbologies can be perfomed in any orientation. Note: This optimazation may miss some off-center code symbols as well as the large ones like Data Matrix and QR Code symbols.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 548 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 549 / 712

Nordic ID MHL Manual

DWORD Scanner.Padding.Character
Min Value: 0 Max Value: 255 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the character used for padding the decoded scan result with it.

Function Input:
A padding character

Function Output:
A padding character

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 550 / 712

Nordic ID MHL Manual

String Scanner.Padding.Length
Min Chars: 0 Max Chars: 4096 READ / WRITE Stored in MHL Profile.

Description:
The function tells the Scanner how many times the padding charcater shall be added to the decoded scan result.

Function Input:
Number of times the padding character will be added in the range of 0 to 4096. (Zero means no padding in use.)

Function Output:
Number of times the padding character will be added in the range of 0 to 4096. (Zero means no padding in use.)

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 551 / 712

Nordic ID MHL Manual

Boolean Scanner.Padding.Mode
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets information on how the padding works, whether to add the padding to the end or to the beginning of the decoded scan result.

Function Input:
TRUE = Pad the end FALSE = Pad the beginning

Function Output:
TRUE = Padding is added to the end of the decoded scan result. FALSE = Padding is added to the beginning of the decoded scan result.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 552 / 712

Nordic ID MHL Manual

DWORD Scanner.Postfix1
Min Value: 0 Max Value: 255 READ / WRITE Stored in MHL Profile.

Description:
The function applies the adding of a keystroke event to the end of the decoded scan result as a first suffix.

Function Input:
A hex value in the range 00h to 7Fh for the desired ASCII value. Hex values 80h through FFh may also be used.

Function Output:
A hex value in the range 00h to 7Fh for the desired ASCII value. Hex values 80h through FFh may also be used.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 553 / 712

Nordic ID MHL Manual

DWORD Scanner.Postfix2
Min Value: 0 Max Value: 255 READ / WRITE Stored in MHL Profile.

Description:
The function applies the adding of a keystroke event to the end of the decoded scan result as a second suffix.

Function Input:
A hex value in the range 00h to 7Fh for the desired ASCII value. Hex values 80h through FFh may also be used.

Function Output:
A hex value in the range 00h to 7Fh for the desired ASCII value. Hex values 80h through FFh may also be used.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 554 / 712

Nordic ID MHL Manual

DWORD Scanner.Prefix1
Min Value: 0 Max Value: 255 READ / WRITE Stored in MHL Profile.

Description:
The function applies the adding of a keystroke event to the beginning of the decoded scan result as a first prefix.

Function Input:
A hex value in the range 00h to 7Fh for the desired ASCII value. Hex values 80h through FFh may also be used.

Function Output:
A hex value in the range 00h to 7Fh for the desired ASCII value. Hex values 80h through FFh may also be used.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 555 / 712

Nordic ID MHL Manual

DWORD Scanner.Prefix2
Min Value: 0 Max Value: 255 READ / WRITE Stored in MHL Profile.

Description:
The function applies the adding of a keystroke event to the beginning of the decoded scan result as a second prefix.

Function Input:
A hex value in the range 00h to 7Fh for the desired ASCII value. Hex values 80h through FFh may also be used.

Function Output:
A hex value in the range 00h to 7Fh for the desired ASCII value. Hex values 80h through FFh may also be used.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 556 / 712

Nordic ID MHL Manual

DWORD Scanner.Replace.ReplaceChar
Min Value: 0 Max Value: 255 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the character used for telling the Scanner which character shall be replaced in the decoded scan result.

Function Input:
The character to be replaced.

Function Output:
The character to be replaced.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 557 / 712

Nordic ID MHL Manual

DWORD Scanner.Replace.Replacement
Min Value: 0 Max Value: 255 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the replacement character that substitutes for the character in the decoded scan result according to the Scanner.Replace.ReplaceChar.

Function Input:
A replacement character

Function Output:
A replacement character

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 558 / 712

Nordic ID MHL Manual

DWORD Scanner.Scan
Min Value: 0 Max Value: 0 WRITE ONLY NOT stored in MHL Profile.

Description:
The function sets off a synchronous reading of the code label using one of the two reading modes.

Function Input:
1 = Read with read-out 2 = Read without read-out

Function Output:
n/a

Error Codes:
0 21000 21001 ERROR_SUCCESS MHL_SCAN_NO_RESULT MHL_SCAN_IN_PROGRESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 559 / 712

Nordic ID MHL Manual

String Scanner.ScanAIMSI
Min Chars: 8 Max Chars: 8 READ ONLY NOT stored in MHL Profile.

Description:
The function gives the standard AIM Symbology Identifier of the decoded scan result.

Function Input:
n/a

Function Output:
AIM Symbology Identifier in the form of < ]cm > ] = an identifier flag c = data carrier identification m = a modifier character The output can be seven Unicode (UTF16) characters in length at the maximum

Error Codes:
0 1168 ERROR_SUCCESS ERROR_NOT_FOUND

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 560 / 712

Nordic ID MHL Manual

DWORD Scanner.ScanAsync
Min Value: 0 Max Value: 0 WRITE ONLY NOT stored in MHL Profile.

Description:
The function sets off an asynchronous reading of the code label.

Function Input:
n/a; only read-out mode is supported

Function Output:
n/a

Error Codes:
0 21001 ERROR_SUCCESS MHL_SCAN_IN_PROGRESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 561 / 712

Nordic ID MHL Manual

String Scanner.ScanResultInfo
Min Chars: 256 Max Chars: 256 READ ONLY NOT stored in MHL Profile.

Description:
The function gives status information on the ongoing or on the ended reading.

Function Input:
n/a

Function Output:
Status information in the plain text. The information can be 256 Unicode (UTF16) characters in length at the maximum.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 562 / 712

Nordic ID MHL Manual

String Scanner.ScanResultString
Min Chars: 4096 Max Chars: 4096 READ ONLY NOT stored in MHL Profile.

Description:
The function gives a decoded scan result of the succesful reading.

Function Input:
n/a

Function Output:
Outcome of the successful reading in the plain text. The result can include 4096 Unicode (UTF16) characters at the maximum.

Error Codes:
0 21000 ERROR_SUCCESS MHL_SCAN_NO_RESULT

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 563 / 712

Nordic ID MHL Manual

Boolean Scanner.ScanState
TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
Function gives status information on whether reading is in progress or ended, as the reading was triggered asynchronously.

Function Input:
n/a

Function Output:
TRUE = Reading is in progress. FALSE = Reading has ended.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 564 / 712

Nordic ID MHL Manual

DWORD Scanner.SearchLimit [Imager]


Min Value: 0 Max Value: 10000 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a time limit, in milliseconds, for the search for a potential code label in every captured image. Within this time limit the Scanner should determine whether there is a decodable symbol in the caputured image being good enough. If not, the Scanner gets down to searching for a decodable code label in the next image. (See also Scanner.OptimizeDecoder) Note: The Scanner.Timeout sets/gets the total time limit for reading of a code label.

Function Input:
Limit the search for a potential code label to this number of milliseconds. The possible values can be in the range of 1 to 10,000 milliseconds; zero indicates no limit.

Function Output:
For this number of milliseconds the potential code label is searched for per captured image. Default is 30 milliseconds.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 565 / 712

Nordic ID MHL Manual

DWORD Scanner.SecurityLevel [Laser]


Min Value: 1 Max Value: 4 READ / WRITE Stored in MHL Profile.

Description:
NOTE! This function is available from Morphic image 2.1.0 and Merlin image 1.6.0 onwards. The reader offers four levels of decode security for linear code types (e.g. Code 39, Interleaved 2 of 5). Select higher security levels for decreasing levels of bar code quality. As security levels increase, the scanners aggressiveness decreases. Select the security level appropriate for your bar code quality. Linear Security Level 1 The following code types must be successfully read twice before being decoded: Table A: Code Type Codabar MSI D 2 of 5 I 2 of 5

Length All 4 or less 8 or less 8 or less

Linear Security Level 2 All code types must be successfully read twice before being decoded. Linear Security Level 3 Code types other than the code types in Table A must be successfully read twice before being decoded. The codes in Table A must be read three times. Linear Security Level 4 All code types must be successfully read three times before being decoded.

Function Input:
Linear security level desired (1-4). 2 is the factory default setting.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 566 / 712

Nordic ID MHL Manual

Function Output:
The active linear security level setting, 2 is the factory default setting.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 567 / 712

Nordic ID MHL Manual

String Scanner.SoundFailed
Min Chars: 0 Max Chars: 254 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a sound effect to be played after the failed reading.

Function Input:
A sound file specified by a directory path and filename in Unicode (UTF16) characters. The default sound effect as an example: \\Windows\\bleep.wav

Function Output:
A sound file specified by a directory path and filename in Unicode (UTF16) characters (254 characters in length at the maximum).

Error Codes:
0 20015 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 568 / 712

Nordic ID MHL Manual

Boolean Scanner.SoundFailed.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply sound effect to the unsuccessful reading of a symbol.

Function Input:
TRUE = Signal the failed reading FALSE = Do not signal the failed reading

Function Output:
TRUE = Signal is in use FALSE = No signal

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 569 / 712

Nordic ID MHL Manual

String Scanner.SoundSuccess
Min Chars: 0 Max Chars: 254 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a sound effect to be played after the successful reading.

Function Input:
A sound file specified by a directory path and filename in Unicode (UTF16) characters. The default sound effect as an example: \\Windows\\blep.wav

Function Output:
A sound file specified by a directory path and filename in Unicode (UTF16) characters (254 characters in length at the maximum).

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 570 / 712

Nordic ID MHL Manual

Boolean Scanner.SoundSuccess.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply sound effect to the successful reading of a symbol.

Function Input:
TRUE = Signal the successful reading FALSE = Do not signal the successful reading

Function Output:
TRUE = Signal is in use FALSE = No signal

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 571 / 712

Nordic ID MHL Manual

DWORD Scanner.Timeout
Min Value: 1 Max Value: 30 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets the time limit for the reading, if, for whatever reason, the Scanner does not succeed in reading the symbol.

Function Input:
Stop trying to read after this number of seconds if reading does not succeed before that.

Function Output:
Number of seconds after which the Scanner stops trying to read. Default is 10 seconds.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 572 / 712

Nordic ID MHL Manual

DWORD Scanner.TriggerMode
Min Value: 0 Max Value: 1 READ / WRITE Stored in MHL Profile.

Description:
The function acts as a selector to choose how the Scanner functions when triggered.

Function Input:
0 = Read until the timer expires if the reading does not succeed before that 1 = Read as long as the scan key is being held down or the reading succeeds

Function Output:
0 = Scanner reads until the timer expires if the reading does not succeed before that 1 = Scanner reads as long as the scan key is being held down or the reading succeeds

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 573 / 712

Nordic ID MHL Manual

DWORD Scanner.TrimEnd [Laser]


Min Value: 0 Max Value: 5 READ / WRITE Stored in MHL Profile.

Description:
The function applies removal of characters to the reading. From 1 to 5 characters can be removed from the end of the decoded scan result.

Function Input:
Number of characters to be removed (zero means no removal)

Function Output:
Number of characters to be removed (zero means no removal)

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 574 / 712

Nordic ID MHL Manual

DWORD Scanner.TrimStart [Laser]


Min Value: 0 Max Value: 5 READ / WRITE Stored in MHL Profile.

Description:
The function applies removal of characters to the reading. From 1 to 5 characters can be removed from the beginning of the decoded scan result.

Function Input:
Number of characters to be removed (zero means no removal)

Function Output:
Number of characters to be removed (zero means no removal)

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 575 / 712

Nordic ID MHL Manual

Boolean Scanner.VibFailed.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to apply vibration to the unsuccessful reading of a symbol.

Function Input:
TRUE = Signal with vibration the failed reading FALSE = Don\'t vibrate after the failed reading

Function Output:
TRUE = Vibration is in use FALSE = No vibration to indicate the failed reading

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 576 / 712

Nordic ID MHL Manual

String Scanner.VibFailed.Pattern
Min Chars: 0 Max Chars: 254 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets a vibration spec of the unsuccessfull reading.

Function Input:
A vibration specified by pulse pattern in Unicode (UTF16) characters. The default pulse pattern as an example (the braces {} are not part of the spec): {200,70,200,70,200}.

Function Output:
A vibration spec in Unicode (UTF16) characters (254 characters in length at the maximum).

Error Codes:
0 20015 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 577 / 712

Nordic ID MHL Manual

Boolean Scanner.VibSuccess.Enable
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on on-off switch to apply vibration to the successful reading of a symbol.

Function Input:
TRUE = Signal with vibration the successful reading FALSE = Do not vibrate after the successful reading

Function Output:
TRUE = Vibration is in use FALSE = No vibration to indicate the successful reading

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 578 / 712

Nordic ID MHL Manual

String Scanner.VibSuccess.Pattern
Min Chars: 0 Max Chars: 254 READ / WRITE Stored in MHL Profile.

Description:
The function sets/gets vibration spec of the successfull reading.

Function Input:
A vibration specified by pulse pattern in Unicode (UTF16) characters. The default pulse pattern as an example (the braces {} are not part of the spec): {300} (See also the pulse pattern example of an unsuccesful reading).

Function Output:
A vibration spec in Unicode (UTF16) characters (254 characters in length at the maximum).

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 579 / 712

Nordic ID MHL Manual

Boolean Scanner.VideoPreview.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable an on-screen viewfinder.

Function Input:
TRUE = Show the viewfinder window on the screen during the reading of a code label. FALSE = Disable the on-screen viewfinder.

Function Output:
TRUE = When reading of code label is triggered the viewfinder window pops up on the screen, and disappears when reading ends. FALSE = No on-screen viewfinder in use.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 580 / 712

Nordic ID MHL Manual

Boolean Scanner.VideoReverse.Enable [Imager]


TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
The function acts as an on-off switch to enable/disable decoding of the code lables printed on the black background. For example, in the case of a bar code, the bars are white and the spaces are black.

Function Input:
TRUE = Use reverse-video mode to read white code patterns on the black backround. FALSE = Return to reading of black code patterns on the white backround.

Function Output:
TRUE = Reading of white code patterns on the black backround in use. FALSE = Reading of black code patterns on the white backround in use.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 581 / 712

Nordic ID MHL Manual

Utility - 1.0.0
The Utility driver contains a collection of functions not specifically linked to any individual hardware feature. In short, any functionality that has been required but has not been big enough to warrant its own driver has been put into the Utility driver.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 582 / 712

Nordic ID MHL Manual

String HWInfo.ConfigString
Min Chars: 0 Max Chars: 11 READ ONLY NOT stored in MHL Profile.

Description:
The configuration string is a 9 digit code that specifies the hardware setup of a device. It is an internal production code and there is no maintained code guide available. For this reason if you want to detect if a certain hardware feature is present, attempt to open its corresponding MHL feature driver. This code can be used to determine if a device corresponds to a known hardware combination, but it is not recommended as devices that are functionally the same may be released from production with different configuration codes. An example of a valid code is 221220-810. The dash is always included in the string.

Return Value:
Returns the device configuration code string

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 583 / 712

Nordic ID MHL Manual

String HWInfo.CPUCoreString
Min Chars: 0 Max Chars: 30 READ ONLY NOT stored in MHL Profile.

Description:
Returns the ARM core type and hardware revision of the processor.

Return Value:
Returns the CPU core version and revision code. In both the Morphic and Merlin this string will be formatted like this: ARM1136JF-S (revision)

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 584 / 712

Nordic ID MHL Manual

DWORD HWInfo.CPUVer
Min Value: 0 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
Returns the numeric part of Nordic ID's mainboard version number. The board version is mostly not interesting to application developers, it is used in the Hardware Abstraction Layer to control the hardware correctly.

Return Value:
Returns the CPU board version number.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 585 / 712

Nordic ID MHL Manual

String HWInfo.CPUVersionString
Min Chars: 0 Max Chars: 9 READ ONLY NOT stored in MHL Profile.

Description:
Get the CPU board version as string. The board version is mostly not interesting to application developers, it is used in the Hardware Abstraction Layer to control the hardware correctly. The board version at the time of writing this was PWM00115. The boards with NXP WLAN chips are PWM00098 also known as Revision D.

Return Value:
Returns the CPU board version number as string.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 586 / 712

Nordic ID MHL Manual

DWORD HWInfo.FlashSize
Min Value: 0 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
Get the internal NAND flash chip size in bytes. Note that this is not exactly equal to 128 megabytes even when new as NAND memory as a technology typically contains bad blocks straight from the factory. http://en.wikipedia.org/wiki/NAND_flash#NAND_memories NOTE: This does not include NOR flash size. The NOR flash memory used to store the operating system, patch packets, bootloader, device information and the permanent registry in the Morphic and Merlin is typically 32 megabytes, and never smaller.

Return Value:
Returns the flash chip size in bytes.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 587 / 712

Nordic ID MHL Manual

String HWInfo.NIDItemCode
Min Chars: 0 Max Chars: 9 READ / WRITE Stored in MHL Profile.

Description:
Get the device item code (A.K.A. Type Code). This code is used in the price lists of Nordic ID to designate specific hardware combinations, and can be used to order more of a specific type of device. It can also be used to verify that a device is of the correct type if only one kind of device is allowed. It should not be used to detect hardware features as there is no maintained list of item codes to hardware configuration other than the pricelist, and this is subject to change. Hardware features should be detected by attempting to open their MHL feature driver.

Return Value:
Returns the device item code (A.K.A. Type Code) string. This is a five number string preceeded by three letters. At the time of writing Morphic and Merlin variants available were: HTB00001 Nordic ID Morphic NXP WLAN Laser HTB00002 Nordic ID Morphic Edge Laser HTB00005 Nordic ID Morphic Edge Imager HTB00003 Nordic ID Morphic Summit WLAN Imager HTB00006 Nordic ID Morphic Summit WLAN Laser HTB00007 Nordic ID Morphic Summit WLAN Edge Laser HTB00008 Nordic ID Morphic Summit WLAN Edge Imager HTB00009 Nordic ID Morphic UHF RFID Summit WLAN Edge laser HTB00012 Nordic ID Morphic UHF RFID Edge Laser HTB00014 Nordic ID Morphic UHF RFID Edge HTB00016 Nordic ID Morphic UHF RFID Summit WLAN HTB00015 Nordic ID Morphic UHF RFID Summit WLAN Laser HTE00010 Merlin HT Black UHF HTE00011 Merlin HT Black UHF WLAN HTE00012 Merlin HT Black UHF GPRS HTE00013 Merlin HT Black UHF WLAN GPRS HTE00018 Merlin HT Black UHF Laser HTE00019 Merlin HT Black UHF Laser WLAN HTE00020 Merlin HT Black UHF Laser GPRS HTE00021 Merlin HT Black UHF Laser WLAN GPRS HTE00014 Merlin HT Black UHF Imgr2D HTE00015 Merlin HT Black UHF Imgr2D WLAN

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 588 / 712

Nordic ID MHL Manual

HTE00016 Merlin HT Black UHF Imgr2D GPRS HTE00017 Merlin HT Black UHF Imgr2D WLAN GPRS HTE00022 Merlin HT Black Cross Dipole UHF HTE00023 Merlin HT Black Cross Dipole UHF WLAN HTE00024 Merlin HT Black Cross Dipole UHF GPRS HTE00025 Merlin HT Black Cross Dipole UHF WLAN GPRS HTE00026 Merlin HT Black Cross Dipole UHF Imgr2D HTE00027 Merlin HT Black Cross Dipole UHF Imgr2D WLAN HTE00028 Merlin HT Black Cross Dipole UHF Imgr2D GPRS HTE00029 Merlin HT Black Cross Dipole UHF Imgr2D WLAN GPRS HTE00030 Merlin HT Black Cross Dipole UHF Laser HTE00031 Merlin HT Black Cross Dipole UHF Laser WLAN HTE00032 Merlin HT Black Cross Dipole UHF Laser GPRS HTE00033 Merlin HT Black Cross Dipole UHF Laser WLAN GPRS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 589 / 712

Nordic ID MHL Manual

DWORD HWInfo.RamSize
Min Value: 0 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
This function returns the amount of Physical RAM memory available to the OS. This is always the size of the DDR RAM chips minus the size of the operating system image uncompressed. In a 128 mb Morphic it is typically 80-90 mb. In a 256 mb Morphic/Merlin it is usually more than 210 mb. This memory is then divided into program memory and object store memory according to the division slider in Control Panel / System / Memory.

Return Value:
Returns the RAM chip size in bytes.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 590 / 712

Nordic ID MHL Manual

String HWInfo.SerialString
Min Chars: 0 Max Chars: 11 READ ONLY NOT stored in MHL Profile.

Description:
Get the device serial number. This is unique for every device and can be therefore to identify device. The code is always 10 characters long and is made up like this M YY WW COUNT where: M is a character code for the manufacturing place. YY is the manufacturing year's last two digits. WW is the manufacturing week (1-52). COUNT is a running number. A valid serial example is: K102403495

Return Value:
Returns the device serial number string.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 591 / 712

Nordic ID MHL Manual

DWORD Utility.BatteryLevel
Min Value: 0 Max Value: 255 READ ONLY NOT stored in MHL Profile.

Description:
Returns a percentage value representing the charge level left in the battery. If the unit is currently in the desktop charger this function returns the value 255.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 592 / 712

Nordic ID MHL Manual

String Utility.BootloaderItemCode
Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
Returns the Bootloader item code. This is an internal production tracking number used by Nordic ID.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 593 / 712

Nordic ID MHL Manual

String Utility.BootloaderVersion
Min Chars: 5 Max Chars: 10 READ ONLY NOT stored in MHL Profile.

Description:
Returns the current bootloader version of the unit. This is a Nordic ID internal version numbering for Bootloaders released to production and the format is MajorVersion_MinorVersion_Patch. Bootloaders always have the last number set to zero. If this function returns anything other than a version number in the correct format your unit does not have an approved production bootloader. An example of a valid version number is 2_2_0.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 594 / 712

Nordic ID MHL Manual

DWORD Utility.ConnectionStatus
Min Value: 0 Max Value: 5 READ ONLY NOT stored in MHL Profile.

Description:
Get the current active network connection operational status. This function retrieves the operational status of the last operational adapter found, if there are more than one it may return the status of either one.

Function Output:
0 - IF_OPER_STATUS_NON_OPERATIONAL Valid for LAN Interfaces. Means the card is not working or not plugged in or has no address. 1 - IF_OPER_STATUS_UNREACHABLE Valid for WAN Interfaces. Means the remote site is not reachable at this time. 2 - IF_OPER_STATUS_DISCONNECTED Valid for WAN Interfaces. Means the remote site is not connected at this time. 3 - IF_OPER_STATUS_CONNECTING Valid for WAN Interfaces. Means a connection attempt has been initiated to the remote site. 4 - IF_OPER_STATUS_CONNECTED Valid for WAN Interfaces. Means the remote site is connected. 5 - IF_OPER_STATUS_OPERATIONAL Valid for LAN Interfaces. Means the card is plugged in and working.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 595 / 712

Nordic ID MHL Manual

DWORD Utility.ConnectionType
Min Value: 0 Max Value: 2147483647 READ ONLY NOT stored in MHL Profile.

Description:
Returns the type of the first active network adapter found. If you need to check for a specific type of network adapter and it is possible that there are several active adapters, do not use this function. The ActiveSync USB adapter is not counted as a valid adapter. Common values: #define #define #define #define #define #define #define MIB_IF_TYPE_OTHER 1 MIB_IF_TYPE_ETHERNET 6 MIB_IF_TYPE_TOKENRING 9 MIB_IF_TYPE_FDDI 15 MIB_IF_TYPE_PPP 23 MIB_IF_TYPE_LOOPBACK 24 MIB_IF_TYPE_SLIP 28

The full table of values is what the WIN32 API function GetIfTable can return.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 596 / 712

Nordic ID MHL Manual

String Utility.IpAdrress
Min Chars: 0 Max Chars: 16 READ ONLY NOT stored in MHL Profile.

Description:
Get the current IP address of any currently active network adapter.

Return Value:
Returns the current IP address in format 123.123.123.123. If there are no adapters present with valid ip addresses the function returns a null string. If there are more than one adapter with valid IP's it returns the last one of them that is found.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 597 / 712

Nordic ID MHL Manual

String Utility.MacAddress
Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
Get the MAC address of the currently active network adapter.

Return Value:
Returns the current MAC address in the format xx:xx:xx:xx:xx:xx. If there are no operational network adapters present the function returns a null string.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 598 / 712

Nordic ID MHL Manual

String Utility.NetworkAdapter
Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
Get the currently active network adapter name.

Return Value:
Returns the currently active network adapters name. If there are no adapters active, the function returns a null string. If there are more than one it returns the last one found.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 599 / 712

Nordic ID MHL Manual

DWORD Utility.ProgrammableLed [Merlin]


Min Value: 0 Max Value: 3 READ / WRITE Stored in MHL Profile.

Description:
This function sets the state of the device programmable led. Acceptable values for led state are:

0 = Led off 1 = Green 2 = Orange 3 = Red

NOTE: This function is only available from Merlin image version 1.7.0 and newer.

Function Input:
The state of the led as described above.

Function Output:
Currently set led state.

Error Codes:
0 20004 ERROR_SUCCESS MHL_OUT_OF_RANGE

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 600 / 712

Nordic ID MHL Manual

DWORD Utility.ResetDevice
Min Value: 0 Max Value: 3 READ ONLY NOT stored in MHL Profile.

Description:
Trigger a device reset. Note that this function takes effect immediately and any unsaved information will be lost. NOTE: Option number 3, set factory defaults and reset is fairly dangerous and should not be used without due consideration. It does have its use if you have all required settings in a Customizer packet and want to ensure the device is in a known state regardless of what a previous user has configured and saved to permanent registry with RegBackup. Also note that the touch screen calibration will be lost and the calibration screen will appear after the unit has restarted.

Function Input:
0 = Warm Reset - filesystem and registry is preserved. 1 = Cold Reset - clean filesystem and registry. Saved registry is restored. 2 = Reload Windows CE - clean filesystem and registry. Saved registry is restored. OS loaded again from flash. 3 = Set factory defaults and reset. - clean filesystem, registry is restored to factory default settings.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 601 / 712

Nordic ID MHL Manual

DWORD Utility.SignalStrength
Min Value: 0 Max Value: 100 READ ONLY NOT stored in MHL Profile.

Description:
Get the signal strength of the WLAN network adapter, if such an adapter is present and operational. NOTE: The value is only valid when connected to access point.

Function Output:
Returns the WLAN adapter signal strength in percent.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 602 / 712

Nordic ID MHL Manual

String Utility.SWItemCode
Min Chars: 9 Max Chars: 9 READ ONLY NOT stored in MHL Profile.

Description:
Returns the OS image / firmware item code. This is an internal production tracking number used by Nordic ID.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 603 / 712

Nordic ID MHL Manual

String Utility.SWVersion
Min Chars: 5 Max Chars: 10 READ ONLY NOT stored in MHL Profile.

Description:
Returns the current firmware version of the unit. This is a Nordic ID internal version numbering for OS images released to production and the format is MajorVersion_MinorVersion_Patch. The OS images always has the last number set to zero, so if it is not zero there is a patch packet present in your unit. If this function returns anything other than a version number in the correct format your unit does not have an approved production image. An example of a valid version number is 1_8_0.

Function Output:
Firmware / Operating System Image version number.

Error Codes:
0 ERROR_SUCCESS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 604 / 712

Nordic ID MHL Manual

DWORD Utility.Temperature
Min Value: 2147450880 Max Value: 32767 READ ONLY NOT stored in MHL Profile.

Description:
Battery temperature in tens of Celsius degrees. Theoretical temperature range is 3276.8 to 3276.7. Cast this value to an integer to get proper negative values, or if that is inconveninent check if the value is over 32767 and in that case subtract 0xFFFFFFFF. To get the temperature in whole degrees instead of tenth of degrees, divide the value by ten. If the battery temperature is zero degrees or under battery charging is disabled.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 605 / 712

Nordic ID MHL Manual

WLAN - 1.0.0
This driver contains functions to check and modify the state of the 802.11b/g adapter.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 606 / 712

Nordic ID MHL Manual

String WLAN.AdapterName
Min Chars: 0 Max Chars: 128 READ ONLY Stored in MHL Profile.

Description:
Returns the NDIS name of any operational 802.11b/g/n adapter present.

Function Output:
Adpater name or null string if no adapter found.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 607 / 712

Nordic ID MHL Manual

Boolean WLAN.Associated
TRUE / FALSE READ ONLY Stored in MHL Profile.

Description:
Tells you if there is a NDIS 802.11a/b/g/n adapter present that is associated to an AP or not.

Function Output:
Returns TRUE if there is an operational adapter present that is associated, FALSE in all other cases.

Error Codes:
0 21 ERROR_SUCCESS ERROR_NOT_READY

Relevant Code Samples:


WLAN Driver IP, MAC & SSID query. - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 608 / 712

Nordic ID MHL Manual

Boolean WLAN.Connected
TRUE / FALSE READ ONLY Stored in MHL Profile.

Description:
Tells you if there is an operational 802.11a/b/g/n adapter present that is connected to an Access Point or AdHoc network.

Function Output:
Returns TRUE if there is a connected adapter present.

Error Codes:
0 21 ERROR_SUCCESS ERROR_NOT_READY

Relevant Code Samples:


WLAN Driver IP, MAC & SSID query. - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 609 / 712

Nordic ID MHL Manual

String WLAN.Connected.BSSID
Min Chars: 0 Max Chars: 18 READ ONLY NOT stored in MHL Profile.

Description:
Basic Service Set Identifier (BSSID) is the MAC address of the access point. If there is an operational adapter present that is associated to an AP, this function will return its BSSID. Wikipedia BSSID article.

Function Output:
MAC address of AP (BSSID) or null string.

Error Codes:
0 20015 21 1168 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL ERROR_NOT_READY ERROR_NOT_FOUND

Relevant Code Samples:


WLAN Driver IP, MAC & SSID query. - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 610 / 712

Nordic ID MHL Manual

String WLAN.Connected.SSID
Min Chars: 0 Max Chars: 32 READ ONLY NOT stored in MHL Profile.

Description:
Returns the SSID of any operational NDIS 802.11a/b/g/n adapter that is connected to an Access Point.

Function Output:
The SSID that the adapter is connected to or null string otherwise.

Error Codes:
0 21 1168 ERROR_SUCCESS ERROR_NOT_READY ERROR_NOT_FOUND

Relevant Code Samples:


WLAN Driver IP, MAC & SSID query. - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 611 / 712

Nordic ID MHL Manual

String WLAN.IpAddress
Min Chars: 0 Max Chars: 0 READ ONLY Stored in MHL Profile.

Description:
Returns the IP address of any operational NDIS 802.11b/g/n adapter present.

Function Output:
IP address in the form xxx.xxx.xxx.xxx or null string if not available.

Error Codes:
0 20015 21 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL ERROR_NOT_READY

Relevant Code Samples:


WLAN Driver IP, MAC & SSID query. - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 612 / 712

Nordic ID MHL Manual

String WLAN.MacAddress
Min Chars: 0 Max Chars: 17 READ ONLY NOT stored in MHL Profile.

Description:
Returns the MAC address of any NDIS 802.11b/g/n adapter that is operational.

Function Output:
MAC Address

Error Codes:
0 20015 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL

Relevant Code Samples:


WLAN Driver IP, MAC & SSID query. - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 613 / 712

Nordic ID MHL Manual

Boolean WLAN.Power
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
This function can be used to control the power state of the 802.11b/g/n adapter and to query its current power state. It is device and adapter independent so any NDIS network adapter that is installed and working properly for both the Morphic and Merlin is controllable.

Function Input:
Set to TRUE to power up the device, FALSE to power down. If the current state is already the same as the requested state, nothing happens.

Function Output:
Returns TRUE if there is a working NDIS 802.11b/g/n adapter attached that is powered up, otherwise FALSE.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 614 / 712

Nordic ID MHL Manual

DWORD WLAN.SignalStrength
Min Value: 0 Max Value: 100 READ ONLY Stored in MHL Profile.

Description:
Returns a precent value representing the 802.11a/b/g/n adapters current signal strength as reported by the driver.

Function Output:
Signal strength in percent.

Error Codes:
0 21 ERROR_SUCCESS ERROR_NOT_READY

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 615 / 712

Nordic ID MHL Manual

Integer WLAN.SignalStrength.dBm
Min Value: -200 Max Value: 0 READ ONLY Stored in MHL Profile.

Description:
Returns the 802.11a/b/g/n signal strength in dBm as reported by the driver.

Function Output:
Signal strength in dBm

Error Codes:
0 21 ERROR_SUCCESS ERROR_NOT_READY

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 616 / 712

Nordic ID MHL Manual

WWAN - 1.0.0
This Driver handles all WWAN functionality for the unit. These include: GSM GPRS/EDGE SMS

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 617 / 712

Nordic ID MHL Manual

String WWAN.APN
Min Chars: 0 Max Chars: 101 READ / WRITE Stored in MHL Profile.

Description:
This function is used to set and get the APN for the WWAN data connection. This is a setting that is completely dependent on your operator / SIM card provider, Nordic ID cannot provide you with this information.

This link is to a 3rd party site that lists APN settings, it is in no way affiliated with Nordic ID and you use it at your own risk. It may help if you are having trouble finding your operators settings:

http://www.taniwha.org.uk/gprs.html

Function Input:
The new desired Access Point Name. Note that this has no effect for active connections and is only used when forming a data connection.

Function Output:
Returns a string containing the currently configured Access Point Name.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 618 / 712

Nordic ID MHL Manual

Execute WWAN.ATCmdCancel
WRITE ONLY NOT stored in MHL Profile.

Description:
Stop the execution of an AT Command previously issued trough ATCmdSend. Note that to use this command your application needs to be multithreaded as ATCmdSend is synchronous. The exact internal behavior of the cancel command depends on the underlying hardware. The WWAN driver may just stop waiting for the command to return a reply or it may tell the GPRS/EDGE/3G module to cancel execution of the command if such functionality is supported.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 619 / 712

Nordic ID MHL Manual

String WWAN.ATCmdSend
Min Chars: 0 Max Chars: 1024 READ / WRITE NOT stored in MHL Profile.

Description:
This function is used to send a custom AT Command to the GPRS / EDGE / 3G module. Note that you need to know what you are doing when using this command. It is possible to break the WWAN driver by changing modem parameters so that it no longer works as the WWAN driver has previously configured it to work. Use this command at your own risk. Also remember to set the ATCmdTimeout value as some commands such as scanning for Network providers takes a lot of time. It is recommended you do not call this function from your user interface thread as it is synchronous and will lock the thread until the module provides an answer or the timeout occurs.

Function Input:
The AT Command string to send to the modem. Remember the terminating row feed '\r'.

Function Output:
If the function returns true when sending the AT Command you can read back the reply, if it returned FALSE there may be an error description available, or a null string if the timeout occurred. WWAN.LastCMEError may also provide more information.

Return Value:
TRUE when writing if the modem responded to the AT Command with an OK, FALSE if it failed or the timeout occurred.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 620 / 712

Nordic ID MHL Manual

DWORD WWAN.ATCmdTimeout
Min Value: 100 Max Value: 60000 READ / WRITE NOT stored in MHL Profile.

Description:
Set the timeout value for subsequent ATCmdSend calls. The ATCmdSend call will return with an error after that time if no response has been received from the modem.

Function Input:
The desired timeout value in milliseconds. A value of 1000 means one second.

Function Output:
The current timeout value in milliseconds.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 621 / 712

Nordic ID MHL Manual

Boolean WWAN.AutoConnect
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
If automatic connecting is enabled, the connection is established automatically after reboot and wakeup. If the connection is lost, it will not be automatically re-established unless the device is rebooted or woken from suspend mode. LinkWatchdog can be used to monitor and automatically re-establish lost connections.

Function Input:
Set the value to TRUE in order to enable and FALSE to disable the automatic connecting.

Function Output:
The current setting for the Automatic Connect feature.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 622 / 712

Nordic ID MHL Manual

Boolean WWAN.AutoEnterPin
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
If automatic PIN code handling is enabled, the driver will enter the PIN code whenever needed. This can be enabled only if the SIM is currently unlocked. The SIM PIN code is then stored in encrypted form in the device registry, and can therefore be automatically entered when next needed.

Function Input:
Set the value to TRUE in order to enable and FALSE to disable the automatic PIN code handling

Function Output:
The current AutoEnterPin setting.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 623 / 712

Nordic ID MHL Manual

String WWAN.ChangePin
Min Chars: 0 Max Chars: 8 WRITE ONLY NOT stored in MHL Profile.

Description:
Change the PIN code. The SIM must be unlocked by entering the correct PIN code using WWAN.PinCode before attempting to change the PIN.

Function Input:
The new PIN code.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 624 / 712

Nordic ID MHL Manual

Execute WWAN.Connect
WRITE ONLY NOT stored in MHL Profile.

Description:
Connect to a network. It is recommended to call WWAN.ConnectionState to check that the connection state is Disconnected before calling Connect. If the state is Connecting it is recommended to wait until the state changes to Disconnected before calling Connect.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 625 / 712

Nordic ID MHL Manual

Boolean WWAN.Connected
TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
* Deprecated. Use ConnectionState instead. *

Function Output:
Returns TRUE or FALSE depending on whether the GPRS connection is active or not.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 626 / 712

Nordic ID MHL Manual

DWORD WWAN.ConnectionState
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function returns the current state of the GPRS / EDGE / 3G data connection.

Function Output:
Possible states:

0 = Disconnected 1 = Connected 2 = Connecting

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 627 / 712

Nordic ID MHL Manual

String WWAN.CurrentNetwork
Min Chars: 0 Max Chars: 0 READ ONLY NOT stored in MHL Profile.

Description:
* Deprecated. Use NetworkName instead *

Function Output:
Returns the name of the current network.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 628 / 712

Nordic ID MHL Manual

Execute WWAN.Disconnect
WRITE ONLY NOT stored in MHL Profile.

Description:
check that the connection state is Connected before calling Disconnect. If the state is Connecting it is recommended to wait until the state changes to Connected before calling Disconnect.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 629 / 712

Nordic ID MHL Manual

DWORD WWAN.DriverState
Min Value: 0 Max Value: 4 READ ONLY NOT stored in MHL Profile.

Description:
Returns the current state of the WWAN driver. Possible values are:

0 - WWAN_STATE_DEAD

The driver has shut itself down due to a critical error. See \Windows\WWAN.txt for details.

1 - WWAN_STATE_DISABLED

The driver is disabled by user setting. Call WWAN.Enable or go to the Control Panel WWAN app to enable.

2 - WWAN_STATE_WAITMUX

The driver is waiting for the Serial Port Multiplexer driver to report that it is up and running.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 630 / 712

Nordic ID MHL Manual

3 - WWAN_STATE_WAKING

The driver has control of the modem and is confguring it for WWAN operation.

4 - WWAN_STATE_RUNNING

The driver is operational and ready to perform all commands.

These same states are also sent with the WWAN_EVENT_DRIVERSTATE event. See the WWAN.Event functions for event reporting.

Function Output:
One of the values listed above.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 631 / 712

Nordic ID MHL Manual

String WWAN.DTMF.Play
Min Chars: 0 Max Chars: 1 WRITE ONLY NOT stored in MHL Profile.

Description:
This function plays DTMF sounds over an open audio phone connection. It takes an one character string as its input, that character must be one of the valid phone keys. These are:

1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, #, A, B, C, D

Function Input:
The DTMF key sound to play.

Error Codes:
0 87 21 ERROR_SUCCESS ERROR_INVALID_PARAMETER ERROR_NOT_READY

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 632 / 712

Nordic ID MHL Manual

Boolean WWAN.Enable
TRUE / FALSE READ / WRITE NOT stored in MHL Profile.

Description:
This function controls the WWAN driver's activity and modem power state. Note that it is asynchronous meaning that it returns before the modem has been fully powered down or up. So if you call the function more than once with less than a few seconds between the calls, you must use WWAN.DriverState to monitor that the last desired state has taken effect before changing the state again.

Function Input:
Set the value to TRUE in order to enable and FALSE to disable the radio.

Function Output:
TRUE if WWAN is currently enabled, FALSE if it is disabled.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 633 / 712

Nordic ID MHL Manual

Boolean WWAN.EnableDuringSleep
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
This function controls whether the modem should remain powered even when the rest of the device goes to sleep. This enables the device to recieve calls and SMS (and wake up) even when in sleep mode. If the NID Phone application is in use, this feature is always enabled. Note that normally when the Morphic or Merlin sleeps, they consume less than 1 mA of power. For the Morphic this means up to a month of sleep time without draining the battery, the Merlin has an even bigger battery. With the EnableDuringSleep feature enabled the modem stays on, so its power consumption is added to the 1 mA. For the Enfora module in the Morphic, this means 5 - 45 mA depending on activity, thus dropping sleep time to 1 - 8 days.

Function Input:
TRUE to enable during sleep, FALSE to disable during sleep.

Function Output:
The current setting of the Enable During Sleep feature.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 634 / 712

Nordic ID MHL Manual

DWORD WWAN.Event.Count
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function returns the number of events queued up for processing. The event queue is 50 events long, if it reaches that length the earliest events are discarded when new events occur. See WWAN.Event.Pop for a detailed description of the event queue system.

Function Output:
The number of events in the event queue.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 635 / 712

Nordic ID MHL Manual

String WWAN.Event.Data
Min Chars: 0 Max Chars: 1024 READ ONLY NOT stored in MHL Profile.

Description:
This function returns any possible string data associated with the event at the front of the event queue. See WWAN.Event.Pop for a detailed description of the event queue system.

Function Output:
String data associated with the event or null string.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 636 / 712

Nordic ID MHL Manual

String WWAN.Event.Name
Min Chars: 0 Max Chars: 260 READ ONLY NOT stored in MHL Profile.

Description:
This function returns the name of the operating system event that signals the arrival of a new event in the event queue. Operating System events need to be accessed trough native calls (PInvoke) in .NET Compact Framework. Google returns lots of examples for how to do it when searching for "CreateEvent .NET". See WWAN.Event.Pop for a detailed description of the event queue system.

Function Output:
The name of the operating system event.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 637 / 712

Nordic ID MHL Manual

Boolean WWAN.Event.Pop
TRUE / FALSE READ ONLY NOT stored in MHL Profile.

Description:
The event system in WWAN is intended for applications that need to monitor the state of the WWAN driver. It is far more efficient that polling for state changes, as each time you call a function to check the status an AT Command may be fired to the modem. The event system on the other hand uses the modems own state change reporting abilities to notify applications of state changes. When some monitored state changes an event is placed in the WWAN event queue and the event signal is raised. Any applications that monitor the event signal then immediately know there is at least one event waiting in the event queue.

When the event signal is raised the application should then call WWAN.Event.Pop. This makes the event at the front of the queue available trough the event reading functions. It stays available until WWAN.Event.Pop is called again. The event type is identified by WWAN.Event.Type and is internally defined as follows:

Definitions for Morphic image 2.1.0 and later, Merlin image 1.4.0 and later

enum {

WWAN_EVENT_ERROR = 0xFFFFFFFF,

WWAN_EVENT_BASE = 1000,

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 638 / 712

Nordic ID MHL Manual

WWAN_EVENT_CLIP, //1001 WWAN_EVENT_NETREG, WWAN_EVENT_NOTUSED1, WWAN_EVENT_LINE, WWAN_EVENT_SHUTDOWN, //1005 WWAN_EVENT_MODEM_READY, WWAN_EVENT_SMS_READY, WWAN_EVENT_CALL_STATE, WWAN_EVENT_QUALITY, WWAN_EVENT_TIME, // 1010 WWAN_EVENT_SMS, WWAN_EVENT_SIM_STATUS, WWAN_EVENT_DRIVERSTATE, WWAN_EVENT_ENTERSLEEP, WWAN_EVENT_SSN_CSSI, WWAN_EVENT_SSN_CSSU, // 1016

WWAN_EVENT_LAST };

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 639 / 712

Nordic ID MHL Manual

The events have the following meaning:

WWAN_EVENT_ERROR

An error occurred that is not directly related to a command that was issued, or it occurs asynchronously. The WWAN.Event.Data should return a cleartext error explanation.

WWAN_EVENT_CLIP

Calling Line Identification Presentation. WWAN.Event.Data returns "<caller number>, <call type>, <CLI>".

WWAN_EVENT_NETREG

Network registration info. WWAN.Event.Data returns one of these strings:

"0" - Not registered, ME is currently not searching for new operator "1" - Registered to home network

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 640 / 712

Nordic ID MHL Manual

"2" - Not registered, but ME is currently searching for a new operator "3" - Registration denied "4" - Unknown (No Service) "5" - Registered, roaming

WWAN_EVENT_LINE

Phone line event occurred. WWAN.Event.Data returns one of these:

"RING" "ALERTING" "CONNECT" "NO CARRIER" "BUSY" "NO ANSWER"

WWAN_EVENT_SHUTDOWN

The WWAN driver is shutting itself down for sleep mode (a.k.a. suspend, hibernate). Any WWAN calls that require an operational modem are blocked until the WWAN_EVENT_MODEM_READY event is fired. These functions are available

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 641 / 712

Nordic ID MHL Manual

during this time:

WWAN.Enable, WWAN.EnableDuringSleep, WWAN.DriverState, WWAN.Username, WWAN.Password, WWAN.PrimaryDNS, WWAN.SecondaryDNS, WWAN.AutoEnterPin, WWAN.RequestPin, WWAN.ResumePin, WWAN.ConnectionState, WWAN.AutoConnect, WWAN.ServiceStatus

WWAN_EVENT_MODEM_READY

The modem and WWAN driver are ready to process AT Commands, meaning all WWAN commands may be issued.

WWAN_EVENT_SMS_READY

The modem reports SMS functionality is now available. If this event is supported by the hardware (Enfora supports it) it arrives some seconds after a valid PIN has been entered.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 642 / 712

Nordic ID MHL Manual

WWAN_EVENT_CALL_STATE

This event arrives to notify the application level that one or more active calls state has changed. Note that call state management is not handled by WWAN and in order to monitor and manage it you need to implement standard call state AT commands according to the modem manual for the hardware currently in use.

WWAN_EVENT_QUALITY

One or more of the signal quality metrics have changed. WWAN.Event.Data returns a string containing:

"<rssi>, <ber>, <level>"

These parameters follow the standard format of AT+CSQ. The level parameter is a value from 0 to 5 where 5 is 100% signal and zero is no signal. Google AT+CSQ for more info. Some information available here: http://www.gprsmodems.co.uk/images/csq1.pdf http://cinterion-m2m.ru/document_52.html?ADB79B0A5589B97B029D7C1C49B75ED1

WWAN_EVENT_TIME

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 643 / 712

Nordic ID MHL Manual

The operator has sent updated time information. WWAN.Event.Data returns a string in the following format:

<date>,<time><timeZoneOffset>,<daylightSavingsTime>

Example: "08/03/05,21:27:02-32,+0"

The timeZoneOffset value is in quarter hour increments, so -32 means minus four hours. Google NITZ for more information.

WWAN_EVENT_SMS

Notifies the application that a new decoded SMS message is available. The message is not available trough the event interface but through the WWAN.SMS functions. Note that if message decoding fails a WWAN_EVENT_ERROR event is sent with the data "Unable to decode incoming SMS message".

WWAN_EVENT_SIM_STATUS

Reports SIM card status changes as supported by hardware. The Enfora

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 644 / 712

Nordic ID MHL Manual

module (Morphic) sends unsolicited status notifications whereas the Cinterion module (Merlin) is polled after the PIN is sent to the modem. The WWAN.Event.Data contains one of the following numbers in string form:

enum { SIM_OK = 0, SIM_ERROR, //1 SIM_NOT_PRESENT, //2 SIM_LOCKED, //3 SIM_BLOCKED //4 };

WWAN_EVENT_DRIVERSTATE

The WWAN driver state has changed. The WWAN.Event.Data returns a string containing a number representing the same states used by WWAN.DriverState:

0 - WWAN_STATE_DEAD

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 645 / 712

Nordic ID MHL Manual

The driver has shut itself down due to a critical error. See \Windows\WWAN.txt for details.

1 - WWAN_STATE_DISABLED

The driver is disabled by user setting. Call WWAN.Enable or go to the Control Panel WWAN app to enable.

2 - WWAN_STATE_WAITMUX

The driver is waiting for the Serial Port Multiplexer driver to report that it is up and running.

3 - WWAN_STATE_WAKING

The driver has control of the modem and is confguring it for WWAN operation.

4 - WWAN_STATE_RUNNING

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 646 / 712

Nordic ID MHL Manual

The driver is operational and ready to perform all commands.

WWAN_EVENT_ENTERSLEEP

This event is always fired when the unit is entering sleep mode. If WWAN.EnableDuringSleep is set to true the WWAN_EVENT_DRIVERSTATE: WWAN_STATE_DISABLED event is not fired prior to this event, otherwise they arrive with this one coming last.

WWAN_EVENT_SSN_CSSI WWAN_EVENT_SSN_CSSU

Both CSSI and CSSU are standardized Supplementary Service Notification unsolictied modem responses that report changes in active voice calls. The modem response is returned as is through WWAN.Event.Data.

Function Output:
TRUE if an event was available in the queue and it was popped and is now available, FALSE if no event was available. Note that if it returned FALSE, there is now no valid event available for reading trough the other WWAN.Event functions.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 647 / 712

Nordic ID MHL Manual

DWORD WWAN.Event.TimeStamp
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
Returns the timestamp of the event. The timestamp is the system tick count at the time the event was fired, measured in milliseconds since the system was booted. If for some reason the actual clock time is required you can get the current tick count with the WIN32 API function GetTickCount() and subtract the timestamp from it. Then you know how many milliseconds ago the event occurred.

Function Output:
The tick count at the time the event occurred.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 648 / 712

Nordic ID MHL Manual

DWORD WWAN.Event.Type
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
Returns the event type code as documented in WWAN.Event.Pop.

Function Output:
The type of the event currently popped from the queue.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 649 / 712

Nordic ID MHL Manual

String WWAN.ICCID
Min Chars: 0 Max Chars: 20 READ ONLY NOT stored in MHL Profile.

Description:
Return SIM card integrated circuit card identifier (ICC-ID) if available. The ID is only available after a valid PIN has been entered and the SIM card is unlocked. Wikipedia Article on ICC-ID

Function Output:
ICC ID or null string if not available.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 650 / 712

Nordic ID MHL Manual

String WWAN.IMEI
Min Chars: 0 Max Chars: 64 READ ONLY NOT stored in MHL Profile.

Description:

Returns the International Mobile Equipment Identity (IMEI) code for the Modem hardware. This

uniquely identifies the modem in question. Unlike ICC-ID and IMSI this value is available

regardless of is the SIM is unlocked or not.

Function Output:
The IMEI code of the modem hardware.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 651 / 712

Nordic ID MHL Manual

String WWAN.IMSI
Min Chars: 0 Max Chars: 15 READ ONLY NOT stored in MHL Profile.

Description:
Returns the SIM International mobile subscriber identity (IMSI) code. Note that it is only available after the SIM is unlocked. Wikipedia Article on IMSI

Function Output:
IMSI code or null string if unavailable.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 652 / 712

Nordic ID MHL Manual

String WWAN.LastCMEError
Min Chars: 0 Max Chars: 1024 READ ONLY NOT stored in MHL Profile.

Description:
This command returns any available error explanation from the modem if the last issued AT Command failed. If the last issued command did not fail, this function returns an empty string. The error is copied as is from the modems CME error reply and is human readable, but the modems manual may be required to fully understand the error if it is related to a nonstandard AT Command.

Function Output:
The cleartext error explanation of the last AT Command, if that command failed. Otherwise an empty string.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 653 / 712

Nordic ID MHL Manual

String WWAN.Module
Min Chars: 0 Max Chars: 64 READ ONLY NOT stored in MHL Profile.

Description:
Returns the name of the GPRS / EDGE / 3G module as reported by the module itself.

Function Output:
The name of the modem module in use.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 654 / 712

Nordic ID MHL Manual

DWORD WWAN.NetworkCode
Min Value: 0 Max Value: 65 READ ONLY NOT stored in MHL Profile.

Description:
Get the code of the current network. You must call WWAN.SearchNetworks and then WWAN.NetworkIndex prior to calling this function. It returns the network code of the network at the index set by WWAN.NetworkIndex from the networks found by WWAN.SearchNetworks.

Function Output:
Returns the code of the currently selected network.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 655 / 712

Nordic ID MHL Manual

DWORD WWAN.NetworkCount
Min Value: 0 Max Value: 64 READ ONLY NOT stored in MHL Profile.

Description:
This function is called after WWAN.SearchNetworks to retrieve the number of networks found. It tells you the range of indexes that can now be used with WWAN.NetworkIndex.

Function Output:
The number of networks found by WWAN.SearchNetworks or zero if SearchNetworks has not been called yet.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 656 / 712

Nordic ID MHL Manual

DWORD WWAN.NetworkIndex
Min Value: 0 Max Value: 64 READ / WRITE NOT stored in MHL Profile.

Description:
Set the index into the list of operators found by WWAN.SearchNetworks. This allows you to query the details of that network by using WWAN.NetworkName and WWAN.NetworkCode. The valid range of indexes is from zero to whatever WWAN.NetworkCount returned.

Function Input:
The desired index into the list of found operators.

Function Output:
The currently selected index.

Relevant Code Samples:


How to search for networks with WWAN - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 657 / 712

Nordic ID MHL Manual

String WWAN.NetworkName
Min Chars: 0 Max Chars: 64 READ ONLY NOT stored in MHL Profile.

Description:
Get the name of the network currently selected with WWAN.NetworkIndex from the operator list found by WWAN.SearchNetworks.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 658 / 712

Nordic ID MHL Manual

DWORD WWAN.NetworkSelection
Min Value: 0 Max Value: 99999999 READ / WRITE NOT stored in MHL Profile.

Description:
Select a network to use or query if network autosearch is enabled.

Function Input:
The operator code of the network to use. This can be found using WWAN.SearchNetworks.

Function Output:
Zero if the GPRS / EDGE / 3G module is configured to automatically select the best network available. 0xFFFFFFFF if it has been configured to use a specific network.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 659 / 712

Nordic ID MHL Manual

String WWAN.Password
Min Chars: 0 Max Chars: 256 READ / WRITE Stored in MHL Profile.

Description:
Set the password for the network connection. Note that this setting is completely dependent on you operators requirements and not under Nordic ID's control.

This link is to a 3rd party site that lists APN settings, it is in no way affiliated with Nordic ID and you use it at your own risk. It may help if you are having trouble finding your operators settings:

http://www.taniwha.org.uk/gprs.html

Function Input:
The desired password for the GPRS / EDGE / 3G data connection.

Function Output:
The currently configured password for the GPRS / EDGE / 3G data connection.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 660 / 712

Nordic ID MHL Manual

Execute WWAN.Phone.Answer
WRITE ONLY NOT stored in MHL Profile.

Description:
Answer an incoming call. This only works if there is an incoming voice call ringing at the moment, data calls are not supported. The audio routing required to enable voice communication is not part of the WWAN driver, an MHL feature driver named Audio is development but was not available at the time of writing this. For information on how to receive an incoming call event, see WWAN.Event.Pop.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 661 / 712

Nordic ID MHL Manual

String WWAN.Phone.Call
Min Chars: 0 Max Chars: 40 WRITE ONLY NOT stored in MHL Profile.

Description:
Make a voice call to the phone number given as input. Any valid phone number is allowed, national or international format. Note that this call is asynchronous and always return immediately with an OK if there is a cellular network connection. You will have to implement call control AT commands trough ATCmdSend in order to monitor your call's progress and the event subsystem should also be used.

Function Input:
The number to dial.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 662 / 712

Nordic ID MHL Manual

String WWAN.Phone.CallerNumber
Min Chars: 0 Max Chars: 40 READ ONLY NOT stored in MHL Profile.

Description:
The phone number of the caller.

Function Output:
Returns the phone number of the currently incoming call, or the last incoming call if no call is currently incoming.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 663 / 712

Nordic ID MHL Manual

Execute WWAN.Phone.Hangup
WRITE ONLY NOT stored in MHL Profile.

Description:
Hang up on active voice call. If you do not have an active voice call when calling this function the call will fail.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 664 / 712

Nordic ID MHL Manual

DWORD WWAN.Phone.State
Min Value: 0 Max Value: 3 READ ONLY NOT stored in MHL Profile.

Description:
Returns the voice call state for the WWAN driver.

Function Output:
The current phone state, where the values mean:

0 - Unknown State

This state occurs if voice calls are not supported by the hardware, or the modem is not ready for voice calls.

1 - Ready The phone is ready to receive and make voice calls.

2 - Ringing There is currently and incoming and unanswered call active.

3 - In Call There is currently an active voice call in progress.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 665 / 712

Nordic ID MHL Manual

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 666 / 712

Nordic ID MHL Manual

String WWAN.PinCode
Min Chars: 0 Max Chars: 8 WRITE ONLY NOT stored in MHL Profile.

Description:
Send the PIN to the SIM card in order to unlock it. If you send an incorrect PIN, the lockout counter will decrease. Typically after three incorrect PIN entries the SIM locks itself after which you will need to use WWAN.PukCode to unlock it. To query the number of attempt left for either the PIN or the PUK code, use WWAN.SimLockRetries. To query the state of the SIM use WWAN.SimState.

Function Input:
The PIN of the SIM card.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 667 / 712

Nordic ID MHL Manual

DWORD WWAN.PreferredService
Min Value: 0 Max Value: 65535 READ / WRITE Stored in MHL Profile.

Description:
Set the data traffic service level desired. This function has no effect for the Morphic and Merlin available at the time of writing. It may be taken into use again for 3G hardware, but currently has no effect.

Function Input:
Do not use this function.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 668 / 712

Nordic ID MHL Manual

String WWAN.PrimaryDNS
Min Chars: 0 Max Chars: 32 READ / WRITE Stored in MHL Profile.

Description:
Set the primary Domain Name Server for you data connection. These settings are completely up to your service provider and are in no way controllable by Nordic id.

This link is to a 3rd party site that lists APN settings, it is in no way affiliated with Nordic ID and you use it at your own risk. It may help if you are having trouble finding your operators settings:

http://www.taniwha.org.uk/gprs.html

Function Input:
The desired primary DNS in dotted IP address format.

Function Output:
Returns a string containing the primary DNS.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 669 / 712

Nordic ID MHL Manual

String WWAN.PukCode
Min Chars: 0 Max Chars: 16 WRITE ONLY NOT stored in MHL Profile.

Description:
Send the PUK code to the SIM. The SIM needs to be blocked for this function to work. You can query the SIM if it is open, locked or blocked with WWAN.SimState. Note that sending the incorrect PUK code 10 times will permanently lock the SIM card.

Function Input:
The SIM PUK code.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 670 / 712

Nordic ID MHL Manual

Boolean WWAN.RequestPin
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
This function controls whether to ask the user to enter the PIN code when booting up. Note that if you also want the user to be asked the PIN code after waking up from suspend mode, you need to set WWAN.ResumePin as well. These settings have no effect if WWAN.AutoEnterPin is enabled.

Function Input:
TRUE to ask the user for PIN when necessary, FALSE to disable that feature.

Function Output:
TRUE if the user will be asked for PIN, FALSE if not.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 671 / 712

Nordic ID MHL Manual

Boolean WWAN.ResumePin
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
This function controls in combination with WWAN.RequestPin if the user should be asked for the PIN when the unit resumes operation after suspend mode. If WWAN.RequestPin is set to FALSE, this function has no effect. If WWAN.AutoEnterPin is set to TRUE this function has no effect.

Function Input:
TRUE to ask the user for PIN on resume, FALSE to disable this feature.

Function Output:
TRUE if Ask on Resume is enabled, FALSE otherwise.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 672 / 712

Nordic ID MHL Manual

Execute WWAN.SearchNetworks
WRITE ONLY NOT stored in MHL Profile.

Description:
Search for networks. This function call can take up to 45 seconds, so it is recommended to call it from a separate thread. When it returns and is successful you can call NetworkCount to retrieve the number of networks that were found. Call NetworkIndex, NetworkCode and NetworkSelection to select a network. See the code sample below for a code snippet from a working network scanning program.

Relevant Code Samples:


How to search for networks with WWAN - C Sharp

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 673 / 712

Nordic ID MHL Manual

String WWAN.SecondaryDNS
Min Chars: 0 Max Chars: 32 READ / WRITE Stored in MHL Profile.

Description:
Set the secondary Domain Name Server for you data connection. These settings are completely up to your service provider and are in no way controllable by Nordic id.

This link is to a 3rd party site that lists APN settings, it is in no way affiliated with Nordic ID and you use it at your own risk. It may help if you are having trouble finding your operators settings:

http://www.taniwha.org.uk/gprs.html

Function Input:
The desired secondary DNS in dotted IP address format.

Function Output:
Returns a string containing the secondary DNS.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 674 / 712

Nordic ID MHL Manual

DWORD WWAN.ServiceStatus
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
Returns the current service status. Possible values:

0 = Normal service, 1 = Emergency service, 2 = No Service, 3 = Access difficulty, 4 = Forbidden PLMN, 5 = Location area is forbidden, 6 = National Roaming is forbidden, 7 = Illegal mobile station, 8 = Illegal mobile equipment, 9 = IMSI unknown in HLR, 10 = Authentication failure, 11 = GPRS failed.

Function Output:
The current GSM / GPRS service status.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 675 / 712

Nordic ID MHL Manual

DWORD WWAN.ServiceType
Min Value: 0 Max Value: 4 READ ONLY NOT stored in MHL Profile.

Description:
Returns the data service type, with possible return values being:

0 - No Service 1 - GPRS 2 - EDGE 3 - UTMS 4 - HSDPA

Function Output:
The current data service type.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 676 / 712

Nordic ID MHL Manual

DWORD WWAN.SignalStrength
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
Returns the current signal strength as reported by the GPRS / EDGE / 3G module.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 677 / 712

Nordic ID MHL Manual

DWORD WWAN.SimLockRetries
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
Returns the number of PIN or PUK code entry attempts you have left depending on the SIM state. Query the SIM state with WWAN.SimState.

Function Output:
The number of attempts left.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 678 / 712

Nordic ID MHL Manual

Boolean WWAN.SimPinUsed
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
This function can be used to query if the PIN is in use for the SIM card and to disable/enable use of the PIN. When disabling use of the PIN, you must first enter the correct PIN (even if the SIM is currently unlocked) by using the function WWAN.SimPinUsed.SetPin. The same goes for enabling the PIN when it is disabled, you must first enter the PIN with WWAN.SimPinUsed.SetPin before you can call this function to enable it. You must therefore know what the PIN is, even tough it is not in use.

Function Input:
Set to TRUE to enable PIN use, FALSE to disable.

Function Output:
TRUE if PIN is currently in use, FALSE if it is not.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 679 / 712

Nordic ID MHL Manual

String WWAN.SimPinUsed.SetPin
Min Chars: 0 Max Chars: 8 WRITE ONLY NOT stored in MHL Profile.

Description:
This function is used before calling WWAN.SimPinUsed to enter the PIN as it is required prior to enabling or disabling PIN usage, even if the SIM is currently unlocked.

Function Input:
A valid PIN for the current SIM card.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 680 / 712

Nordic ID MHL Manual

DWORD WWAN.SimState
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
Returns the current state of the SIM card, possible return values are:

0 - SIM OK (Unlocked) 1 - SIM Error, the SIM does not work properly 2 - SIM not present 3 - SIM Locked, enter PIN to unlock 4 - SIM Blocked, enter PUK to unlock

Function Output:
The current SIM card state.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 681 / 712

Nordic ID MHL Manual

DWORD WWAN.SMS.Count
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
This function returns the number of SMS incoming messages are queued up for processing by WWAN.

Function Output:
The number of incoming SMS messages available.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 682 / 712

Nordic ID MHL Manual

Binary WWAN.SMS.Data
Min Bytes: 0 Max Bytes: 4096 READ / WRITE NOT stored in MHL Profile.

Description:
This function returns the SMS payload as binary data. This is for when the incoming SMS is not human readable data. If the incoming message is in the standard 7-bit alphabet or 16 bit Unicode then you should use WWAN.SMS.Message to read the message out as an Unicode string. Call the function with the buffer length parameter set to zero to get the length of the data available. The function will then fail with MHL_ERROR_BUFFER_TOO_SMALL but will return the size of the data available.

Function Output:
SMS data in binary form (not converted to UCS-16 in case of text message).

Error Codes:
0 20015 1168 ERROR_SUCCESS MHL_ERROR_BUFFER_TOO_SMALL ERROR_NOT_FOUND

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 683 / 712

Nordic ID MHL Manual

String WWAN.SMS.DateTime
Min Chars: 0 Max Chars: 40 READ ONLY NOT stored in MHL Profile.

Description:
Returns the time and date of the SMS message in the format "SS:MM:HH DD.MM.YYYY GMT+TZ". The last part would read GMT+2 for Finland, for example.

Function Output:
The time & date of the SMS message.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 684 / 712

Nordic ID MHL Manual

String WWAN.SMS.GSM_3_38Alphabet
Min Chars: 0 Max Chars: 1024 READ ONLY NOT stored in MHL Profile.

Description:
<NOT YET IMPLEMENTED> This function returns all characters that are available in the GSM 3.38 7-bit alphabet, in an UCS 16 string.

Function Output:
<NOT YET IMPLEMENTED> The GSM 3.38 alphabet.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 685 / 712

Nordic ID MHL Manual

DWORD WWAN.SMS.InvalidChrPos
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
<NOT YET IMPLEMENTED> This function returns the position of the first illegal character found by WWAN.SMS.IsValid7BitStr. It returns ERROR_NOT_FOUND if no invalid character was found or WWAN.SMS.IsValid7BitStr has not been called.

Function Output:
<NOT YET IMPLEMENTED> The position of the illegal character found by WWAN.SMS.IsValid7BitStr or 0xFFFFFFFF in not available.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 686 / 712

Nordic ID MHL Manual

DWORD WWAN.SMS.IsValid7BitChr
Min Value: 0 Max Value: 0 WRITE ONLY NOT stored in MHL Profile.

Description:
<NOT YET IMPLEMENTED> This function checks if the character code input is a character that can be represented by the GSM 3.38 7-bit alphabet. It sets ERROR_INVALID_PARAMETER if it is not representable and ERROR_SUCCESS if it is.

Function Input:
<NOT YET IMPLEMENTED> A UCS-16 character cast to a DWORD to be checked for compatibility with the GSM 3.38 alphabet.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 687 / 712

Nordic ID MHL Manual

String WWAN.SMS.IsValid7BitStr
Min Chars: 0 Max Chars: 4096 WRITE ONLY NOT stored in MHL Profile.

Description:
<NOT YET IMPLEMENTED> This function checks if the string input can be represented by the GSM 3.38 7-bit alphabet. It sets ERROR_INVALID_PARAMETER if it is not representable and ERROR_SUCCESS if it is. If the call fails, you can use WWAN.SMS.InvalidChrPos to find the first invalid character found.

Function Input:
<NOT YET IMPLEMENTED> String to be checked for compatibility with the GSM 3.38 alphabet.

Error Codes:
0 87 ERROR_SUCCESS ERROR_INVALID_PARAMETER

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 688 / 712

Nordic ID MHL Manual

String WWAN.SMS.Message
Min Chars: 0 Max Chars: 4096 READ / WRITE NOT stored in MHL Profile.

Description:
When using GetString with this function it gives the contents an incoming SMS message in UCS-16 format if that message was either in GSM 3.38 7-bit or UCS-16 format. If the message format is other than this, the output of this function is undefined. If the message was a Concatenated SMS (CSMS) consisting of multiple messages, this function returns the entire message stitched together. Call the function with a buffer length of zero and you will be returned the length of the available message.

When using SetString with this function it stores the data for subsequent transmission as an SMS message. It does not check that the message is compatible with the GSM 3.38 alphabet at this point, that happens during the encoding phase when calling WWAN.SMS.Send. At the time of writing, only 160 character 7-bit messages, 140 byte 8-bit messages and 80 character UCS-16 messages are supported when sending. CSMS messages are not supported. Use WWAN.SMS.MsgType to set the type of the SMS to send, the default is 160 character GSM 3.38 7-bit.

Function Input:
SMS message to send.

Function Output:
SMS message received.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 689 / 712

Nordic ID MHL Manual

String WWAN.SMS.Number
Min Chars: 0 Max Chars: 40 READ ONLY NOT stored in MHL Profile.

Description:
This function returns the number of the sender of the incoming SMS message. For further information regarding the format of the number, call WWAN.SMS.NumberingPlan and WWAN.SMS.TypeOfNumber.

Function Output:
The SMS senders number.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 690 / 712

Nordic ID MHL Manual

DWORD WWAN.SMS.NumberingPlan
Min Value: 0 Max Value: 15 READ ONLY NOT stored in MHL Profile.

Description:
The numbering plan of the SMS senders number. The numbering plan is typically 1 for international numbers and 0 otherwise, the bold values. possible values are:

0 Unknown. 1 ISDN/telephone numbering plan (E.164/E.163). 3 Data numbering plan (X.121). 4 Telex numbering plan 8 National numbering plan 9 Private numbering plan 10 ERMES numbering plan (ETSI DE/PS 3 01-3) 15 Reserved for extension

Function Output:
The numbering plan identification of the senders phone number according to the GSM specification.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 691 / 712

Nordic ID MHL Manual

Execute WWAN.SMS.Pop
READ ONLY NOT stored in MHL Profile.

Description:
The WWAN driver contains a queue for incoming SMS messages. It is only intended to store messages here for a very short time until the application has time to empty the queue. The queue is not persistent and SMS messages in the queue when power is lost will be lost. When an SMS message arrives, call WWAN.SMS.Pop to pop it out of the queue for reading. This makes the SMS at the front of the queue available for reading trough the other WWAN.SMS functions, and removes it from the queue. It remains readable trough the WWAN.SMS functions until WWAN.SMS.Pop is called again for the next message.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 692 / 712

Nordic ID MHL Manual

String WWAN.SMS.RawPDU
Min Chars: 0 Max Chars: 256 READ ONLY NOT stored in MHL Profile.

Description:
This function provides you with the raw PDU format of an incoming SMS message. Note that the raw format provided to WWAN from the GPRS / EDGE / 3G module is not binary, but ASCII octets. This means that when the SMS message contains the 16 bit UCS character 'A', the equivalent raw PDU data is "0041". It is not the hecadecimal number 0x0041 but actually four ASCII characters "0041".

So for instance the message "hellohello" from the number +27381000015 will look like this in raw PDU form:

07917283010010F5040BC87238880900F10000993092516195800AE8329BFD4697D9EC37

One of the best SMS PDU explanations we have found on the web is here: http://www.dreamfabric.com/sms/

Function Output:
The SMS message in PDU form.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 693 / 712

Nordic ID MHL Manual

String WWAN.SMS.SC_Number
Min Chars: 0 Max Chars: 40 READ ONLY NOT stored in MHL Profile.

Description:
The number of the Short Message Service Center (SMSC) that routed the incoming SMS message.

Function Output:
SMSC number.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 694 / 712

Nordic ID MHL Manual

DWORD WWAN.SMS.SC_NumberingPlan
Min Value: 0 Max Value: 15 READ ONLY NOT stored in MHL Profile.

Description:
The numbering plan for the Service Center number, possible values are:

0 Unknown. 1 ISDN/telephone numbering plan (E.164/E.163). 3 Data numbering plan (X.121). 4 Telex numbering plan 8 National numbering plan 9 Private numbering plan 10 ERMES numbering plan (ETSI DE/PS 3 01-3) 15 Reserved for extension

Function Output:
Service Center numbers numbering plan.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 695 / 712

Nordic ID MHL Manual

DWORD WWAN.SMS.SC_TypeOfNumber
Min Value: 0 Max Value: 0 READ ONLY NOT stored in MHL Profile.

Description:
The SMS Service Center numbers type. Possible return values (bold are most common), straight from the GSM 3.40 specification:

0 = Unknown (Typically used when calling inside an operators own network) 1 = International (+358 prefix for Finland as an example) 2 = National, prefix or escape digits shall not be included. 3 = Network Specific 4 = Subsciber 5 = Alphanumeric, a seven bit character string encoded according to GSM 3.38 6 = Abbreviated 7 = Reserved for extension

Function Output:
The SC numbers type.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 696 / 712

Nordic ID MHL Manual

String WWAN.SMS.Send
Min Chars: 0 Max Chars: 100 WRITE ONLY NOT stored in MHL Profile.

Description:
Use this function to send SMS messages to the number given as an input to this function. The message payload should be set with WWAN.SMS.Message previous to calling this function. Legal number formats to use are international format and unknown format as defined by the GSM 3.34 specification.

Example numbers: International format to Nordic ID HQ: +358207277700 Unknown format (calling inside Soneras network in Finland) to Nordic ID HQ: 027277700

Function Input:
The number to send an SMS to.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 697 / 712

Nordic ID MHL Manual

DWORD WWAN.SMS.TypeOfNumber
Min Value: 0 Max Value: 10 READ / WRITE Stored in MHL Profile.

Description:
Returns the type of the SMS senders' number according to the GSM 3.34 specification.

Return Value:
Possible return values, straight from the GSM 3.40 specification:

0 = Unknown (Typically used when calling inside an operators own network) 1 = International (+358 prefix for Finland as an example) 2 = National, prefix or escape digits shall not be included. 3 = Network Specific 4 = Subsciber 5 = Alphanumeric, a seven bit character string encoded according to GSM 3.38 6 = Abbreviated 7 = Reserved for extension

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 698 / 712

Nordic ID MHL Manual

Boolean WWAN.UseOperatorTime
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Used to set whether the GPRS network operator time will be set as system time for the unit. The time is sent by the operator every time the unit registers to the GPRS network.

Function Input:
Set to TRUE to use operator time, set FALSE to ignore it. Operator time is in use by default.

Function Output:
Returns TRUE if the 'Use Operator Time' feature is currently enabled. This does not mean that we necessarily currently have the same time as the operator, only that if set to TRUE the operator time will be used when sent to the unit.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 699 / 712

Nordic ID MHL Manual

String WWAN.Username
Min Chars: 0 Max Chars: 256 READ / WRITE Stored in MHL Profile.

Description:
Set the user name for the network connection. Note that this setting is completely dependent on you operators requirements and not under Nordic ID's control.

This link is to a 3rd party site that lists APN settings, it is in no way affiliated with Nordic ID and you use it at your own risk. It may help if you are having trouble finding your operators settings:

http://www.taniwha.org.uk/gprs.html

Function Input:
The desired user name for the GPRS / EDGE / 3G data connection.

Function Output:
The currently configured user name for the GPRS / EDGE / 3G data connection.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 700 / 712

Nordic ID MHL Manual

Boolean WWAN.VerboseLogging
TRUE / FALSE READ / WRITE Stored in MHL Profile.

Description:
Verbose logging is used to find bugs and problems with the WWAN driver. Normally only error messages are logged in \Windows\WWAN.log, with verbose logging enabled all actions taken by the driver are logged. With this enabled it is far easier to see the process of events when trying to solve possible malfunctions and bugs. This option can also be toggled in the last tab page in the Control Panel WWAN application. It is unlikely that Nordic ID will be able to help you quickly with any possible WWAN related problem unless the problem has been captured in a logfile with verbose logging enabled, so always use this feature if you suspect you may have found a bug.

Function Input:
TRUE to enable verbose logging, FALSE to disable it.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 701 / 712

Nordic ID MHL Manual

Error Codes:
0 1 2 21 31 87 1168 20001 ERROR_SUCCESS The operation completed successfully. ERROR_INVALID_FUNCTION Incorrect function. ERROR_FILE_NOT_FOUND The system cannot find the file specified. ERROR_NOT_READY The device is not ready ERROR_GEN_FAILURE A device attached to the system is not functioning. ERROR_INVALID_PARAMETER The parameter is incorrect ERROR_NOT_FOUND Element not found MHL_FEATURE_NOT_FOUND Named feature not found. Usually resulting from misspelled name, or trying to use feature not present in hardware. MHL function names are case sensitive. MHL_NOT_READABLE The feature you are attempting to read from is write only. MHL_NOT_WRITABLE The feature you are trying to set is read only. MHL_OUT_OF_RANGE Value is out of feature specific range MHL_INVALID_TYPE Attempt to access function with different type than the specified one. For instance accessing a String type feature with a GetDWORD call. MHL_INVALID_ARGUMENT Value is invalid MHL_INVALID_HANDLE Handle to driver is invalid MHL_DRIVER_NOT_FOUND Named driver not found. Typically happens when you attempt to use for instance the Scanner driver in a device without scanner hardware. MHL_DRIVER_OPEN_FAILED The driver was found but something went wrong when trying to open it. MHL_FEATURE_NOTSUPP Feature not supported. The feature you attempted to call is not supported in hardware or the driver. May also mean that you misspelled the name of the feature. MHL_DRIVER_NOT_OPEN Trying to close driver that is not open. MHL_FEATURE_NOTIMP The feature you attempted to call is not implemented in the driver in question. This may mean you have misspelled the name of the function, or this version or hardware does not have that function. MHL_PROFILE_NOT_FOUND Trying to load profile that doesn't exist MHL_ERROR_BUFFER_TOO_BIG The buffer passed in to the function is too large. MHL_ERROR_BUFFER_TOO_SMALL The buffer passed in to the Get function is too small to hold the contents that should be copied to it. MHL_IMAGER_NEED_LICENSE_C Need C version of imager license to access these features MHL_SCAN_NO_RESULT No scan result available MHL_SCAN_IN_PROGRESS Scanning is already in progress EXT_GPIO_IS_INPUT An operation was attempted that does not make sense when the pin is an input, such as attempting to write the state to a GPIO pin configured as an input. EXT_GPIO_WRITE_FAILED

20002 20003 20004 20005

20006 20007 20008

20009 20010

20010 20011

20013 20014 20015 20016 21000 21001 30201

30203

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 702 / 712

Nordic ID MHL Manual

30204

Writing a new state for the GPIO pin to the Pull, Drive or State register failed. EXT_GPIO_READ_FAILED Reading the current state of the GPIO pin failed.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 703 / 712

Nordic ID MHL Manual

Code Samples:
How to open and close an MHL Driver. - C++
HANDLE driverHandle = MHL_OpenDrv("Keyboard"); if(driverHandle != INVALID_HANDLE_VALUE) { // Driver opened successfully MHL_CloseDrv(driverHandle); } else { // An error occurred, handle it some way }

How to open and close an MHL Driver. - C Sharp


MHL MhlCore = new MHL(); int hKeyb = MhlCore.OpenDrv("Keyboard"); if (hKeyb != 0xFFFFFFFF) { // Driver opened successfully MhlCore.CloseDrv(hKeyb); } else { // An error occurred, handle it some way }

How to open and close an MHL Driver. - Visual Basic


Dim MhlCore As MHL = New MHL Dim hKeyb As Integer = MhlCore.OpenDrv("Keyboard") If hKeyb <> 0xFFFFFFFF Then ' Driver opened successfully MhlCore.CloseDrv(hKeyb) Else ' An error occurred, handle it some way End If

How to open and close an MHL Driver. - Java


int hKeyb = MHL.OpenDrv("Keyboard"); if (hKeyb != 0xFFFFFFFF) { // Driver opened successfully MHL.CloseDrv(hKeyb); } else { // An error occurred, handle it some way }

How to open and close an MHL driver in a Internet Explorer client side JScript. VB/JScript
var MhlCore = new ActiveXObject("mhl_com.MHL"); var hKeyb = MhlCore.OpenDrv("Keyboard");

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 704 / 712

Nordic ID MHL Manual

if (hKeyb != 0xFFFFFFFF) { // Driver opened successfully MhlCore.CloseDrv(hKeyb); } else { // An error occurred, handle it some way }

Get/Set Backlight, Open/Close Driver - C


// The following example retrieves the current backlight value // and assigns a new backlight value of 80%. // Before closing the driver the old value is restored. #include <windows.h> #include <commctrl.h> #include <mhl.h> //Note that MHL is a service, no library linking needed int _tmain(int argc, _TCHAR* argv[]) { HANDLE hBacklight; //handle to backlight driver unsigned long newvalue = 80; unsigned long oldvalue = 0; unsigned long error = 0; // Open backlight driver hBacklight = MHL_OpenDrv(L"Backlight"); if(hBacklight != INVALID_HANDLE_VALUE) { //Backlight driver opened successfully //Get current backlight value oldvalue = MHL_GetDword(hBacklight, L"Backlight.Value"); error = GetLastError(); if (error) { //An error occured when retrieving current backlight value, //handle it in some way. } //Set new value if (!MHL_SetDword(hBacklight, L"Backlight.Value", newvalue)) { //An error occurred when trying to set backlight value, //handle it in some way. Use GetLastError() to retrieve //the reason for the error. } //Restore previous value if (!MHL_SetDword(hBacklight, L"Backlight.Value", oldvalue)) { //An error occurred when trying to set backlight value, //handle it in some way. Use GetLastError() to retrieve //the reason for the error. } MHL_CloseDrv(hBacklight); //close backlight driver when done } else { //An error occurred when trying to open backlight driver, //handle it in some way. } return 0; }

Control the SCAN button & barcode scanner (multithreaded). - C Sharp


using using using using using using System; System.Drawing; System.Collections; System.Windows.Forms; System.Data; System.Threading;

using NordicId; namespace MHL_CSTest { /// <summary> /// Summary description for Form1.

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 705 / 712

Nordic ID MHL Manual

/// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.TextBox Scan_Text; private System.Windows.Forms.Button Scan; // Virtual key contant for F12 private const int VK_F12 = 123; // Invalid handle value constant (0xFFFFFFFF) private const int INVALID_HANDLE_VALUE = -1; // MHL core object MHL MhlCore = new MHL(); // Hotkey capture HotkeyWindow HotKeyWnd = new HotkeyWindow(); // MHL handles int hScan = 0; int hKeyb = 0; //Used to stop the scan thread private bool ScanCancelled = false; public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // Open "Keyboard" driver hKeyb = MhlCore.OpenDrv("Keyboard"); if (hKeyb != INVALID_HANDLE_VALUE) { // Save current keyboard map MhlCore.SaveProfile(hKeyb, "MHL_CSTest_SAVE"); // Map "Scan" button to VK_F12 (0x7B) MhlCore.SetDword(hKeyb, "SpecialKey.Scan.All.VK", VK_F12); // Reload map MhlCore.SetDword(hKeyb, "Keyboard.Reload", 1); } // Open "Scanner" driver hScan = MhlCore.OpenDrv("Scanner"); // Assign HotKeyWnd callback HotKeyWnd.callback = new HotkeyCallbackFunc(HotkeyCallback); // Register VK_F12 as HotKeyWnd, this is to catch the above keymapping of F12 to the SCAN key HotKeyWnd.RegisterKey(VK_F12, KeyModifiers.None); } ~Form1() { // Free Scanner driver if (hScan != INVALID_HANDLE_VALUE) { MhlCore.CloseDrv(hScan); } // Free keyboard driver if (hKeyb != INVALID_HANDLE_VALUE) { // Restore saved keymap MhlCore.LoadProfile(hKeyb, "MHL_CSTest_SAVE"); MhlCore.SetDword(hKeyb, "Keyboard.Reload", 1); MhlCore.CloseDrv(hKeyb); } } private void Form1_Closed(object sender, System.EventArgs e) { // Ok, Form closed, tell scan thread to cancel scan and exit ScanCancelled = true; MhlCore.SetBool(hScan, "Scanner.CancelScan", true); } private delegate void SetThreadTextDelegate(String message); // Used for setting text to UI component from another thread private void SetThreadText(String message) { if (this.InvokeRequired) { // we were called on a worker thread // marshal the call to the user interface thread this.Invoke(new SetThreadTextDelegate(SetThreadText), new object[] { message }); return; } // this code can only be reached // by the user interface thread this.Scan_Text.Text = message; } private delegate void SetScanStateDelegate(Boolean scanning);

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 706 / 712

Nordic ID MHL Manual

// Used for setting text to UI component from another thread private void SetScanState(Boolean scanning) { if (this.InvokeRequired) { // we were called on a worker thread // marshal the call to the user interface thread this.Invoke(new SetScanStateDelegate(SetScanState), new object[] { scanning }); return; } // this code can only be reached // by the user interface thread Scan.Enabled = !scanning; Scan_Text.Enabled = !scanning; } private void ScannerWorkerThreadFunction() { SetScanState(true); SetThreadText(""); if (hScan > INVALID_HANDLE_VALUE) { // Start scanning MhlCore.SetDword(hScan, "Scanner.Scan", 2); // If scan cancelled, just exit asap if (ScanCancelled) { return; } if (MhlCore.GetLastError() == 0) { // We got something SetThreadText(MhlCore.GetString(hScan, "Scanner.ScanResultString")); } else { // Hmm.. Couldn't decode code, show human readable message SetThreadText(MhlCore.GetString(hScan, "Scanner.ScanResultInfo")); } } else { SetThreadText("Scanner not available"); } // Re-enable controls SetScanState(false); } private void PerformScan() { // If 'Scan_Text' control is disabled, we're still scanning.. if (Scan_Text.Enabled == false) return; // Create worker thread for scanning Thread ScannerThread = new Thread(new ThreadStart(this.ScannerWorkerThreadFunction)); ScannerThread.Start(); } // Registered hotkey clicked public void HotkeyCallback(int vk) { // Make sure it's F12 if (vk == VK_F12) { // Implement Scanner.Scan in a separate thread that you activate here. // If you call Scanner.Scan in the UI thread synchronously it will lock up // your UI until the scanning is over. PerformScan(); } } private void Scan_Click(object sender, System.EventArgs e) { PerformScan(); } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Scan_Text = new System.Windows.Forms.TextBox(); this.Scan = new System.Windows.Forms.Button();

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 707 / 712

Nordic ID MHL Manual

// // Scan_Text // this.Scan_Text.Location = new System.Drawing.Point(8, 8); this.Scan_Text.Size = new System.Drawing.Size(184, 20); this.Scan_Text.Text = ""; // // Scan // this.Scan.Location = new System.Drawing.Point(8, 40); this.Scan.Text = "Scan"; this.Scan.Click += new System.EventHandler(this.Scan_Click); // // Form1 // this.ClientSize = new System.Drawing.Size(202, 71); this.Controls.Add(this.Scan); this.Controls.Add(this.Scan_Text); this.Location = new System.Drawing.Point(20, 100); this.MaximizeBox = false; this.Text = "MHL C# Demo"; this.Closed += new System.EventHandler(this.Form1_Closed); } #endregion /// <summary> /// The main entry point for the application. /// </summary> static void Main() { Application.Run(new Form1()); } } }

WLAN Driver IP, MAC & SSID query. - C Sharp


using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms;

using NordicId; namespace WLANTEST { public partial class Form1 : Form { const int INVALID_HANDLE_VALUE = -1; MHL mhl_core = new MHL(); public Form1() { InitializeComponent(); } void RefreshWlanInformation() { int wlan_handle = mhl_core.OpenDrv("WLAN"); if (wlan_handle != INVALID_HANDLE_VALUE) { module.Text = mhl_core.GetString(wlan_handle, "WLAN.AdapterName"); if (mhl_core.GetLastError() != 0) { module.Text = "No adapter present"; ssid.Text = "No adapter present"; ip.Text = "No adapter present"; mac.Text = "No adapter present"; } else { bool powered = mhl_core.GetBool(wlan_handle, "WLAN.Power"); if (!powered) { module.Text += " (power off)"; } if (mhl_core.GetBool(wlan_handle, "WLAN.Connected")) { ssid.Text = mhl_core.GetString(wlan_handle, "WLAN.Connected.SSID"); ip.Text = mhl_core.GetString(wlan_handle, "WLAN.IpAddress"); } else { ssid.Text = "Not Connected"; ip.Text = "Not Connected";

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 708 / 712

Nordic ID MHL Manual

} mac.Text = mhl_core.GetString(wlan_handle, "WLAN.MacAddress"); } mhl_core.CloseDrv(wlan_handle); } else { module.Text = "No driver present"; ssid.Text = "No driver present"; ip.Text = "No driver present"; mac.Text = "No driver present"; } } private void Form1_Load(object sender, EventArgs e) { RefreshWlanInformation(); } private void button1_Click(object sender, EventArgs e) { // Close this.Close(); } private void button2_Click(object sender, EventArgs e) { // Refresh RefreshWlanInformation(); } private void button3_Click(object sender, EventArgs e) { // Toggle power int wlan_handle = mhl_core.OpenDrv("WLAN"); if (wlan_handle != INVALID_HANDLE_VALUE) { bool powered = mhl_core.GetBool(wlan_handle, "WLAN.Power"); if (powered) { MessageBox.Show("Powering off wlan adapter", "Info"); mhl_core.SetBool(wlan_handle, "WLAN.Power", false); } else { MessageBox.Show("Powering on wlan adapter", "Info"); mhl_core.SetBool(wlan_handle, "WLAN.Power", true); } mhl_core.CloseDrv(wlan_handle); RefreshWlanInformation(); } else { MessageBox.Show("No driver present", "Error"); } } } }

How to search for networks with WWAN - C Sharp


Console.WriteLine("Searching for networks..."); Console.WriteLine("Might take a while"); //Search for available networks //Might need to do this more often if really testing roaming while actually moving to another //region where the networks are different, local testing works fine with only one _mhl.SetBool(hwwan, "WWAN.SearchNetworks", true); //Fill the arrays with the network data uint networkcount = _mhl.GetDword(hwwan, "WWAN.NetworkCount"); string[] networknames = new string[networkcount]; uint[] networkcodes = new uint[networkcount]; for (uint i = 0; i < networkcount; i++) { _mhl.SetDword(hwwan, "WWAN.NetworkIndex", i); networkcodes[i] = _mhl.GetDword(hwwan, "WWAN.NetworkCode"); networknames[i] = _mhl.GetString(hwwan, "WWAN.NetworkName"); }

//Print found networks Console.WriteLine("Found these networks:"); for (int a = 0; a < networkcount; a++) { Console.WriteLine(networkcodes[a].ToString() + ": " + networknames[a]); Console.WriteLine(" "); }

Commanding the WWAN driver to connect to the default network - C++

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 709 / 712

Nordic ID MHL Manual

#include <windows.h> #include <mhl.h> #define STATE_DISCONNECTED 0 int wmain(int argc, TCHAR* argv[]) { HANDLE driverHandle = MHL_OpenDrv(L"WWAN"); if(driverHandle != INVALID_HANDLE_VALUE) { if (MHL_GetDword(driverHandle, L"WWAN.ConnectionState") == STATE_DISCONNECTED) { wprintf(L"Connecting to default WWAN network\r\n"); MHL_Execute(driverHandle, L"WWAN.Connect"); } else { wprintf(L"WWAN already connecting/connected!\r\n"); } // Driver opened successfully MHL_CloseDrv(driverHandle); } else { wprintf(L"No WWAN module present!\r\n"); // An error occurred, handle it some way } return 0; }

Read the ID string of any RFID tags in the RF-field - C++

#include <windows.h> #include <mhl.h> void PrintTagID(HANDLE hRfid, DWORD id) { TCHAR serial_string[250] = {0}; wprintf(L"Found tag with ID %d!\r\n", id); MHL_SetDword(hRfid, L"RFID.CurrentId", id); int str_len = MHL_GetString(hRfid, L"RFID.SerialString", serial_string, sizeof (serial_string) / sizeof (TCHAR)); if (GetLastError() != ERROR_SUCCESS) { wprintf(L"Was unable to retrieve tag serial number!\r\n"); return; } wprintf(L"Tag Serial Number: "); for (int i = 0; i != str_len; i++) wprintf(L"%.2X ", serial_string[i]); wprintf(L"\r\n"); } int wmain(int argc, TCHAR* argv[]) { HANDLE driverHandle = MHL_OpenDrv(L"RFID"); BYTE id_list[128]; BYTE first_id = -1; if(driverHandle != INVALID_HANDLE_VALUE) { //Note that this call is the same as a MHL_SetBool with a TRUE parameter if (!MHL_Execute(driverHandle, L"RFID.Inventory")) { wprintf(L"Inventory command failed\r\n"); goto HANDLE_ERROR; } if (!MHL_GetBin(driverHandle, L"RFID.IdList", id_list, sizeof (id_list))) { wprintf(L"Unable to retrieve ID list\r\n"); goto HANDLE_ERROR; } for (int i = 0; i != sizeof (id_list); i++) { if (id_list[i] == 1) { PrintTagID(driverHandle, i); } } }

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 710 / 712

Nordic ID MHL Manual

else { wprintf(L"Unable to open RFID driver.\r\n"); goto HANDLE_ERROR; } wprintf(L"Program complete without errors.\r\n\r\n"); return 0; HANDLE_ERROR: wprintf(L"Program terminated on error. GetLastError()=%d \r\n\r\n", GetLastError()); if (driverHandle != INVALID_HANDLE_VALUE) MHL_CloseDrv(driverHandle); return -1; }

Checks that the WLAN adapter is connected and to which SSID. Also gets signal strength in dBm and percentage. - C++
#include <windows.h> #include <mhl.h> int wmain(int argc, TCHAR* argv[]) { HANDLE hWlan = MHL_OpenDrv(L"WLAN"); TCHAR ssid[128] = {0}; if (hWlan != INVALID_HANDLE_VALUE) { if (MHL_GetBool(hWlan, L"WLAN.Connected")) { MHL_GetString(hWlan, L"WLAN.Connected.SSID", ssid, sizeof (ssid) / sizeof (TCHAR)); wprintf(L"The 802.11 a/b/g network is connected to the \r\n%s network\r\n", ssid); wprintf(L"The signal strength is \r\n%d dBm or %d%% in percent.\r\n", MHL_GetInt(hWlan, L"WLAN.SignalStrength.dBm"), MHL_GetDword(hWlan, L"WLAN.SignalStrength")); } MHL_CloseDrv(hWlan); } return 0; }

Using the I2C bus trough the Extension Feature Driver - C Sharp (MHL Wrapper v2)
using System; using using using using using using using System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms; NordicId;

namespace ExtensionI2CTest { public partial class Form1 : Form { const int PSOC_ADDRESS = (0x80 >> 1); const int IMAGER_ADDRESS = (0x90 >> 1); const int INVALID_HANDLE_VALUE = -1; MHL hMHL = new MHL(); int hExt = 0; public Form1() { InitializeComponent(); hExt = hMHL.OpenDrv("Extension"); if (hExt == INVALID_HANDLE_VALUE) Close(); hMHL.SetDword(hExt, "Extension.I2C.ClockRate", 50000); ed_reg.Text = "0"; ed_address.Text = IMAGER_ADDRESS.ToString(); } private void bn_read_Click(object sender, EventArgs e) {

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland

Page 711 / 712

Nordic ID MHL Manual

hMHL.SetDword(hExt, "Extension.I2C.Address", uint.Parse(ed_address.Text)); byte[] reg_byte = new byte[] { byte.Parse(ed_reg.Text) }; hMHL.SetBin(hExt, "Extension.I2C.Write", reg_byte); byte [] outdata = hMHL.GetBin(hExt, "Extension.I2C.Read", 2); ed_response.Text = ""; for (int i = 0; i != outdata.Length; i++) { ed_response.Text += outdata[i].ToString("X2"); } } } }

Nordic ID International Headquarters Myllyojankatu 2 A, 24100 Salo, Finland


Powered by TCPDF (www.tcpdf.org)

Page 712 / 712

Das könnte Ihnen auch gefallen