Receiving EAOutputStream Error With Zebra iOS and Link-OS SDK

Article ID: 02083920

Details


 

Symptoms

When using the Link-OS SDK to communicate with Bluetooth printers, the following error may be seen:

"EAOutputStream.m:-[EAOutputStream write:maxLength:] - 282 failed to write because stream does not have space available."

Applies To

Link-OS SDK developed for ZPL compatible printers
Excludes 2824 Series, 2844 Series, S4M (E53), 888 Series, MZ Series, ZQ110, EM220, EM220II, and Kiosk

Cause or Overview

This error is seen due to an application using the Link-OS SDK from the GUI thread.

Solution

Ensure that you have installed the latest version of the **Link-OS SDK from our website: Read More>>
**Note: The Link-OS SDK page references specific models but the SDK supports all current ZPL and CPCL compatible printers. Link-OS specific features are only supported by the listed Link-OS printers

In order to use the Link-OS SDK outside of the GUI thread and resolve the error, use iOS's Grand Central Dispatch (GCD). Included with the SDK is documentation for how to use GCD. This can be found in the following location on Windows machines: 

C:\Program Files\Zebra Technologies\link_os_sdk\iOS\v1.2.7587\doc\html\interface_mfi_bt_printer_connection.html

When using Mac OS X, this documentation will be found in the following location (where "userName" is your username):

/Users/userName/Applications/link_os_sdk/iOS/v1.2.7587/doc/html/interface_mfi_bt_printer_connection.html
 
Under the "Detailed Description" section, you will find a sample function called "sampleWithGCD" that will demonstrate how to use the SDK with GCD.
 
It is also important to remember the following with your iOS application:
  • This will only work with Zebra printers which have the Made For iPod/iPhone certification
  • You need to include the External Accessory framework in your project to be able to use this class
  • You need to include the Zebra printer protocol string "com.zebra.rawport" in your info.plist file under "Supported external accessory protocols"
  • You need to Set the key "Required Background modes" to "App Communicates with an accessory" in your app's plist file

+ Product Codes

  • 105SLPlus Industrial Printers
  • 105SLPlus Industrial Printers
  • 110PAX Print Engines (disc.)
  • 110Xi4 Industrial Printer
  • 140Xi4 Industrial Printer
  • 170Xi4 Industrial Printer
  • 220Xi4 Industrial Printer
  • 2824 Plus Series
  • 2824-Z Series
  • All Surface RFID Label Solution
  • Desktop Printers
  • G-Series GC Desktop Printers
  • G-Series GK Desktop Printers
  • G-Series GX Desktop Printers
  • GC420d Desktop Printer
  • GC420t Desktop Printer
  • GK420 Healthcare Desktop Printers
  • GK420d Desktop Printer
  • GK420d Healthcare Desktop Printer
  • GK420t Desktop Printer
  • GK420t Healthcare Desktop Printer
  • GT800 Desktop Printer
  • GX420Rx Desktop Printer
  • GX420d Desktop Printer
  • GX420t Desktop Printer
  • GX430d Desktop Printer
  • GX430t Desktop Printer
  • HC100 Wristband Printer
  • HC100 Wristband Printer
  • Industrial Printers
  • LP 2824 Plus Desktop Printer
  • Mobile Printers
  • P4T Mobile Printers
  • P4T Mobile Printers
  • Print Engines
  • QL Series Mobile Printers
  • QL320 Mobile Printer
  • QL420 Mobile Printer
  • QLn Series Healthcare Mobile Printers
  • QLn Series Mobile Printers
  • QLn220 Healthcare
  • QLn220 Mobile Printer
  • QLn320 Healthcare
  • QLn320 Mobile Printer
  • QLn420 Mobile Printer
  • R110Xi4 RFID Printer
  • RFID Printers
  • RP4T RFID Printers
  • RP4T RFID Printers
  • RW 220 Mobile Printer
  • RW 420 Mobile Printer
  • RW 420 Print Station
  • RW Series Mobile Printers
  • TLP 2824Plus Desktop Printer
  • Xi Series Industrial Printers
  • ZD410 Series
  • ZD410D
  • ZD420 Series
  • ZD420-HC
  • ZD420C
  • ZD500 Desktop Printer
  • ZD500 Desktop Printer
  • ZD500R RFID Printers
  • ZD500R RFID Printers
  • ZE500 Print Engines
  • ZE500 Print Engines
  • ZE500R RFID Print Engine
  • ZE500R RFID Print Engine
  • ZM400
  • ZM600
  • ZQ500 Series Mobile Printers
  • ZQ510 Mobile Printer
  • ZQ520 Mobile Printer
  • ZR300 Series Mobile Printers
  • ZR338 Mobile Printers
  • ZR600 Series Healthcare Mobile Printers
  • ZR600 Series Mobile Printers
  • ZT200 Series Industrial Printers
  • ZT210 Industrial Printer
  • ZT220 Industrial Printer
  • ZT230 Industrial Printer
  • ZT400 Series Industrial Printers
  • ZT400 Series RFID Printers
  • ZT410 Industrial Printer
  • ZT410 RFID Industrial Printer
  • ZT420 Industrial Printer
  • ZT420 RFID Industrial Printer
  • iMZ Series Mobile Printers
  • iMZ220 Mobile Printer
  • iMZ320 Mobile Printer