Gonector 1.1 Syntax

Specification revision: 23, 2018-06-29.

Created by: Martin Vraný, Patrik Horčičák, Zdeněk Hejl, Lukáš Liebzeit ©2018 24U Software.

1. Basic technical parameters

File name:Gonector.fmplugin
plugin ID String:24GO
Function names prefix:Gonector_
iOS version:11.2.6 and newer
SN product code and versions:GON11I
SNLib version:SNlib-iOS 1.0
Supported Bluetooth 4.0 devices: qIDMiniqIDmini with Apple profile (R1170IEAPLP) produced by CAENRFID
Custom MyPrinter A
Custom MY3 A
BlueSnap Smart (RS232 to Bluetooth adapter)
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
Supported iOS devices for native RFID/NFC tag reading:iPhone 7 and higher with iOS 11 and newer
Supported NFC cards:ISO 14443A (Mifare Classic 1k, Mifare Ultralight)
ISO 15693 cards
Product icon:

2. Distribution archive (DA)

3. 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

4. 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"Returns only one of two states: "Registered" or "Unregistered"
"Unregister"Unregister all serial numbers related to the product and return an error code

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
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 and qIDMiniqIDmini 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( "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( "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_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
"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.
"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" or "qIDMiniqIDmini" as option parameter to specify Your request
"connectedDevices"All bluetooth devicesReturns all connected (via Gonector_Connect) devices separated by ¶. Use "customPrinter", "blueSnapAdapter" 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 )
"ndefSignature"Linea and Infinea
iPhone
Get a signature of the record if present
"nfcCardUid"Linea and Infinea
iPhone
Get the UID of the card
"imageAlignment"Custom printersReturns "left", "center" or "right"
"imageScaling"Custom printersReturns case "none", "scaletofit" or "scaletowidth"
"imageWidth"Custom printersReturns the width (in pixels) value from the printer
"fontType"Custom printersReturns "wide" or "narrow"
"fontWidth"Custom printersReturns a value of 0 through 7
"fontHeight"Custom printersReturns a value of 0 through 7
"fontSize"Custom printersReturns "fontWidth¶fontHeight"
"fontAlignment"Custom printersReturns "left", "center" or "right"
"fontBold"Custom printersReturns "on" or "off"
"fontItalic"Custom printersReturns "on" or "off"
"fontUnderline"Custom printersReturns "on" or "off"
"barcodeAlignment"Custom printersReturns the alignment of barcodes
"barcode1dWidth"Custom printersReturns the width (in pixels) of 1D barcodes
"barcode2dWidth"Custom printersReturns the width (in pixels) of 2D barcodes
"barcodeHeight"Custom printersReturns the height of barcodes. This value has no effect on 2D codes
"barcodeHri"Custom printersReturns "Human Readable Interpretation" position for 1D codes. Possible values are "none", "top", "bottom" or "topbottom" for both top and bottom
"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

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( "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_Set( selector ; option { ; newValue { ; oldValue } } )

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

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
"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
"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
"fontType"Custom printersIn the pluginSets "wide" or "narrow" for type of characters while printing. Pass this value as a newValue parameter. fontType 0 has wider characters and wider character spacing compared to fontType 1 but general shape is the sameDefault value is "wide"
"fontHeight"Custom printersIn the pluginSets 0 through 7 value for height of characters while printing. Pass this value as a newValue parameter
"fontWidth"Custom printersIn the pluginSets 0 through 7 value for width of characters while printing. Pass this value as a newValue parameter
"fontSize"Custom printersIn the pluginSets 0 through 7 value for size of characters while printing. Pass this value as a newValue parameter
"fontAlignment"Custom printersIn the pluginSets "left", "center" or "right" alignment for printing. Pass this value as a newValue parameter
"fontBold"Custom printersIn the pluginSets "on" or "off" for printing. Pass this value as a newValue parameter
"fontItalic"Custom printersIn the pluginSets "on" or "off" for printing. Pass this value as a newValue parameter
"fontUnderline"Custom printersIn the pluginSets "on" or "off" for printing. Pass this value as a newValue parameter
"fontReset"Custom printersIn 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")
"imageAlignment"Custom printersIn the pluginSets "left", "center" or "right" alignment for printing. Pass this value as a newValue parameter
"imageScaling"Custom printersIn the pluginSets case "none", "scaletofit" or "scaletowidth" for printing. Pass this value as a newValue parameter
"imageWidth"Custom printersIn the pluginSets width (in pixels) value for printing. Pass this value as a newValue parameter
"imageReset"Custom printersIn the pluginResets the plugin image settings to default ("imageAlignment" = "center", "imageScaling" = "none", "imageWidth" = 100)
"barcodeAlignment"Custom printersIn the pluginSets "left", "center" or "right" alignment for barcode printing. Pass this value as a newValue parameter
"barcode1dWidth"Custom printersIn the pluginSets the width (in pixels) of the thinest line for a 1D barcode. Whole numbers only (recommended 2 or 3)
"barcode2dWidth"Custom printersIn the pluginSets the width (in pixels) for a 2D barcode. Width (in pixels) of the whole code (recommended min. 100, for PDF417 barcode type at least 300)
"barcodeHeight"Custom printersIn the pluginSets height for 1D barcode. This selector is not supported for 2D codes because those have constant aspect ratio
"barcodeHri"Custom printersIn the pluginSets a "Human Readable Interpretation" position for 1D codes. Possible values are "none", "top", "bottom" or "topbottom" for both top and bottom
"barcodeReset"Custom printersIn the pluginResets the plugin barcode settings to default ("barcodeAlignment" = "center", "barcode1dWidth" = 3 (px), "barcode2dWidth" = 100 (px), "barcodeHeight" = 100 (px), "barcodeHri" = "bottom")
"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"
"stripeKey"Linea and InfineaIn the pluginSets a stripe key for daily use
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
"newStripeKey"Linea and InfineaIn the deviceSets a new stripe key once before the first use
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

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

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( "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_PrintText( deviceName ; text { ; printMode } )

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

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.
"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. 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( "MYPrinterA_1" ; "Name: " ; "on""buffer" ) & ¶ & Gonector_Set( "fontUnderline" ; "MYPrinterA_1" ; "on""buffer" ) & ¶ & Gonector_PrintText( "MYPrinterA_1" ; "name@example.com" )
This prints "Name: name@example.com" on the device MYPrinterA_1.

Gonector_PrintImage( deviceName ; imageContainer )

Prints png or jpeg image from container.

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_PrintCode( deviceName ; type ; text )

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

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. The 14 digits barcode is only 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
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
EAN1313 digits. Supplemental code is not supported. The code must be valid
EAN88 digits. The code must be valid
CODE39Upper case letters, numbers, some symbols, (A-Z, 0-9, space, $ % + - . /)
ITFUp to 14 digits. The code must be valid
CODE9343 basic symbols (0–9, A-Z, "-", ".", "$", "/", "+" and "%")
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
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
Type of 2D codeDescription and limitations
DATAMATRIXAll ASCII characters. Supports UTF-8 data stream
PDF417All ASCII characters. Recommended minimum barcode2dWidth is 300 (px)
MICROPDF417All ASCII characters. The code must be valid
AZTECAll ASCII characters. Supports UTF-8 data stream
QRCODEAll ASCII characters. Supports UTF-8 data stream. Kanji is not supported
MICROQRCODEAll ASCII characters. Supports UTF-8 data stream. Kanji is not supported

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( "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_SetScriptEvent( deviceName ; event ; scriptName )

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

Possible values for event.

eventSupported devicesExplanationScript parameter
"onTagAttach"qIDMiniqIDminiRun the script when a tag approaches qIDMiniqIDmini 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" } ] ]
"onTagDetachqIDminiRun the script when the qIDMiniqIDmini 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" } ] ]
"onTagDetachqIDminiRun the script when the qIDMiniqIDmini 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" } ] ]
"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 InfineaRun 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" } ] ]

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_Read( deviceName { ; selector { ; options } } )

Reads data from a device.

Parameters

deviceNameUnique name of the device
selectorUsed to specify the request
optionsAdditional selector for some requests

Possible values for selector:

SelectorSupported deviceDescription
"single" qIDMiniqIDmini
Scale
iPhone
LineaInfinea (barcodes, RFID cards, magnetic stripes)
Read dialog will be shown for iPhone and Linea or Infinea device.
This dialog closes after one item read. This is the default
"single" qIDMiniqIDmini
Scale
iPhone
LineaInfinea
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"qIDMiniqIDmini
iPhone
LineaInfinea (barcodes, RFID cards)
Read dialog will be shown for iPhone and Linea or Infinea device.
This dialog closes when "Done" button is hit
"multiple"qIDMiniqIDmini
iPhone
LineaInfinea
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" qIDMiniqIDmini
iPhone
LineaInfinea (barcodes, RFID cards)
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
"unique" qIDMiniqIDmini
iPhone
LineaInfinea
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"qIDMiniqIDmini
Scale
iPhone
LineaInfinea (barcodes, RFID cards, magnetic stripes)
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"LineaInfineaReads a magnetic stripe. To successfully read the magnetic stripe, a stripe key must be set
"rfidCard"LineaInfineaReads an RFID card
"barcode"LineaInfineaReads a barcode

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.

Examples

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

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_Write( deviceName ; options ; value { ; cardLocking } )

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

Possible values for options:

OptionsSupported deviceDescription
"rawData"LineaInfineaWrites raw data onto the card. Write dialog will be shown
"ndefText"LineaInfineaWrites an NDEF message formatted as a Well Known text to the NFC card. Write dialog will be shown
"ndefUri"LineaInfineaWrites an NDEF message formatted as a Well Known URI to the NFC card according to the RTD. Write dialog will be shown
"ndefMime"LineaInfineaWrites 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

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" ; "on""lock")
This writes an NDEF message as a Text to the present NFC card through the Linea or Infinea device and lock it.

Gonector_RawCommand( deviceName ; value )

Sends raw data to the BlueSnap Smart device

Parameters

deviceNameUnique name of the device
valueString of the data to be sent

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.

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

5. Registered Custom Script Steps

6. Device Specific Instructions

LESAK J1-RWP - Gonector_SetScriptEvent setup (needs to be manual)

On stable"St1", "StC" or "StAB"
Continous"Cont"

LESAK J1-RWP - Gonector_Read setup (needs to be manual)

Traveler TA301 OHAUS - general setup

BlueSnap Smart - Bluetooth 4.0 (BLE) to RS232 Adapter setup

MY3 A printer setup

LineaInfinea troubleshooting guide

Connecting to the device:

LineaInfinea stripe key guide

To manipulate the key for stripe reading You have two functions:
_Set( "deviceStripeKey" ; ... ) and _Set("connectionStripeKey" ; ... ).
Function _Set( "deviceStripeKey" ; ... ) stores the StripeKey directly in the device and so the plugin has no access to this key.
After every Connect function You should set the same key with function _Set("connectionStripeKey" ; ... ) for stripe reading.
In fact the StripeKey is not used to decrypt the card. The StripeKey is used as a "Loading key" and at the same time a random session key is created and stored in the device and the plugin.
The StripeKey is never stored in the plugin.
Like this the plugin does not know the StripeKey and the user does not know the session key.
The device knows both keys and is able to provide handling for both keys.
As soon as the function Disconnect is called the session key disappears.
Those mechanics are provided by the device and they serve to protect the credit card data.
The plugin was designed to comply with those rules.

How to use the StripeKey:

Note: You don't need to set the deviceStripeKey anymore unless it becomes reasonable according to the PCI compliance.

Set up to send data for SetScriptEvent faster

7. 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
-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