Gonector 2.1 Syntax


Supported Bluetooth devices: Zebra CS4070
Zebra ZQ630
Zebra DS3678
qIDmini with Apple profile (R1170IEAPLP) produced by CAENRFID
skID - R1280I
Custom MyPrinter A
Custom MY3
Alien ALR-S350
Ingenico Bluetooth devices connected via PCL driver tested with Link/2500 ČSOB version
BlueSnap Smart (RS232 to Bluetooth adapter)
Infinea mPos Flat
DPP-255 Mobile Printer
Supported RS232 via BlueSnap Smart adapter (Bluetooth 4.0) devices: Scales with RS232 interface configured via Gonector_Set with selectors "scaleReadCommand" and "scaleWeightPattern"
Tested on:
Traveler TA301 OHAUS scale
LESAK J1-RWP scale
Supported directly connected devices: Linea and Infinea product line from Infinite Peripherals
Tested on:
LINEA PRO 7 encrypted
Infinea mPos BP500
Infinea X
Supported iOS devices for native RFID/NFC tag reading:iPhone 7 and higher with iOS 11 and newer
Supported iOS devices for native NFC tag writing:iPhone 7 and higher with iOS 13 and newer
Supported NFC cards:ISO 14443A (Mifare Classic 1k, Mifare Ultralight)
ISO 15693 cards

Supported OS for development and testing in desktop version of the plug-in:

WindowsWindows 7 and newer, FileMaker 16.0 and higher
macOSmacOS Sierra 10.12, FileMaker 16.0 and higher

Functions return either default testing values or "notImplemented". This has to be set with function Gonector_Set.
The plugin used for desktop integration does not require SNLib verification

Registered Custom Script Steps

Registered Calculation Functions

Complete syntax and functionality of the plugin functions

Gonector_Version( { versionFormat } )

Returns version string of the plugin, formatted as requested by the parameter

Parameters

versionFormatDefines the format of the returned version.

Parameter values for versionFormat

"short"To get just the version number, default value
"long"To get the plugin name followed by its version number
"platform"To get the platform of the code currently running on
"autoupdate"To get autoupdate compatible (comparable) version number

Description

This function is very important and it has the same output format in all 24U plugins. You should call this function every time you need to check if the plugin is properly installed to the FileMaker Pro®. Even if the plugin is not registered (or badly registered) this function should work. Calling this function in the startup script of your solution is recommended.

Result

Returns requested version format or platform. If this function returns "?", the plugin is not properly installed or FileMaker Pro cannot load and activate it for some reason.

Examples

Gonector_Version( "long" )
This will return the plugin name and its version. For example "Gonector 1.1"

Gonector_Version( "platform" )
Returns "Mac OS X", "iOS" or "Windows" depending on the platform the plugin is currently running

Gonector_Version( "autoupdate" )
Returns "01000300" for the plugin version 1.1.3. The last two digits represent the build number. In this case it means build 00 (first build) of version 1.1.0

Gonector_Register( selector )

Provides special functionality to operate with plugin serial numbers

Parameter values for selector

SerialNumberRegister given SerialNumber and return an error code
"Status"Return the actual registration state of the plug-in: Demo, Demo expired, Trial, Trial Expired, Registered or Dead.
"Unregister"Unregister all serial numbers related to the product and return an error code
EmailAddress Tries to activate Plug-In with given email address and return an error code. Trial version is valid only after you confirm email.
"Info"Returns current plugin status and its registered serial numbers.
"Activation"Returns generated challenge string. A string to send to 24U.

Description

Use this function to register or unregister plugin or to get information about current registration state

Result

Returns zero. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_Register( "GON11I-BXMWC-VNW7W-L8AJS-3KGX3-XYG84" )
This function will register the iOS plugin with serial number GON11I-BXMWC-VNW7W-L8AJS-3KGX3-XYG84.

Gonector_Register( "unregister" )
This function will unregister every serial number related to plugin

Gonector_Connect( deviceName )

Connect to the device specified

Parameters

deviceNameTo connect to native iPhone RFID/NFC Reader use "iPhone" as deviceName
To connect to Linea or Infinea product line use "LineaInfinea" as deviceName
To connect to Infinea mPos use "mPosInfinea" as deviceName
To connect to Zebra scanners please check out device manual: CS4070 or DS3678
deviceName for connectable bluetooth devices can be received through the function Gonector_Get( "devices" ; deviceType)

Description

This function will try to find device with provided deviceName and connect to it.
In case of CustomPrinter, IngenicoTerminal, Infinea mPos Flat, Zebra ZQ630 via Bluetooth Classic and qIDmini device has to be paired via bluetooth.

Result

Function returns 0 if connected. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_Connect( "MYPrinterA_1" )
This command connects the plugin to the bluetooth device MYPrinterA_1.

Gonector_Connect( "MYS350Reader_1ALR350" )
This command connects the plugin to the bluetooth device MYS350Reader_1ALR350.

Gonector_Connect( "LineaInfinea" )
This command connects the plugin to the device of Linea or Infinea type.
If You have troubles connecting to the device please check the LineaInfinea troubleshooting guide

Gonector_Connect( "dppPrinter" )
This command connects the plugin to the DPP-255.

Gonector_Connect( "iPhone" )
This command connects the plugin to the iPhone.

Gonector_Disconnect( deviceName )

Disconnect from the device

Parameters

deviceNameUse the particular name to disconnect solely this device

Description

This function is used to disconnect from the device.

Result

Function returns 0. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_Disconnect( "MYPrinterA_1" )
This command disconnects the device MYPrinterA_1.

Gonector_Disconnect( "MYS350Reader_1ALR350" )
This command disconnects the device MYS350Reader_1ALR350.

Gonector_Disconnect( "LineaInfinea" )
This command disconnects the device of Linea or Infinea type.

Gonector_Disconnect( "dppPrinter" )
This command disconnects the device DPP-255.

Gonector_Get( selector ; { option { ; additionalData } } )

Get value specified by the selector parameter

Parameters

selectorResource selector
optionSpecifies the request. Use device name as option parameter for all device specific selectors (those not marked as General in table below)
additionalDataUsed to specify additional data

Possible values for the selector

SelectorSupported devicesExplanation
"desktopIntegrationSetup"GeneralReturns if "default" or "notImplemented" return values are set for the desktop integration. Note: not implemented on iOS
"inlineDocumentation"GeneralReturns "on" or "off" based on status of inlineDocumentation in plugin. This can help with development on desktop. Note: not implemented on iOS
"urlScheme"GeneralReturns the uniqueString of the URL Scheme. For more info see Gonector_SetScriptEvent()
"lastError"GeneralReturns error code from the last plugin call.
"lastErrorMessage"GeneralReturns error text description from the last plugin call
"firmwareVersion"All devicesReturns firmware release version of the connected device. Device must be connected
"softwareVersion"All devicesReturns software release version of the library. Device must be connected
"devices"All bluetooth devicesUse "customPrinter", "blueSnapAdapter", "ingenicoTerminal", "mPosInfinea", "dppPrinter", "AlienReader", "ZebraScanner", "ZebraPrinter" or "qIDmini" as option parameter to specify Your request
"connectedDevices"All bluetooth devicesReturns all connected (via Gonector_Connect) devices separated by ¶. Use "customPrinter", "blueSnapAdapter", "ingenicoTerminal", "mPosInfinea", "dppPrinter", "AlienReader", "ZebraScanner", "ZebraPrinter" or "qIDmini" as option parameter to specify Your request
"randomKey"Linea and InfineaReturns randomly generated ready to use stripeKey for the Linea or Infinea device for the Linea or Infinea device
You can use this key with Gonector_Set( "deviceStripeKey" ; stripeKey )
"nfcCardUid"Linea and Infinea
Get the UID of the card
"imageAlignment"Custom printers and DPP-255Returns "left", "center" or "right"
"imageScaling"Custom printers and DPP-255Returns case "none", "scaletofit" or "scaletowidth"
"imageWidth"Custom printers and DPP-255Returns the width (in pixels) value from the printer
"fontType"Custom printers, Zebra ZQ630 and DPP-255Returns type of currently used font
"fontWidth"Custom printers, Zebra ZQ630 and DPP-255Returns a width of font
"fontHeight"Custom printers, Zebra ZQ630 and DPP-255Returns a height of font
"fontSize"Custom printers, Zebra ZQ630 and DPP-255Returns "fontWidth¶fontHeight"
"fontAlignment"Custom printers and DPP-255Returns "left", "center" or "right"
"fontBold"Custom printers and DPP-255Returns "on" or "off"
"fontItalic"Custom printers and DPP-255Returns "on" or "off"
"fontUnderline"Custom printers and DPP-255Returns "on" or "off"
"textRotation"Zebra ZQ630Returns value of 0, 90, 180 or 270 degrees(clockwise) rotation of printed text.
"printableArea"Zebra ZQ630Returns "printableWidth¶printableHeight"
"barcodeAlignment"Custom printers and DPP-255Returns the alignment of barcodes
"barcode1dWidth"Custom printers, Zebra ZQ630 and DPP-255Returns the width (in pixels) of 1D barcodes
"barcode2dWidth"Custom printers, Zebra ZQ630 and DPP-255Returns the width (in pixels) of 2D barcodes
"barcodeHeight"Custom printers and DPP-255Returns the height of barcodes. This value has no effect on 2D codes
"barcodeHri"Custom printers and DPP-255Returns "Human Readable Interpretation" position for 1D codes. Possible values are "none", "top", "bottom" or "topbottom" for both top and bottom
"barcodeRotation"Zebra ZQ630Returns value of 0, 90, 180 or 270 degrees(clockwise) rotation of printed barcodes.
"barcodeScaling"Zebra ZQ630Return value 1 to 10 used to scaling QRCODE and AZTEC 2d barcodes.
"scaleReadCommand"ScalesReturns the string to be used by function Gonector_Read
"scaleWeightPattern"ScalesReturns the perl-compatible regular expression used to parse data into the weight type
"terminalTransactionTimeout"Ingenico terminalsReturns the transaction timeout in milliseconds
"terminalInfo"Ingenico terminalsReturns the terminal info containing its truncated serial number (8 last digits), reference code and protocol in format serialNumber¶reference¶protocol
"terminalTime"Ingenico terminalsReturns time of the terminal in following format "YYYY-MM-DD hh:mm:ss TZD"
"terminalFullSerialNumber"Ingenico terminalsReturns a string with serial number
"terminalComponents"Ingenico terminalsReturns a JSON string such as this: [ [ { "name": "", "version": "", "crc": "", "type": "" }, { "name": "", "version": "", "crc": "", "type": "" } ] ]
Type can be: Application, Library, Driver or Parameter File
"terminalTmsInformation"Ingenico terminalsReturns the parameters of the TMS server on Telium side in the format: host¶port¶identifier. Terminal Management System (T.M.S.)
"terminalBacklightTimeout"Ingenico terminalsReturns the backlight timeout in seconds
"terminalSuspendTimeout"Ingenico terminalsReturns the suspend timeout in seconds
"terminalBatteryLevel"Ingenico terminalsReturns a value of 0-100
"terminalIPAddress"Ingenico terminalsReturns the IP address of the terminal
"terminalEncoding"Ingenico terminalsReturns the encoding used by the device
"RFIDEPCStructure"Zebra ZQ630Returns the structure of EPC data, which can be read from or written to an RFID tag. For more information about EPC specifications, refer to the EPC Global web site.

Description

This function is used to get value specified by the selector.

Result

Function returns required parameter. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_Get( "inlineDocumentation" )
This command returns "on" or "off".

Gonector_Get( "devices" ; "customPrinter" )
This command returns all customPrinter devices divided by "¶".

Gonector_Get( "fontAlignment" ; "MYPrinterA_1" )
This command returns "left" if the device MYPrinterA_1 has default alignment.

Gonector_Get( "fontAlignment" ; "dppPrinter" )
This command returns "left" if the device DPP-255 has default alignment.

Gonector_Get( "randomKey" ; "LineaInfinea" )
This command returns string such as "16465168765168416845198645316551".

Gonector_Get( "barcodeHri" ; "MYPrinterA_1" )
This command returns "bottom" if the device MYPrinterA_1 has HRI set to default.

Gonector_Get( "barcodeHri" ; "dppPrinter" )
This command returns "bottom" if the device DPP-255 has HRI set to default.

Gonector_Get( "devices" ; "ZebraPrinter" )
This command returns all ZebraPrinter devices divided by "¶".

Gonector_Set( selector ; option { ; newValue { ; oldValue { ; extraValue } } } )

Set value or parameter

Parameters

selectorResource selector
optionSpecifies the request. Use device name as option parameter for all device specific selectors (those not marked as General in table below)
newValueThis parameter is mostly used as a new value to be set, but it can be used for other things for some Selectors - please read table below
oldValueThis parameter is used to pass an original value for some Selectors
extraValueThis parameter is used to pass an extra value for some Selectors

Possible values for selector.

SelectorSupported devicesWhere is this setting storedExplanation
"inlineDocumentation"GeneralIn the pluginAllows to turn off or on inline documentation. Possible values are "on" or "off". When this is turned on a simplified syntax will be visible when you write plugin's function in FileMaker calculation area. Note: not implemented on iOS
"desktopIntegrationSetup"GeneralIn the pluginAllows to choose between "default" and "notImplemented" as return values for the desktop integration. Note: not implemented on iOS
"urlScheme"GeneralIn the pluginUsed to speed up Gonector_SetScriptEvent callbacks. Empty string will disable faster callbacks. For more info see Gonector_SetScriptEvent() and for required configuration please refer to following guide
"antennaPower"skID, qIDmini and ALR-S350In the deviceSets power level for readers emmiter. Supported values are 25, 50, 100, 200, 500. Default set on device is 200.
"fontType"Custom printers, Zebra ZQ630 and DPP-255In the pluginCustomPrinter and dppPrinter: sets "wide" or "narrow" for type of characters while printing. Default value is "wide".
Zebra ZQ630: sets "bitmapA", "bitmapB", "bitmapD", "bitmapE", "bitmapF", "bitmapG", "bitmapH", "bitmapGS", "bitmapP", "bitmapQ", "bitmapR", "bitmapS", "bitmapT", "bitmapU", "bitmapV" or "scalable"
"fontHeight"Custom printers, Zebra ZQ630 and DPP-255In the pluginSets height of characters while printing.
Supported values for customPrinter: 0 through 7 value.
Supported values for dppPrinter: 0 or 1.
Supported values for Zebra ZQ630:
* for bitmap fonts: 1 through 10 -> see table bitmap font size bellow for more information.
* for scaleble font: size of font in dots -> see bitmap font size section bellow for more information.

Pass this value as a newValue parameter
"fontWidth"Custom printers, Zebra ZQ630 and DPP-255In the pluginSets width of characters while printing.
Supported values for customPrinter: 0 through 7 value.
Supported values for dppPrinter: 0 or 1.
Supported values for Zebra ZQ630:
* for bitmap fonts: 1 through 10 -> see table bitmap font size bellow for more information.
* for scaleble font: size of font in dots -> see scaleble font size section bellow for more information.

Pass this value as a newValue parameter
"fontSize"Custom printer, Zebra ZQ630 and DPP-255sIn the pluginSets size (width and height) of characters while printing. See fontHeight and fontWidth.
"fontAlignment"Custom printers and DPP-255In the pluginSets "left", "center" or "right" alignment for printing. Pass this value as a newValue parameter
"fontBold"Custom printers and DPP-255In the pluginSets "on" or "off" for printing. Pass this value as a newValue parameter
"fontItalic"Custom printers and DPP-255In the pluginSets "on" or "off" for printing. Pass this value as a newValue parameter
"fontUnderline"Custom printers and DPP-255In the pluginSets "on" or "off" for printing. Pass this value as a newValue parameter
"textRotation"Zebra ZQ630In the pluginSets rotation of 0, 90, 180 or 270 degrees(clockwise) for printed text. Default: 0
"printableArea"Zebra ZQ630In the pluginSets printable area in dots for one tag. Function accepts two arguments width and height as two whole numbers separated with "¶". Default values are width = 800 and height = 400. See device manual for more information.
"fontReset"Custom printers, Zebra ZQ630 and DPP-255In the pluginResets the plugin font settings to the printer's default ("fontType" = "wide", "fontHeight" = 0, "fontWidth" = 0, "fontSize" = 0, "fontAlignment" = "left", "fontBold" = "off", "fontItalic" = "off", "fontUnderline" = "off")
In case of Zebra ZQ630 ("fontType" = "wide", "fontHeight" = 1, "fontWidth" = 1, "fontSize" = 1, "textRotation" = 0)
"imageAlignment"Custom printers and DPP-255In the pluginSets "left", "center" or "right" alignment for printing. Pass this value as a newValue parameter
"imageScaling"Custom printers and DPP-255In the pluginSets case "none", "scaletofit" or "scaletowidth" for printing. Pass this value as a newValue parameter
"imageWidth"Custom printers and DPP-255In the pluginSets width (in pixels) value for printing. Pass this value as a newValue parameter
"imageReset"Custom printers and DPP-255In the pluginResets the plugin image settings to default ("imageAlignment" = "center", "imageScaling" = "none", "imageWidth" = 100)
"barcodeAlignment"Custom printers and DPP-255In the pluginSets "left", "center" or "right" alignment for barcode printing. Pass this value as a newValue parameter
"barcode1dWidth"Custom printers, Zebra ZQ630 and DPP-255In the pluginSets the width (in pixels) of the thinest line for a 1D barcode. Whole numbers only (recommended 2 or 3)
"barcode2dWidth"Custom printers and DPP-255In the pluginSets the width for a 2D barcode. For customPrinter width is in pixels of the whole code (recommended min. 100, for PDF417 barcode type at least 300). For dppPrinter supported values: 1, 4, 6, 8, 10, 12, 14
"barcodeHeight"Custom printers, Zebra ZQ630 and DPP-255In the pluginSets height for 1D barcode. This selector is not supported for 2D codes because those have constant aspect ratio
In case of Zebra ZQ630, this selector works for 2D barcodes with exception of QRCODE and AZTEC which can be scaled by barcodeScaling selector.
"barcodeHri"Custom printers and DPP-255In the pluginSets a "Human Readable Interpretation" position for 1D codes. Possible values are "none", "top", "bottom" or "topbottom" for both top and bottom
"barcodeRotation"Zebra ZQ630In the pluginSets rotation of 0, 90, 180 or 270 degrees(clockwise) for printed BarCode. Only 1D barcodes supported. Default: 0
"barcodeScaling"Zebra ZQ630In the pluginSets barcode scaling factor of 1 to 10 for QRCODE and AZTEC 2D barcodes. Default: 2
"barcodeReset"Custom printers, Zebra ZQ630 and DPP-255In the pluginResets the plugin barcode settings to default ("barcodeAlignment" = "center", "barcode1dWidth" = 3 , "barcode2dWidth" = 100 (customPrinter) / 6 (dppPrinter), "barcodeHeight" = 100, "barcodeHri" = "bottom")
In case of Zebra ZQ630 ("barcode1dWidth" = 3 (px), "barcodeHeight" = 100 (px), "barcodeRotation" = 0, "barcodeScaling" = 5)
"scaleReadCommand"ScalesIn the pluginString to send to the scale to request sending current weight data (Gonector_Read). This string will be sent to the scale when you call Gonector_Read( deviceName )
"scaleWeightPattern"ScalesIn the pluginPerl-compatible regular expression to extract weight from the data received from the scale
Plug-In seperates regex groups by "¶"
See the Examples section below for specific examples
"baudrate"ScalesIn the deviceSets the baudrate on the BlueSnap Smart adapter. As a part of the initial setup you should set the same baudrate for your Scale and blueSnapAdapter
Please, follow this guide to properly setup you baudrate
"connectionStripeKey"Linea and InfineaIn the pluginSets a stripe key
Default key is "00000000000000000000000000000000"
"deviceStripeKey"Linea and InfineaIn the deviceSets a new stripe key
Use 4 parameters including the old key
Changing the default key is mandatory in compliance with PCI. New key must be stored or remembered. Lost key can't be retrieved. To reset the keys the device must be sent to the manufacturer.
Use function Gonector_Get( "randomKey" ; deviceName ) to get a random key
"terminalTransactionTimeout"Ingenico terminalsIn the deviceSets the transaction timeout. Use newValue to set time in milliseconds. Note: changing the transaction timeout is not recommended
"terminalTime"Ingenico terminalsIn the deviceSets the time in the terminal using the current iOS device time
"terminalReset"Ingenico terminalsIn the deviceReboots the terminal
"terminalTmsHost"Ingenico terminalsIn the deviceThe TMS's server IP address or hostname (hostname can't exceed 257 characters)
"terminalTmsPort"Ingenico terminalsIn the deviceThe TMS's server Port (can't exceed 65535)
"terminalTmsIdentifier"Ingenico terminalsIn the deviceThe TMS's server Identifier (9 caracters max)
"terminalDoUpdate"Ingenico terminalsIn the deviceThis option updates the terminal
"terminalBacklightTimeout"Ingenico terminalsIn the deviceThis section does not apply to iSMP devices as standby parameters are overridden by iOS device behavior. However, if you unplug the iOS device, these parameters will be taken into account
"terminalSuspendTimeout"Ingenico terminalsIn the deviceThis section does not apply to iSMP devices as standby parameters are overridden by iOS device behavior. However, if you unplug the iOS device, these parameters will be taken into account
"terminalEncoding"Ingenico terminalsIn the pluginThis sets the encoding to be used for received data for example for "onTransactionDidEnd" event.
Possible values are "utf-8" and "iso-8859-2". Default is "utf-8"
"appDevKey"Linea and Infinea, DPP-255In the pluginIn order to use device you have to first provide developer key.
You can find how to obtain developer key in the manual for Linea and Infinea, section 5
"beep"ALR-S350, LineaInfinea, Zebra CS4070, Zebra DS3678In the pluginThis will cause device to beep based on provided parameters. ALR-S350: Takes newValue parameter as beep duration, it cause device to beep for 20 to 1000 milliseconds. Zebra CS4070 and Zebra DS3678: Takes newValue parameter as type of beep see table bellow for more information. LineaInfinea/mPosInfinea device takes newValue parameter as beep duration in milliseconds, oldValue parameter as volume of beep (0-100) and extraValue as frequency of beep(2000-5000)
"beepVolume"Zebra CS4070, Zebra DS3678, LineaInfinea, ALR-S350In the DeviceSets beeper volume for automatic after successful scan beep. Possible values for ZebraScanner: 0 = HIGH, 1 = MEDIUM, 2 = LOW"high", "medium" and "low" (medium is default value). Possible values for LineaInfinea: 0 - 100 (50 is default value) Possible values for ALR-S350: 0-1 (0 = do not beep after scan, 1 = beep after scan)(1 is default value)
"beepFrequency"Zebra CS4070, Zebra DS3678, LineaInfineaIn the DeviceSets beeper frequency for automatic after successful scan beep. Possible values for ZebraScanner: 0 = HIGH, 1 = MEDIUM, 2 = LOW"high", "medium" and "low" (medium is default value). Possible values for LineaInfinea: 2000 - 5000 (2000 is default value)
"led"Zebra CS4070, Zebra DS3678, LineaInfineaIn the DeviceThis will cause device LED to turn on/off. Supported newValue parameter for Zebra Scanners: "Green", "Yellow", "Red" and "Off". Supported newValue parameter for LineaInfinea: "On" and "Off" (Not all LineaInfinea devices have LED indicators, please check Technical documentation of your device for more information). You can use oldValue parameter as timeout: meaning that LED will turn off after set milliseconds.
"vibrationFeedback"Zebra CS4070, Zebra DS3678, LineaInfineaIn the DeviceThis will cause device to vibrate for 0.5s.
"readTimeout"ALR-S350, Linea and Infinea, iPhoneIn the pluginThis will set timeout for reading. Timeout smaller than 1s will not open reader dialog.
"RFIDEPCStructure"Zebra ZQ630In the pluginUse this command to define the structure of EPC data, which can be read from or written to an RFID tag. For more information about EPC specifications, refer to the EPC Global web site.
"n,p0,p1,p2, ..., p15"
n = total bit size of the partitions(1 to n, where n is the bit size of the tag.) default n=96,
p0 ... p15 = partition sizes(Specify the number of bits to include in the individual partitions. The partition sizes must add up to the bit size specified for the previous parameter. The largest individual partition size is 64 bits.) default pX=1

Note: Disconnecting the device will reset all settings in plugin to default.

Bitmap font size for Zebra label printers

Internal bitmapped fonts can be magnified from 1 to 10 times their normal (default) size. The magnification factor is in whole numbers. Therefore, if the normal size of a bitmapped font is 9 dots high and 5 dots wide, a magnification factor of 3 would produce a character of 27 dots high and 15 dots wide. Height and width can be magnified independently.

Scalable font size for Zebra label printers

scalable font size have to be translated into a point size because scalable fonts are measured in point sizes, not dots. To determine how many dots to enter to obtain a particular point size, use the following formula. The actual point size will be an approximate value.

Scalable font size needs to be provided in dots, not points. So if you'd like the printer to print particular point size of text, you have to calculate the size in dots by converting the standard 72 dpi to the printer's actual printhead resolution.

	(Point size) x (Dots per inch of Printer)
Dots =  -----------------------------------------
			72

The actual height and width of the character in dots will vary, depending on the font style and the particular character. Therefore, some characters will be smaller and some will be larger than the actual dot size requested. The baselines for all scalable fonts are calculated against the dot size of the cell. The baseline is 3/4 down from the top of the cell. For example, if the size of the cell is 80 dots, the baseline will be 60 dots (3/4) down from the top of the cell.

Possible beep types for Zebra CS4070 and Zebra DS3678:

Beep TypeBeep DescriptionSupported on
0Beep 1 time with high frequency short durationBoth
1Beep 2 times with high frequency short durationBoth
2Beep 3 times with high frequency short durationBoth
3Beep 4 times with high frequency short durationBoth
4Beep 5 times with high frequency short durationBoth
5Beep 1 time with low frequency short durationBoth
6Beep 2 times with low frequency short durationBoth
7Beep 3 times with low frequency short durationBoth
8Beep 4 times with low frequency short durationBoth
9Beep 5 times with low frequency short durationBoth
10Beep 1 time with high frequency long durationBoth
11Beep 2 times with high frequency long durationBoth
12Beep 3 times with high frequency long durationBoth
13Beep 4 times with high frequency long durationBoth
14Beep 5 times with high frequency long durationBoth
15Beep 1 time with low frequency long durationBoth
16Beep 2 times with low frequency long durationBoth
17Beep 3 times with low frequency long durationBoth
18Beep 4 times with low frequency long durationBoth
19Beep 5 times with low frequency long durationBoth
20Fast warble beepBoth
21Slow warble beepBoth
22High frequency beep then low frequency beepBoth
23Low frequency beep then high frequency beepBoth
24High freq. -> low freq. -> high freq. beeps Both
25Low freq. -> high freq. -> low freq. beepsBoth
26High freq. -> high freq. -> low freq -> low freq. beepsOnly Zebra DS3678

Description

By this function values or parameters can be set

Result

Function returns 0 in case of success. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_Set( "inlineDocumentation" ; "on" ; "notImplemented" )
This command turns on inline documentation. inline documentation doesn't work on iOS

Gonector_Set( "deviceStripeKey" ; "LineaInfinea" ; "12345678123456781234567812345678" ; "00000000000000000000000000000000" )
This changes the stripe key in the Linea or Infinea device.

Gonector_Set( "connectionStripeKey" ; "LineaInfinea" ; "12345678123456781234567812345678" )
This sets the stripe key in the Linea or Infinea device.

Gonector_Set( "fontAlignment" ; "MYPrinterA_1" ; "center" )
This makes the device MYPrinterA_1 print the next text in the middle of the row.

Gonector_Set( "barcodeAlignment" ; "MYPrinterA_1" ; "center" )
Sets the barcode alignment to the center.

Gonector_Set( "barcode2dWidth" ; "MYPrinterA_1" ; 100 )
Sets the barcode width to 100.

Gonector_Set( "barcodeHeight" ; "MYPrinterA_1" ; 100 )
Sets the 1D barcode height to 100.

Gonector_Set( "barcodeHri" ; "MYPrinterA_1" ; "bottom" )
Sets the human readable interpretation of the barcode to the bottom.

Gonector_Set( "scaleReadCommand" ; "MIN-7943" ; "R" ) & ¶ &
Gonector_Set( "scaleWeightPattern" ; "MIN-7943" ; "(ST|US),[^\s-]*([-]?[ ]*[\d\.]+)([\D]+)" )

Sets the basic configuration for the LESAK J1-RWP scale.

Gonector_Set( "scaleReadCommand" ; "MIN-7943" ; "P" ) & ¶ &
Gonector_Set( "scaleWeightPattern" ; "MIN-7943" ; "[ ]*([-]?[\d\.]+)[ ]([^ ]+)[ ]?[ ]?([\?| ])?[ ]?([0-9]+\:[0-9]{2}\:[0-9]{2})?" )
Sets the basic configuration for the Traveler TA301 OHAUS scale.

Gonector_Set( "appDevKey" ; "LineaInfinea" ; "ebq5dcvCfzFPNToo1cbtojzhOv0Wp0RkDchRAuNx5gIOvoT7YRuR72HIssTSKqwdnN82P6luKKK5eRv2DeQp/ytyacxFa4bk1C/bQ=" )
Sets the developer key for LineaInfinea device.

Gonector_Set( "beep" ; "MYS350Reader_1ALR350" ; 500 )
This will cause device to beep for 500ms.

Gonector_Set( "led" ; "ZebraScanner" ; "Green" ; 500 )
This will cause device LED to turn on Green LED for 500ms.

Gonector_Set( "RFIDEPCStructure" ; "ZebraPrinter" ; "64,8,8,8,8,8,8,8,8" )
This will cause Zebra ZQ630 RFID to specify EPC structure that there are 64 bits used with eight 8-bit fields.

Gonector_Set( "RFIDEPCStructure" ; "ZebraPrinter" ; "96,10,26,60" )
This will cause Zebra ZQ630 RFID to specify EPC structure that there are 96 bits used with three fields. Fields 1, 2, and 3 contain 10, 26, and 60 bits, respectively.

Gonector_Set( "printableArea" ; "ZebraPrinter" ; "800¶400" )
This will cause Zebra ZQ630 RFID to set printableWidth to 800 and printableHeight to 400 dots.

Gonector_PrintText( deviceName ; text { ; printMode { ; x ; y } } )

Sends a text to print

Parameters

deviceNameUnique name of the device
textText to print
Note: Supported printers only print ASCII character set
printMode This parameter is used to change different print modes
x This parameter specifies x coordinate(horizontal) of printing starting point(upper-left corner of text area). Every tag has coordinate system that uses dots(pixels). Point (0, 0) is located at upper left corner of the tag. You can calculate maximum width(or height) as [dpi of printer] * [width(or height) of tag in inches]. Default: 0. Only Zebra ZQ630 supported
y This parameter specifies y coordinate(vertical) of printing starting point(upper-left corner of text area). Default: 0. Only Zebra ZQ630 supported

Possible values for printMode.

"buffer"This printMode can be used to print various fonts in one line.
The printer will store the text in a buffer. Text is added to the buffer and currently set formatting is remembered along with it. If the text in the buffer contains line ending (¶) or if the text fulfils width of the printable line, it is automatically printed and the remaining part of the text will stay in the buffer.
Combining multiple text alignments on one row is not possible. Overwriting of the line alignment for text in buffer is not possible.
In case of Zebra ZQ630, this mode will allow to store in buffer raw commands, barcodes, texts and RFIDdata if we want to print them to one RFID tag.
"immediate"This printMode will automatically add line ending at the end of provided text which means that buffer (first) and the text (second) will be printed immediately. If buffer and text is empty printer will print empty line.
In case of Zebra ZQ630, this mode will flush everything in buffer and print it on RFID tag.
This is default printMode.

Description

This function uses a printer to print text. Various font settings can be changed using Gonector_Set function

Result

Function returns 0 in case of success. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_PrintText( "MYPrinterA_1" ; "Hello!!!" )
This prints "Hello!!!" on the device MYPrinterA_1.

Gonector_PrintText( "dppPrinter" ; "Hello!!!" )
This prints "Hello!!!" on the device DPP-255.

Gonector_PrintText( "MYPrinterA_1" ; "Name: " ; "buffer" ) & ¶ & Gonector_Set( "fontUnderline" ; "MYPrinterA_1" ; "on" ) & ¶ & Gonector_PrintText( "MYPrinterA_1" ; "name@example.com" )
This prints "Name: name@example.com" on the device MYPrinterA_1.

Gonector_PrintText( "dppPrinter" ; "Name: " ; "buffer" ) & ¶ & Gonector_Set( "fontUnderline" ; "dppPrinter" ; "on" ) & ¶ & Gonector_PrintText( "dppPrinter" ; "name@example.com" )
This prints "Name: name@example.com" on the device DPP-255.

Gonector_PrintText( "ZebraPrinter" ; "Hello!!!" ; 150 ; 50 )
This prints "Hello!!!" on the device Zebra ZQ630. Upper-left corner of text field is located 150 dots horizontaly and 50 dots verticaly from upper-left corner of the tag.

Gonector_PrintImage( deviceName ; imageContainer )

Prints png or jpeg image from container. This function is not supported for Zebra printers. To print an image on a Zebra label printer, you can, encode them into ZPL and use Gonector_RawCommand to send the ZPL code to the printer.

Parameters

deviceNameUnique name of the device
imageContainerThe image container in FileMaker

Note: Custom Printer prints transparent color as black.

Description

This function uses a printer to print an image. Various font settings can be changed using Gonector_Set function

Result

Function returns 0 in case of success. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_PrintImage( "MYPrinterA_1" ; table::container )
This prints an image on the device MYPrinterA_1.

Gonector_PrintImage( "dppPrinter" ; table::container )
This prints an image on the device LineaInfinea.

Gonector_PrintCode( deviceName ; type ; text { ; printMode { ; x ; y } } )

Prints a barcode

Parameters

deviceNameUnique name of the device
typeThe type of code
textThe text to be printed as a barcode. See specific barcode types below to see what type of character strings are supported. The text has to be valid for selected code type otherwise the code can be unreadable
printMode This parameter is used to change different print modes. Only Zebra ZQ630 supported
x This parameter specifies x coordinate(horizontal) of printing starting point(upper-left corner of barcode). Only Zebra ZQ630 supported
y This parameter specifies y coordinate(vertical) of printing starting point(upper-left corner of barcode). Only Zebra ZQ630 supported

Possible values for printMode.

"buffer"This printMode can be used to print various fonts in one line.
The printer will store the text in a buffer. Text is added to the buffer and currently set formatting is remembered along with it. If the text in the buffer contains line ending (¶) or if the text fulfils width of the printable line, it is automatically printed and the remaining part of the text will stay in the buffer.
Combining multiple text alignments on one row is not possible. Overwriting of the line alignment for text in buffer is not possible.
In case of Zebra ZQ630, this mode will allow to store in buffer raw commands, barcodes, texts and RFIDdata if we want to print them to one RFID tag.
"immediate"This printMode will automatically add line ending at the end of provided text which means that buffer (first) and the text (second) will be printed immediately. If buffer and text is empty printer will print empty line.
In case of Zebra ZQ630, this mode will flush everything in buffer and print it on RFID tag.
This is default printMode.

Description

This function uses a printer to print a barcode. Various settings can be changed using Gonector_Set function.

Possible values for type

The printer nor plugin are checking the validity of barcodes.

Type of 1D codeDescription and limitations
CODABARSupported characters are numbers (0-9), 4 letters (A,B,C,D) and few special characters (-$:/.+). The code must be valid including starting and ending letters. Supported on DPP-255 and Zebra ZQ630 The 14 digits barcode is supported on MY3 A printer.
UPCA11 or 12 digits. Supplemental code is not supported. Code must be valid. In case the checkdigit is not known it is better to use only 11 digits. Supported on CustomPrinter and Zebra ZQ630
UPCE11 or 12 digits. The UPCA code must must be capable to be compressed into the UPCE code. Supplemental code is not supported. The printer prints a short version of UPCA code by trimming the padding zero's. Part of the UPCA codes are excluded if they overcome the padded amount in more categories. If checkdigit is not known then the printer will calculate the checkdigit automatically. Supported on CustomPrinter and Zebra ZQ630
EAN1313 digits. Supplemental code is not supported. The code must be valid. Supported on CustomPrinter and Zebra ZQ630
EAN88 digits. The code must be valid. Supported on CustomPrinter and Zebra ZQ630
CODE39Upper case letters, numbers, some symbols, (A-Z, 0-9, space, $ % + - . /) Supported on CustomPrinter, Zebra ZQ630 and DPP-255
ITFUp to 14 digits. The code must be valid. Supported on CustomPrinter.
CODE9343 basic symbols (0–9, A-Z, "-", ".", "$", "/", "+" and "%"). Supported on CustomPrinter and Zebra ZQ630
CODE128All ASCII characters. Preferred set is Code B. Code C is automatically switched on from 6 following digits to compress the barcode using high density mode. Any combination of characters is allowed. Supported on DPP-255 and Zebra ZQ630
CODE328 or 9 digits. "A" will be prepended automatically. If checkdigit is not known it is better to provide 8 digits only. In case of 7 digits a leading 0 digit must be used. Supported on CustomPrinter and Zebra ZQ630.
Type of 2D codeDescription and limitations
DATAMATRIXAll ASCII characters. Supports UTF-8 data stream Supported on CustomPrinter and Zebra ZQ630
PDF417All ASCII characters. Recommended minimum barcode2dWidth is 300 (px) Supported on CustomPrinter and Zebra ZQ630
MICROPDF417All ASCII characters. The code must be valid Supported on CustomPrinter and Zebra ZQ630
AZTECAll ASCII characters. Supports UTF-8 data stream Supported on CustomPrinter and Zebra ZQ630
QRCODEAll ASCII characters. Supports UTF-8 data stream. Kanji is not supported. Supported on CustomPrinter, Zebra ZQ630 and DPP-255

Result

Function returns 0 in case of success. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_PrintCode( "MYPrinterA_1" ; "04210000526" ; "UPCA" )
This prints UPCA barcode with HRI of "042100005264" on the device MYPrinterA_1.

Gonector_PrintCode( "MYPrinterA_1" ; "04210000526" ; "UPCE" )
This prints UPCE barcode with HRI of "425261" on the device MYPrinterA_1.

Gonector_PrintCode( "MYPrinterA_1" ; "Code 128" ; "CODE128" )
This prints CODE128 barcode with HRI of "Code 128" on the device MYPrinterA_1.

Gonector_PrintCode( "dppPrinter" ; "Code 128" ; "CODE128" )
This prints CODE128 barcode with HRI of "Code 128" on the device DPP-255.

Gonector_PrintCode( "MYPrinterA_1" ; "123456789" ; "CODE128" )
This prints CODE128 barcode with HRI of "123456789" on the device MYPrinterA_1.

Gonector_PrintCode( "MYPrinterA_1" ; "Hello World" ; "QRCODE" )
This prints QR code with content of "Hello World" on the device MYPrinterA_1.

Gonector_PrintCode( "dppPrinter" ; "Hello World" ; "QRCODE" )
This prints QR code with content of "Hello World" on the device DPP-255.

Gonector_PrintRFID( deviceName ; format { ; data } )

Writes and read data on RFID tag Only Zebra ZQ630 RFID supported

Parameters

deviceNameUnique name of the device
formatThe format of data
dataThe data to be written to RFID tag.

Description

This function uses a printer to write a data to RFID tag to it's EPC bank. Please make sure to calibrate RFID printing with Gonector_Set("RFIDCalibration") before using Gonector_PrintRFID(). Standard UHF RFID Gen 2 tag has EPC bank(Bank 01) of size 96bits. Data are written from address 20h. This funcion also flushes whole buffer and prints on tag everything that was specified before(Gonector_PrintText and/or Gonector_PrintCode)

Possible values for format

The printer nor plugin are checking the validity of data.

Format of RFIDDescription
ASCIITreat data as ASCII text, it's hexadecimal representation will be written on the tag.
HexadecimalTreat data as Hexadecimal value. If the value is less than 12 bytes, there will be 0 concatenated.
EPCEPC - (ensure proper setup with the Gonector_Set("RFIDEPCStructure") command)

Result

In case of success the function returns data read from RFID tag after writing to it. If there were no data to write, it returns only data already present on the tag, but the format still needs to be specified. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_PrintRFID( "ZebraPrinter" ; "ASCII" ; "Sample text" )
This writes "Sample text" as ASCII text which results in writing "53616d706c65207465787400" to the RFID tag on device ZebraPrinter.

Gonector_PrintRFID( "ZebraPrinter" ; "Hexadecimal" ; "012ABC" )
This writes "012ABC000000000000000000" to the RFID tag on device ZebraPrinter

Gonector_Set( "RFIDEPCStructure" ; "ZebraPrinter" ; "96,8,8,16,64" ) & ¶ & Gonector_PrintRFID( "ZebraPrinter" ; "EPC" ; "5.4.11.123" )
This command specifies that there are 96 bits used with four fields. Fields 1, 2, 3 and 4 contain 8, 8, 16 and 64 bits, respectively. Then we encode tag with data. Field 1 contains 5, field 2 contains 4, field 3 contains 11 and field 4 123. Use "." as field separators for data.
This writes "0504000B000000000000007B" to the RFID tag. You have to know the EPC structure to be able to decode which field contains what data when you want to read EPC data from the tag.
In this case, first field is first 8 bits and it contains 5. Second field, also 8 bits, contains 4. Third field is 16 bits and contains 000B which is hexadecimal representation of 11. Last field is 64 bits and contains 000000000000007B which is hexadecimal representation of 123.

Gonector_SetScriptEvent( deviceName ; event ; scriptName { ; memBank ; address ; lenght })

Tell the plugin to launch the script when specified event occurs

Parameters

deviceNameUnique name of the device
eventThe event when the script should be triggered
scriptNameThe name of script which should be triggered. The script receives a parameter with data depending on the event
memBankTag memory bank. Only for events: onTagAttach and onTagBatch. For skID and ALR-S350 only. If not defined reader will return only tags EPC.
addressFrom what address to read tag. Only for events: onTagAttach and onTagBatch. For skID and ALR-S350 only. If not defined reader will return only tags EPC.
lenghtHow many bytes should be read. Only for events: onTagAttach and onTagBatch. For skID and ALR-S350 only. If not defined reader will return only tags EPC.

Possible values for event.

eventSupported devicesExplanationScript parameter
"onTagAttach"qIDmini, skID, ALR-S350Run the script when a tag approaches qIDmini sensor. Script is not called again if this tag stays in the sensor range, but it can be called multiple times if the tag leaves and enters the sensor range again.JSON array containing one or more arrays that contains one or more objects, where each object has at least “deviceName”, “type”, and “data” properties e.g. [ { "deviceName": "000666D0252F", "type": "qIDminiTag", "data": "123456" } ]
"onTagDetachqIDmini, skID, ALR-S350Run the script when the qIDmini sensor loses the connection with a tagJSON array containing one or more arrays that contains one or more objects, where each object has at least “deviceName”, “type”, and “data” properties e.g. [ { "deviceName": "000666D0252F", "type": "qIDminiTag", "data": "123456" } ]
"onTagBatch"ALR-S350After setting this event. When you push the ALR-S350 button it will start scanning for tags, when you push the button second time, scanning will stop and script will run with parameter containing all tags read.JSON array containing one or more arrays that contains one or more objects, where each object has at least “deviceName”, “type”, and “data” properties e.g. [ { "deviceName": "EXA51 K180200388", "type": "tag", "data": "123456" } ]
"onCardRead"Linea and InfineaRun the script when a card approaches Linea or Infinea RFID sensorJSON array containing one or more arrays that contains one or more objects, where each object has at least “deviceName”, “type”, and “data” or "base64Data" properties e.g. [ { "language": "en", "type": "ndefText", "data": "Hello", "deviceName": "LineaInfinea" }, { "language": "cs", "type": "ndefText", "data": "Vítejte", "deviceName": "LineaInfinea" } ] or [ { "deviceName": "LineaInfinea", "type": "image/jpeg", "base64Data": "SGVsbG8=" } ]
"onStripeRead"Linea and InfineaRun the script when a card approaches Linea or Infinea magnetic card reader.
To successfully read the magnetic stripe, the stripe key must be set
JSON array containing one or more arrays that contains one or more objects, where each object has at least “deviceName”, “type”, and “data” properties e.g. [ { "deviceName": "LineaInfinea", "type": "stripe", "data": "cardholderName¶cardholderFirstName¶cardholderLastName¶accountNumber¶serviceCode¶discretionaryData¶expirationMonth¶expirationYear" } ]
"onBarcodeRead"Linea and Infinea, ALR-S350, Zebra CS4070, Zebra DS3678Run the script when a barcode is just scannedJSON array containing one or more arrays that contains one or more objects, where each object has at least “deviceName”, “type”, and “data” properties e.g. [ { "deviceName": "LineaInfinea", "type": "barcode", "barcodeType": "CODE128", "data": "Hello 1d code" } ]
"onDataReceived"BlueSnap Smart adapterRun the script when BlueSnap Smart receives data with CRLF teminator from the RS232 connected device JSON array containing one or more arrays that contains one or more objects, where each object has at least “deviceName”, “type”, and “data” properties e.g. [ { "deviceName": "MIN-0982", "type": "rawData", "data": "ERROR 2" } ]
"onWeightReceived"BlueSnap Smart adapterRun the script when BlueSnap Smart receives data with CRLF teminator from the RS232 connected device
and successfully evaluates Regex provided via Gonector_Set with selector "scaleWeightPattern"
This event has a priority over "onDataReceived"
JSON array containing one or more arrays that contains one or more objects, where each object has at least “deviceName”, “type”, and “data” properties e.g. [ { "deviceName": "MIN-0982", "type": "weight", "data": "0.05¶g" } ]
"onTerminalMessage"Ingenico terminalsRun the script when a terminal sends a messageJSON array containing one object that contains "deviceName", "type" and "base64Data" or "base64Data" and "data" properties e.g. [ { "deviceName": "Link/2500-163637313071041701279653", "type": "terminalMessage", "base64Data": "", "data": "" } ]
"onTransactionEnd"Ingenico terminalsRun the script when a transaction reply arrived from a terminalJSON array containing one object e.g. [ [ { "deviceName": "Link/2500-163637313071041701279653", "type": "transactionDidEndWithTimeoutFlag", "replyReceived": true, "posNumber": 123, "operationStatus": true, "Amount": 500, "Currency": "203", "data": "Data converted into string if possible", "base64Data": "Extra data returned" } ] ]
Note: operationStatus is set to true in case the received value is 0. Most banks require to check whether replyReceived and operationStatus are both true
"onSignaturePrompt"Ingenico terminalsRun the script when a transaction requires a signature. Use Gonector_Submit( "signature" ; ... ) to submit signature to the terminalJSON array containing one object that contains "deviceName", "type", "screenWidth", "screenHeight" and "userSignTimeout" properties e.g. [ { "deviceName": "Link/2500-163637313071041701279653", "type": "shouldDoSignatureCapture", "screenWidth": 60, "screenHeight": 40, "userSignTimeout": 10 } ]
"onSignatureTimeout"Ingenico terminalsRun a script when the signature was not captured on timeJSON array containing one object that contains "deviceName" and "type" properties e.g. [ { "deviceName": "Link/2500-163637313071041701279653", "type": "signatureTimeoutExceeded" } ]
"onReceiptText"Ingenico terminalsRun the script when an order to print a receipt arrived from a terminalJSON array containing one object e.g. [ [{ "deviceName": "Link/2500-163637313071041701279653", "type": "shouldPrintText", "data": "RECEIPT", "fontName": "", "fontFamily": "", "alignment": "left", "xScaling": 1, "yScaling": 1, "underline": false, "bold": false }] ]
Alignment: "left", "center", "right", "justified" (Fully-justified. The last line in a paragraph is natural-aligned) and "natural" (Indicates the default alignment for script)
"onReceiptImage"Ingenico terminalsRun the script when an order to print a receipt arrived from a terminalJSON array containing one object e.g. [ [{ "deviceName": "Link/2500-163637313071041701279653", "type": "shouldPrintImage", "imageType": "image/png", "base64Data": "Base64 encoded image" }] ]
"onReceiptFeedPaper"Ingenico terminalsRun the script when an order to print a receipt arrived from a terminalJSON array containing one object e.g. [ [{ "deviceName": "Link/2500-163637313071041701279653", "type": "shouldFeedPaperWithLines", "lines": 2 }] ]
"onReceiptCutPaper"Ingenico terminalsRun the script when an order to print a receipt arrived from a terminalJSON array containing one object e.g. [ [{ "deviceName": "Link/2500-163637313071041701279653", "type": "shouldCutPaper" }] ]
This is the last callback of the receipt
"onReceiptStart"Ingenico terminalsRun the script when an order to print a receipt arrived from a terminalJSON array containing one object e.g. [ [{ "deviceName": "Link/2500-163637313071041701279653", "type": "shouldStartReceipt" "receiptType": 0 }] ]
"onReceiptEnd"Ingenico terminalsRun the script when an order to print a receipt arrived from a terminalJSON array containing one object e.g. [ [{ "deviceName": "Link/2500-163637313071041701279653", "type": "shouldEndReceipt" }] ]
"onReceiptAddSignature"Ingenico terminalsRun the script when an order to print a receipt arrived from a terminalJSON array containing one object e.g. [ [{ "deviceName": "Link/2500-163637313071041701279653", "type": "shouldAddSignature" }] ]
"onProgrammableButtonPressed"Infinea XRun the script when programmable button on Infinea X is pressedJSON array containing one object e.g. [ [{ "deviceName": "Infinia X", "type": "progammableButtonPressed" }] ]

Some scales (such as tested LESAK J1-RWP) have to be manually configured to enable this feature.

Description

Plugin calls the script on the first occasion when the FileMaker enters "idle" state. Increase speed of event callbacks the plugin can also call itself through an URL. To setup this please check following guide.
The plugin has a buffer of one event per category and device. In case the device sends more data then the operation system can handle into the same category the incoming data is deleted. As soon as the queue is emptied by the script performer the next incoming data is stored for an event again.
For every event the deviceName will be sent back as a first script parameter "MIN-7943¶".

Result

Function returns 0 in case of success. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_SetScriptEvent( "000666D0252F" ; "onTagAttach" ; "My FileMaker Script" )
FileMaker script "My FileMaker Script" is called every time a tag approaches RFID sensor. You can get the ID of the tag by using FileMaker function Get(ScriptParameter) in the script.

Gonector_SetScriptEvent( "LineaInfinea" ; event ; "" )
This removes an event.

Gonector_SetScriptEvent( "LineaInfinea" ; "" ; "" )
This removes all events.

Gonector_SetScriptEvent( "MIN-7943" ; "onDataReceived" ; "myScript" )
This installs an event to call the script myScript with data events.

Gonector_SetScriptEvent( "MIN-7943" ; "onWeightReceived" ; "myScript" )
This installs an event to call the script myScript with weight events.

Gonector_SetScriptEvent( "LineaInfinea" ; "onProgrammableButtonPressed" ; "myScript" )
FileMaker script "myScript" is called every time a programmable button is pressed.

Gonector_Read( deviceName { ; selector { ; options { ; extra/memBank { ; address ; length { ; tagID } } } } } )

Reads data from a device.

Parameters

Possible values for selector:

deviceNameUnique name of the device
selectorUsed to specify the request
optionsAdditional selector for some requests. Check possible values for options to see supported devices.
extraFor Infinea mPos only, enter total amount (in cents e.g.: 5.00 has to be entered as 500)
memBankTag memory bank. For skID and ALR-S350 only.
addressFrom what address to read tag. For skID and ALR-S350 only.
lenghtHow many bytes should be read. For skID and ALR-S350 only.
tagIDDefines tag from which memory will be read. If ommited, memory will be read from all available tags.
SelectorSupported deviceDescription
"single" qIDmini/skID
gIDScale
iPhone
LineaInfinea
mPosInfinea
ALR-S350

Zebra CS4070
Zebra DS3678
Read dialog will be shown for iPhone and Linea or Infinea device.
This dialog closes after one item read. This is the default
Note: Read dialog for iPhone will close after 60 seconds of inactivity and return all read cards
"multiple"qIDmini/skID
gIDiPhone
LineaInfinea
mPosInfinea
ALR-S350

Zebra CS4070
Zebra DS3678
Read dialog will be shown for iPhone and Linea or Infinea device.
This dialog closes when "Done" button is hit
Note: Read dialog for iPhone will close after 60 seconds of inactivity and return all read cards
"unique" qIDmini/skID
gIDiPhone
LineaInfinea
mPosInfinea
ALR-S350

Zebra CS4070
Zebra DS3678
Read dialog will be shown for iPhone and Linea or Infinea device.
This dialog closes when "Done" button is hit.
The plugin guarantees that no value will be returned twice
Note: Read dialog for iPhone will close after 60 seconds of inactivity and return all read cards
"last"qIDmini/skID
gIDScale
iPhone
LineaInfinea (barcodes, RFID cards, magnetic stripes)
mPosInfinea
ALR-S350

Zebra CS4070
Zebra DS3678
Returns the last value received from the device
Data from magnetic stripe is only kept for 10 seconds to match the PCI compliance

Some scales (such as tested LESAK J1-RWP) have to be manually configured to enable this function.

Possible values for options:

OptionsSupported deviceDescription
"stripe"LineaInfinea
mPosInfinea
Reads a magnetic stripe. To successfully read the magnetic stripe, a stripe key must be set
"rfidCard"LineaInfinea
ALR-S350

skID
qIDmini
Reads an RFID card
"barcode"LineaInfinea
mPosInfinea
ALR-S350

Zebra CS4070
Zebra DS3678
Reads a barcode
"smartCard"mPosInfineaReads a smart card. This option can be used only with selector "single".
"tagSpecific"iPhoneReads MiFare, FeliCa, ISO15693 or ISO7816 tags on iPhone.

Read dialog example:


Description

Plugin sends a request to one of the supported devices to respond with data.

Result

Function returns JSON string if everything is OK. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.
The JSON string contains an array of items read (cards, tags…). The items are wrapped in arrays which contain one or more objects. Each object represents one chunk of items data (e.g. in case of localised rfid cards one object would be for data in English and another object for data in German). Each object has at least “type” and “data” or “base64Data” properties.

skID and ALR-S350 also contain object RSSI (Received signal strength indicator):

Examples

Gonector_Read( "qIDmini R1170" ; "multiple" ; "rfidCard" )
This returns a JSON string such as [ { "type": "qIDminiTag", "data": "123456" }, { "type": "qIDminiTag", "data": "654321" } ] or "?" in case of an error.

Gonector_Read( "skID" ; "multiple" ; "rfidCard" ; 3 ; 0 ; 6 )
This returns a JSON string such as [ { "type": "skIDTag", "data": "123456", "tagID": "0" "membank":"3", "address": "0", "length": "6" RSSI": "-101" }, { "type": "skIDTag", "data": "654321" "tagID": "1" "membank":"3", "address": "0", "length": "6" RSSI": "-99" } ] or "?" in case of an error.

Gonector_Read( "MYS350Reader_1ALR350" ; "multiple" ; "rfidCard" ; 3 ; 0 ; 6 )
This returns a JSON string such as [ { "type": "alienTag", "data": "123456", "tagID": "0" "membank":"3", "address": "0", "length": "6" "scaledRssi" : 50 }, { "type": "alienTag", "data": "654321" "tagID": "1" "membank":"3", "address": "0", "length": "6" "RSSI": 15 } ] or "?" in case of an error. RSSI is number between 0 - 100 and represents relative strenght of the signal.

Gonector_Read( "MIN-7943" )
This returns a JSON string such as [ { "type": "weight", "data": "0.05¶g" } ] or [ { "type": "rawData", "data": "ERROR 2" } ] or "?" in case of an error.

Gonector_Read( "LineaInfinea" ; "single" ; "stripe" )
This returns a JSON string such as [ { "type": "stripe", "data": "cardholderName¶cardholderFirstName¶cardholderLastName¶accountNumber¶serviceCode¶discretionaryData¶expirationMonth¶expirationYear" } ] or "?" in case of an error.

Gonector_Read( "LineaInfinea" ; "last" ; "rfidCard" )
This returns a JSON string such as [ { "language": "en", "type": "ndefText", "data": "Hello", "deviceName": "LineaInfinea" }, { "language": "cs", "type": "ndefText", "data": "Vítejte", "deviceName": "LineaInfinea" } ], [ { "type": "image/jpeg", "base64Data": "SGVsbG8=" } ] or "?" in case of an error.

Gonector_Read( "LineaInfinea" ; "unique" ; "barcode" )
This returns a JSON string such as [ { "deviceName": "deviceName", "type": "barcode", "barcodeType": "CODE128", "data": "Hello 1d code" }, { "deviceName": "deviceName", "type": "barcode", "barcodeType": "QRCODE", "data": "Hello 2d code" } ] or "?" in case of an error.

Gonector_Read( "iPhone" )
This returns a JSON string such as [ { "type": "text/plain", "data": "Hello" } ] or "?" in case of an error.

Gonector_Read("mPosInfinea" ; "single" ; "smartCard" ; "5000")
This reads the smart card chip and returns the JSON string with the data from the chip. Terminal might ask for PIN code.

Gonector_Read("Zebra CS4070" ; "single" ; "barcode")
This returns a JSON string such as [ { "deviceName": "Zebra CS4070", "type": "barcode", "barcodeType": "QRCODE", "data": "Hello 1d code" } ] or "?" in case of an error.

Gonector_Read("ALR-S350" ; "single" ; "barcode")
This returns a JSON string such as [ { "deviceName": "ALR-S350", "type": "barcode", "barcodeType": "QRCODE", "data": "Hello 1d code" } ] or "?" in case of an error.

Gonector_Write( deviceName ; options ; value { ; cardLocking { ; tagID ; memBank ; address ; lenght } } )

Writes data to the device.

Parameters

deviceNameUnique name of the device
optionsSpecific options
valueThe value to be written
cardLockingCan be "lock" or empty string. In case of "lock" read/write card will be locked and cannot be rewritten in the future. Default value is "".
This is a one way process. Locked card cannot be unlocked
tagIDDefines tag to which memory will be written. If ommited, memory will be written to all available tags.
memBankTag memory bank
addressAddress from where to write data
lengthLength of the data written

Possible values for options:

OptionsSupported deviceDescription
"rawData"LineaInfinea, skID, ALR-S350, qIDminiWrites raw data onto the card. Write dialog will be shown
"ndefText"LineaInfinea and iPhoneWrites an NDEF message formatted as a Well Known text to the NFC card. Write dialog will be shown
"ndefUri"LineaInfinea and iPhoneWrites an NDEF message formatted as a Well Known URI to the NFC card according to the RTD. Write dialog will be shown
"ndefMime"LineaInfinea and iPhoneWrites an NDEF message formatted as a MIME data to the NFC card. Images and other data based MIME types should be passed as container. Write dialog will be shown
"ndefMultiple"iPhoneWrites multiple NDEF messages. Works only on iPhone. Parameter "value" has to be JSON see more in Writing multiple records from iPhone section. Write dialog will be shown
"iso15693"iPhoneWrites data to ISO15693 tag. Write dialog will be shown
"iso7816"iPhoneWrites data to iso7816 tag. Write dialog will be shown
"felica"iPhoneWrites data to FeliCa tag. Write dialog will be shown
"mifare"iPhoneWrites data to MiFare tag. Write dialog will be shown
"terminalMessage"Ingenico terminalsWrites a message to the terminal. Catch replies with Gonector_SetScriptEvent

Writing multiple records from iPhone

Example: Gonector_Write("iPhone" ; "ndefMultiple" ; "[{"type": "ndefText", "value": "text to write"}, {"type": "ndefUri", "value": "https://24usoftware.com"}, {"type": "ndefMime", "value": "dGVzdA==", "mime_type": "text\/plain"}]"
This will write 3 NDef messages to the tag.

Description

Plugin writes data through the selected device. In case of NDEF format, the card is formatted so that it is iPhone 7+ readable. The card will be completely rewritten.

Result

Function returns 0. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_Write( "LineaInfinea" ; "ndefUri" ; "https://www.24usoftware.com")
This writes an NDEF message as a URI to the present NFC card through the Linea or Infinea device.

Gonector_Write( "LineaInfinea" ; "ndefMime" ; test::container )
This writes an NDEF message as a MIME to the present NFC card through the Linea or Infinea device.

Gonector_Write( "LineaInfinea" ; "ndefText" ; "Hello World" ; "lock")
This writes an NDEF message as a Text to the present NFC card through the Linea or Infinea device and lock it.

Gonector_Write( "skID" ; "rawData" ; "Hello World" ; "" ; "1" ; 3 ; 0 ; 11)
This writes "Hello World" to user memory bank from addres 0 on RFID card.

Gonector_Write( "MYS350Reader_1ALR350" ; "rawData" ; "Hello World" ; "" ; "1" ; 3 ; 0 ; 11)
This writes "Hello World" to user memory bank from addres 0 on RFID card.

Gonector_Write( "iPhone" ; "ndefText" ; "Hello World" )
This writes an NDEF message as a Text to the present NFC card through the iPhone.

Gonector_Write( "iPhone" ; "iso15693" ; "Hello World" )
This writes data to ISO15693 tag through the iPhone.

Gonector_Write( "iPhone" ; "iso7816" ; "Hello World" )
This writes data to ISO7816 tag through the iPhone.

Gonector_Write( "iPhone" ; "felica" ; "Hello World" )
This writes data to FeliCa tag through the iPhone.

Gonector_Write( "iPhone" ; "mifare" ; "Hello World" )
This writes data to MiFare tag through the iPhone.

Gonector_RawCommand( deviceName ; value { ; option })

Sends raw data to the BlueSnap Smart or Zebra ZQ630 device

Parameters

deviceNameUnique name of the device
valueString of the data to be sent
optionAdds various options to raw command

Possible values for option.

"buffer"This option can be used to store multiple raw commands in buffer.

Supported only on Zebra ZQ630, this option will allow to store in buffer raw commands, barcodes, texts and RFIDdata if we want to print them to one RFID tag.

Description

This function is used to send raw data to the scale. See the scale's manual to see what kind of messages the scale supports.
In case of Zebra ZQ630, this function is used to send raw ZPL commands to the printer. See printer's manual for more info.

Result

Function returns 0. In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_RawCommand( "MIN-7943" ; "R" )
This command sends RawCommand "R" to the BlueSnap Smart device

Gonector_RawCommand( "ZQ630" ; "^XA^FO50,50^A0N,40^FDSimple write example^FS^XZ" )
This command sends RawCommand to ZebraPrinter that will print "Simple write example" on position (50, 50) and size 40

Gonector_DoTransaction( deviceName ; posNumber ; amount ; transactionType ; currency ; applicationNumber ; authorization { ; extendedData { ; privateData } } )

Processes a transaction

Parameters

deviceNameUnique name of the device
posNumberPOS Number
amountAmount of the transaction. 500 means 5.00 with the ČSOB Link/2500
transactionTypeTransaction Type ( Debit = "0", Credit = "1", Annulation = "2", Duplicata = "3" ). It can also be something else depending on the agreement with the provider (bank)
currencyThe currency code in ISO4217 format. E.g. "978" for EUR
applicationNumberThe number of the terminal application that should be invoked to handle the transaction. If this parameter is set to 0, the payment application will be implicitly selected
authorizationAuthorization flag: force or not the application to do an online authorization call. Pass a "0", "1" or "2". "0" is no authorization. You can obtain the correct value from your provider (bank). The tested Link/2500 ČSOB version was functional with "0">
extendedDataCertain banks require extended data to be sent. Pass a TLV encoded container or text string. Use function Gonector_Prepare to prepare string into TLV data if needed
privateDataApplication specific data to be passed to payment application. Max size 10 bytes

Description

This function is used to process a transaction.

Result

This function returns always a 0. Use Gonector_SetScriptEvent to receive the reply.

Examples

Gonector_DoTransaction( "Link/2500-163637313071041701279653" ; "1" ; "500" ; "0" ; "203" ; 0 ; 0 ; "INVOICENUM=0" )
This function call issues a command to the terminal to make a payment of 5,00 CZK on the ČSOB version of Ingenico Link/2500.

Gonector_Submit( deviceName ; selector ; value )

Submits a request

Parameters

deviceNameUnique name of the device
selectorSelects an action type
valueThe value to be submitted

Possible values for selector:

OptionsSupported deviceDescription
"signature"Ingenico terminalsValue must be a container containing an image. Use function Gonector_Prepare to resize the image into the height and width received through Gonector_SetScriptEvent

Description

This function is used to submit a request typically received through Gonector_SetScriptEvent.

Result

Function returns 0 in case of success. In case of error the function returns "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_Submit( "Link/2500-163637313071041701279653" ; "signature" ; test::signature )
This submits a signature from container test::signature.

Gonector_Prepare( deviceName ; selector ; item { ; parameter1 { ; parameter2 } } )

This function helps to prepare data for specific tasks needed by other functions such as Write("terminalMessage") and Submit("signature")

Parameters

deviceNameUnique name of the device
selectorSelects a type of preparation
itemThe item to be prepared

Possible values for selector:

OptionsSupported deviceDescription
"imageResize"Ingenico terminalsItem must be a container containing an image. Pass width as a parameter1 and height as parameter2
"tlvEncode"Ingenico terminalsTakes a type as a parameter1 and returns a JSON with TLV encoded Base64 data. Only one byte type/tag is supported. Constructed TLV is not supported
"tlvDecode"Ingenico terminalsTakes a container with TLV encoded data and returns a JSON with data and type representing the TLV extracted data based on X.690

Description

This function is used to prepare data.

Result

Function returns a modified value based on the selector.
In case the result is a string it is passed as "data". In case the result is binary then the actual result is passed as "base64Data". The result format is a JSON string such as this:
[ { "deviceName": "", "type": "", "base64Data": "Data returned", "data": "Data returned" } ]
In case of error the function will return "?". Use Gonector_Get( "lastError" ) to get the specific error code.

Examples

Gonector_Prepare( "Link/2500-163637313071041701279653" ; "imageResize" ; test::signature ; 40 ; 20 )
This prepares a signature from container test::signature and returns a JSON with base64Data containing the resized image.

Gonector_Prepare( "Link/2500-163637313071041701279653" ; "tlvEncode" ; "INVOICENUM=0" ; 12 )
This prepares text INVOICENUM=0 as a UTF-8 String type conforming to the X.690 standard.

Registered Custom Script Steps

Guides

Setup to send data for SetScriptEvent faster

Gonector error codes

Use Gonector_Get( "lastErrorMessage" ) to get the specific error message

0No errorAll requested actions were successful
-4Feature not implementedThe requested feature is not implemented
-10RawCommand failedCould not send data to device
-11Scale is not configuredScale is not configured, please use Gonector_Set with "scaleReadCommand" and "scaleWeightPattern" selectors to configure scale
-12Invalid regexProvided pattern is not regex
-13Scale is in config modeScale is in configuration mode, please finish your configuration before using device.
-20CUTTER ERRORPrinter specific error, please refer to device manual for more informations
-21EEPROM ERRORPrinter specific error, please refer to device manual for more informations
-22FFPRESSEDPrinter specific error, please refer to device manual for more informations
-23OVERVOLTAGEPrinter specific error, please refer to device manual for more informations
-24LFPRESSEDPrinter specific error, please refer to device manual for more informations
-25NEAR PAPER ENDPrinter specific error, please refer to device manual for more informations
-26HEAD UPPrinter specific error, please refer to device manual for more informations
-27COVER OPENPrinter specific error, please refer to device manual for more informations
-28NO PAPERPrinter specific error, please refer to device manual for more informations
-29OVERTEMPERATUREPrinter specific error, please refer to device manual for more informations
-30PAPER JAMPrinter specific error, please refer to device manual for more informations
-31PAPER ROLLINGPrinter specific error, please refer to device manual for more informations
-32RAM ERRORPrinter specific error, please refer to device manual for more informations
-33SPOOLINGPrinter specific error, please refer to device manual for more informations
-34TICKET OUTPrinter specific error, please refer to device manual for more informations
-35Invalid character in textText contains characters outside supported Extended ASCII character set
-36Printer errorPrinter indicates that the printing command failed. Use Gonector_Get( "lastErrorMessage" ) to get the specific error message
-37Printer status errorPrinter indicates that it is not able to function properly. Use Gonector_Get( "lastErrorMessage" ) to get the specific error message
-40Linea Infinea ErrorIndicates an error on the Linea or Infinea device. Use Gonector_Get( "lastErrorMessage" ) to get the specific error message
-50Wrong parametersPlugin was called with wrong parameters
-51Device not connectedThe device is not connected
-52Device already connectedThe device is already connected
-53Device not supportedSelected device is not supported
-54Operation timeoutLast funcion timeout, please check device and try again later
-55Invalid device typeProvided device type is not supported
-56Invalid device nameCould not find device with provided name, use Gonector_Set with "devices" selector to get available devices
-57Invalid read modeProvided read mode is not supported
-58Invalid read typeProvided read type is not supported
-59Invalid print typeProvided print mode is not supported
-60Firmware version not availableCould not get firmware version
-61Software version not availableCould not get software version
-70Ingenico device errorIndicates an error on an Ingenico device. Use Gonector_Get( "lastErrorMessage" ) to get the specific error message
-80Unknown errorUse Gonector_Get( "lastErrorMessage" ) to get the specific error message
24001Demo mode expiredIf you want to keep using the plugin, you must register it or buy it for particular environment
24002Product expiredTrial period is over. If you want to keep using the product, you must buy it for particular environment
24003SN limit was metThe serial number is already registered on too many computers
24004Product is deadThe product expired and cannot be used any more. Please download the new version from 24U Software
24005Invalid serial numberSerial number you entered is not valid
24006Activation failedActivation failed probably due to some network error. Please, check your connection to the internet and try again later
24007Deactivation failedDeactivation failed probably due to some network error. Please, check your connection to the internet and try again later
24008Unknown serial numberThe given serial number cannot be used for the current product. It has been stored so that other product can try to use it
24009Blacklisted serial numberThe given serial number has been blacklisted and cannot be used anymore. Please, contact 24U Support if you need more information