Elmi-TSLink allows to forward a bar code scanner attached to a terminal client to an application on the terminal server (ex:Elmi-ScanLink).
Elmi-TSLink was adopted to the Linux Thin Client HP T5570 with ThinPro Operating system (Linux 32 bit).
The screenshot to the right shwos Elmi-TSLink as a window on the ThinPro Desktop.
The tray icon for the state "Ok and transmittable" was changed from the green "O" to a yellow "O".
The reason is that this is visually closer to the yellow "C" (for "continue") which is more often the meaning, that the user should scan another code. The former green "O" did not ask to continue.
This is changed from ScanLink 5.0.2410.
All file steps (file in, lookup, file variable, file out) has two modifications:
Those enhancements apply from ScanLink/PrintLink x.x.2409
Within keyboard-emulation, shift and number block keys like up, down, PageUp etc. did not work.
Unfortunately, SAP uses CONTROL-SHIFT-DOWN
This is fixed in ScanLink x.0.2406
Terminal Server Support was enhanced by two methods to bring the data of a local bar code scanner to an Elmi-ScanLink running in the terminal session.
Method 1: Elmi-ScanLink contacts bridge program on users local computer
Within Method 1, Elmi-ScanLink opens a client socket to the client machine to contact the bridge program "Elmi-TSLink" which has a bidirectional communication to the Barcode scanner.
This is usable within a company network and allows to connect to any type of device with a bridge program installed. This are typically PC's on Windows, Linux or MAC-OS or mobile AIDC-devices using Windows Mobile.
Ilustration of method 1: Elmi-ScanLink contacts bridge program on users local computer
Method 2: Bridge program contacts right Elmi-ScanLinks on Terminal Server
Within Method 2, the Bridge program "Elmi-TSLink" contacts all Elmi-ScanLinks on the Terminal Server (there is one per session) and asks, if the session name matches. If yes, the connection is established.
This method compares as follows to method 1:
These methods are available from Elmi-ScanLink version x.0.2404.
The bridge program "Elmi-TSLink" is available for different platforms and requires an extra licence.
Ilustration of method 2: Bridge program contacts right Elmi-ScanLinks on Terminal Server
The following bug was fixed in Elmi-ScanLink 5.0.2374: The program did not restore minimized if closed minimized. It started as a normal window.
Two new step types are added to Elmi-ScanLink and Elmi-PrintLink:
Strings may be transformed to upper case, title case or lower case strings.
Strings containing URLs may be coded to a restraint character set using '%xx' sequences and changing the case of case-insensitive parts like the scheme and the host name.
This is helpful to put an URL on an RFID-Chip using 6 bit coding.
The module may also decode those URL's.
Both modules are available from version x.0.2376.
New application 'PortLink Mobile' allows to bridge a ScanLink on a terminal server to a Scanner on the client computer without any static configuration like IP-Adresses etc.
The new terminal functionality is available for ScanLink and PrintLink from Version x.0.2346.
Elmi-ScanLink and Elmi-PrintLink step 'Conditional Branch' may now save results of subexpressions to fields.
The fields are only set, if the branch is executed.
To the right, there is an example, where the first character of 'Article' is saved in 'ArticleGroup' and 'Lot' is split after the 10th character to 'Lot10' and 'Serial'.
This functionality is available for ScanLink 5.0.2317 and PrintLink 3.0.2317
Within the RFID applications "Electronic type plate" and "Personal Protection Equipment", Elmi-ScanLink RFID now offers a Read/Write solution complying ISO15961 data structure.
Three step types got enhancements:
Window Input may have a custom company logo in the upper corner. Entry fields may also be set by a Scan or by an RFID read. The window is now resizeable and a scrollbar apears if the size is not sufficient. Full-Screen mode (without any Frame and Title bar) is available to. Those extensions are also available for Elmi-ScanLink Verify/Integration and any Elmi-PrintLink Version.
The RFID control widget may be shown below the entry fields.
The formatter for Data structures using DI's may deal with tag matrixes and may prepare to lock only certain fields.
HF RFID Tag data may be locked per row.
An example combining all those possibilities is shown to the right. All fields are set if a tag is read. One may choose, if a the mandatory fields are locked on write. The RFID control is showen above the buttons.
Elmi-ScanLink 4/5.0.2246 show GS1 values with AI 31.. to 36xx in a different way:
The example on the right shows the result for the scan data "]C13102000001".
Elmi-ScanLink and Elmi-Printlink now feature highly extended data base support.
There are two new step types, data base input and output.
In addition, step type "DB Lookup" was extended to smoothly go with the others.
New functionality include:
Features are available with Elmi-ScanLink 5.0.2242 and Elmi-PrintLink 3.0.2242.
An error box appeared when the branch display should be displayed, but there are no U-Shaped arrows (thus no branch targets set).
This bug was introduced in ScanLink/PrintLink Version x.0.2145 dated 2013-02-26 and was fixed today in Version x.0.2207.
Sorry for the error.
Elmicron desktop products may suffer of a bug when the product uses a client socket to connect to a device like a bar code scanner, printer or portable. The bug degraded performance heavily and wrote the following many times in the log file:
2013-03-15 13:22:07 2 Error check error on connection 1.0: key "1.0" not known in dictionary (::port::ReadEvent 1)
2013-03-15 13:22:07 2 Error deleting write file event from port 1.0: key "1.0" not known in dictionary (::port::WriteEvent 1 0)
The bug was observed with Elmi-PrintLink and is fixed in revision x.x.2183 of all products.
Elmi-ScanLink prior to x.0.2168 showed an error box, when the "Device Support" Module was removed when the program was started with "Device User Interface" configuration on.
The error box arised when and an item of the main menu should be shown. This is fixed in the current version.
The branch display in the process step edit window allows to follow the step order. The shown arrows are now optimized to minimize crossings allowing a simpler overview. The images on the right show an example of the current and new display.
This applies to Elmi-ScanLink 5.0.2145 and Elmi-PrintLink 3.0.2145.
This applies to Elmi-ScanLink 4.0.2159, 5.0.2159 and PrintLink 3.0.2159.
Elmi-ScanLink uses the USB OPOS interface to use VCOM-like USB without the requirement of a windows driver.
The OPOS specification had one caveat in Symbology type transmission: no difference between Datamatrix and GS1-Datamatrix.
The new OPOS Specification V2.4 makes this difference and was implemented within Elmi-ScanLink.
The screenshot shows a Datalogic GD4400 scanning a GS1-Datamatrix. The symbology type is transmitted by the OPOS symbology ID '$36' and detected as such.
The error box on the right appeared when a data file read by the process step "File in" was not readable.
Elmi-ScanLink and Elmi-Printlink may be used as SOAP Web Service following WSDL 1.1.
Each start step "Webservice server" defines a Webservice Operation.
In the example to the right, the Paper-EDI generator of Elmi-PrintLink is invoked using a web service call. The code data for all delivery note pages is generated calling the web service with a table of delivery note items.
Elmi-ScanLink and Elmi-PrintLink have a new step type "Create matrix". Within its help, it is possible to create a matrix from cells, rows or columns.
The use-case is to facilate COM clients to set a matrix by its components, for example to create a Peper-EDI Symbol.
It is now possible to use Process Chains in ScanLink or PrintLink from a COM CLient.
The new step "Active-X server" may be used to start a process chain from a COM Client.
Fields may be set by the client before the start and may be retrieved after the run.
Supported envirements are 32 bit Windows Clients with local or remote binding.
Server COM objects may be created or a present one may be used to connect to.
The example to the right uses Elmi-PrintLink to format a Paper-EDI data structure for a COM client.
The following errors are fixed in Elmi-ScanLink 5.0.1937, when a file input step is deleted:
Standard sequence state for GS1 data structure is as follows:
The change in version 5.0.1934 was to add AI 02 to the list which transmits a lot, serial or expiry date.
Elmicron products now feature 3-level configuration file processing.
The following folders exists which may contain module config files:
|Level||Command Line||Default folder||Description|
Values overwrite any other setting.
May only be set manually.
2nd priority settings.
Values are saved into this folder.
3rd priority settings.
Primary used, if no custom settings are saved jet.
The contents is not any more copied to the Config folder.
Each level may be disabled by setting its path to the empty string.
Config is save to Config level, but may be directed to another folder using "-saveconf". If -saveconfig is set empty, no configuration is saved (as shown in the about->main info tab to the right).
Module config files for one module may exist in all levels. The contents shimmers from lower to higher priority settings.
In addition, it is possible, to configure and overwrite the command line parameters by the file '<initial config>/main_param.tcl'.
The file gets the current command line parameters in the array param and may modify values.
Example: Set conf parameter to the empty string:
set param(conf) ""
Elmi-Scanlink fault-tolerant ADC-structure(ISO 15434) did correct any errors without any comment.
Now, there are comments added and the state of the scan changes to "Non-standard".
Standard fields are configured with the file "cconf/identifier.csv". There is a new column "RE" which allows to specify a regular expression.
Using this regular expression, the following aims might be acheved:Empty field contents may be reallowed using an accept all regular expression: ".*"
The example expression only allows data "CMD" plus 2 letters. The given code contains 4 letters.
The example expression extracted the last 2 letters in the field "Command".
New step "Set language" allows to change the current user language.
The purpose is to have analysis reports in different languages.
A side effect may be seen in the log to the right: the log language changed within the log.
ScanLink installer has an option to remove the configuration of an eventual former installation of scanlink.
This deletes the folders "C:\Program files\scanlink\config\<computer name>" and C:\ProgramData\scanlink\config\<computer name>" before installation.
Using image scanner E1900 in POS mode resulted in an endless error beep after each scan.
This was due to the fact, that the scanner send a dummy scan after the emission of the beep which is interpreted by scanlink as errorneous data.
To cure this, the dummy messages must be listed as 'no read' bar codes.
The file 'c:\program files\scanlink\config\cconf\devices\index.csv' must contain a column 'lNoRead' with the following contents:
|Elmiscan E1902_POS||usb hid||2||trigger \4\4 transmit \4\x40 ready \4\x40 more \4\x40 ignored \4\x20 error \4\x20 fail \4\x20||]Z6BEPEXE1\6\x2e ]Z6BEPEXE4\6\x2e||type 2 vendorid 3118 productid 2343 order 10 auto 1|
The minimum port module version is 5.5. ScanLink from 4/5.0.1889 supports this column.
Windows 7 did not detect german language on some swiss computers.
English language was shown.
This was due to unreliable older Windows APIs using CLID instead of the newer LocaleName.
Now, LocaleName (de_CH) is used in preference.
The error 'node "10x" already exists' arised withhin tree views with more than 10 parent nodes.
This issue was present in all scanlink versions and is fixed in 4/5.0.1871.
In 5.0.1868 corrected bugs:
C:\Users\<current user>\AppData\Local\VirtualStore\Program Files\scanlink\config
It is straitforward to define custom data structures using the raw wizard.
Specially the test pane to enter and test a regular expression describing the raw data is quite useful (shown to the right).
The ScanLink 5 wizard was still using non-themed widgets and showed a processing error if the button of a combo-box was pressed.
This is fixed in version 5.0.1794.
Within the config page "Tk GUI", one may set the list of shown buttons.
In addition, the following optional buttons are available. They are specially useful if no menu is shown:
- Exit program
- Show program configuration
- clear log window
Application identifiers treatment was enhanced:
- Lot(10). Serial(21): Check character set
- GRAI (8003) Check Issuer and checksum
- GIAI (8004): Check issuer
There are many steps missing on this blog. ScanLink 5 is out for almoust one year now. So lets restart with the work of the last days:
ScanLink 5 was adopted to Windows Mobile 5 and 6.
- windows mobile menu
- function key bindings editable
The following features apply to all versions:
- Menu-free mode with optional exit button
- New keybindings testpad in the about box (card 'gui info')
Data Identifiers (7Q) and Application Identifiers (3xx) with Units are shown in a different way.
There is a new field "Unit".
The measurement remains in the field "Quantity_<Unit>". In the example to the right, the field name is "Quantity_NetWeightKg".
The format of the configuration file "cconf/unit.csv" has changed. There are now 3 columns Table, Code, Unit, Name_de and Name_ROOT.
Table may by "X12" or "GS1", Code is the Measurement code, Unit is the Unit Index and Name_de and Name_ROOT are the display labels in german and default language.
Example contents to get the result on the right is:
|X12||58||NetWeightKg||Net Weight[kg]||Nettogewicht [kg]|
On the program configuration page 'Main', one may specify a name for the current configuration. This name is shown in the about box on the "Info Main" page.
In the example on the right, the name "BC 1.0" was given.
The purpose of this feature is to manage multiple configurations.
The incrementing Elmi-ScanLink build number is now appended to the Elmi-ScanLink version number and shown in the about dialog box on the product page. In the image to the right, the build number is 1446 which results in a version number of 5.0.1446.
This version number is also included in the string resource of the executable file and thus displayed by the windows explorer.
Remark that the string version number is shown by any windows but Vista SP2 or SP3. See here for an explanation.
Each date was formatted with an appended hour: "2011-09-06 23".
"23" was set if no hour was specified.
From now on, the hour is only appended, if there was really an hour specified.
Otherwise, it is omitted.
As a client reported today, that it was only possible to open a serial link forwarded by RDP when the parameter 'serial buffer size' is set to 0.
This parameter was added to the wizard, asit was only awaylable from the general program config.
When a keyboard rule fires, Scanlink does not send the data if one of its windows has the input focus.
Instead, a state message is shown as on the screenshot.
The data structure TEI (Text identifiers) is now implemented in a basic manner. This structure is only detected within a mode 12 segment of a ADC structure.
Here is a scan of a TEI UID construct 1:
Additional ASC (DI's), GS1 (AI's) and TEI Identifiers may now be set by the file:
This file is comma separated (and not ';') and utf-encoded.
It contains the columns Structure (e.g. ASC, GS1, TEI), Index, Name, Name_en and Name_de.
The last three columns represent the shown name and may be given as one for all localisations (Name) or different for the current localisations en (English) or de (German).
If no name is given, a default or an internal name is used.
This functionality is disabled by default and may be activated by a checkbox in the program configuration - card: selector.
When defining keyboard emulation output, current fields may be included using <Field name>.
There might be additional formatting options added after the field name using the separator ':':
Curly braces are used to show optional parts.
The following table explains all formatin options.
The example output is used in the context, that only the field 'Article' exists with the contents 'ABC'.
Set a default string if the tag does not exist. Without default string, a nonexistent tag is an error. Special characters may be inserted by its hex code using &xx.
If variable exists (e.g. no default), prefix the value by this string. Special characters may be inserted by its hex code using &xx.
If variable exists (e.g. no default), postfix the value by this string. Special characters may be inserted by its hex code using &xx.
|S<Start>:||<Article:S1:>||BC||Start output at given character index (first has index 0).|
|M<S1>_<R1>:||<Article:MA_Q_B_R:>||QRC||Replace strings <Sx> by strings <Rx>. Special characters may be used by its hex code using &xx.|
|L<C>||<Article:LA>||BC||Left trim by character 'C'.|
Left align instead of right align.
May only be used with an output size.
Fill with 0 instead of spaces.
May only be used with an output size.
Set output size.
An eventual Prefix or Postfix string is not included.
In addition, a long standing bug was fixed.
When the current string was shorter than the specified length, it was cut at the wrong side.
The errors may be illustrated by the second examples of row '-' and '<Length>'. The wrong output was:
<Article:-2> -> BC
<Article:2> -> AB
At the moment, a HIBC code might correspond to the IAC (Issuing Agency Code) 'RH' or 'LH'.
An option within ScanLink treats this fact:
The reflected HIBC issuer may be chosen:
- HIBCC: Always use "RH" for any variable output
- EHIBCC: Always use "LH" for any variable output
- both: Look to the labeler data base. If Labeler not found, use "LH" if LIC starts with "E" and "RH" otherwise.
In the following example, the setting was set to "HIBCC", so "RH" is reflected even for known "EHIBCC" members:
The Product ElmiPrint is close to its 3rd release with an Aero user interface and an action processing chain.
Those points will be migrated to ScanLink in some months.
Here is a screenshot of ElmiPrint:
The configuration of the lookup page uses the table widget now.
It is not necessary any more to enter all table values in one row with additional quotes.
New feature: In addition to the autogenerated query, a raw SQL query may be used for the lookup.
Fixed bug: fix table creterias are now SQL-decorated, e.g. embraced with '[column]' and prefixed by the table owner (owner.column).
Parser Module 7.4 has the following bug fixed:
- A syntax error occured when the Structure type was changed within a scan form HIBC to GS1.
ScanLink Integration supports a tray icon with state feedback.
The Tray Icon may be activated on the config page "Generic GUI", checkbox "Tray Icon".
There are 3 Window states with the following visual elements:
Tray) only tray icon
Application) tray icon and application window with its taskbar entry
Iconified) tray icon and taskbar entry (application window is iconified)
Klick on the tray icon to pass from (Tray) to (Application).
Klick on the applications titlebar X-button to change from (Application) to (Tray).
Klick on the applications titlebar minimize button to change from (Application) to (Iconified).
To really exit the program, one may use the tray icon menu or the application file menu entry: quit.
The last state is restored on next program start.
The tray icon scan state feedback may be activated on the config page "Tk GUI", checkbox "Scan state in Tray".
The tray icon and its context changes with the current scan state in a similar way as the Ok page.
Here are the possible states:
Errorneous scan ignored
Scan sequence complete
Scan sequence failed
Selectors on single scans may now change the state of the current scan.
The last page of the wizard shows the possible options:
This feature is still half baken, because it gives only access to the variables of the current scan.
This might be changed.
This new feature influences the logic of an end scan sequence detection.
The end sequence detection may be set in the program configuration->Parser->Processing->Transmit (ready). Two new variables are available which reflect the current focus window class and title.
Regular expressions may be used to make those dependent on a windows focus.
The windows editor has the windows class "Notepad" (might be found out be the select wizard).
The following added rows in the Transmit rule will terminate a scan if NotePad has the focus and if a serial number is scanned:
The added lines are
|| : or with the other rules
Serial : transmit if serial exists
_WinFocusClass "^Notepad$" : and if Window with class "Notepad" has the focus
Alternatively, the title variable might be used: "_WinFocusTitle".
Raw structures were present for a long time within ScanLink.
The drawback was the configuration which was always a painful task.
A new raw structure wizard allows to create raw structures in a comfortable way.
There are 4 Key steps:
A set of symbologies might be chosen from a list:
The raw structure expression may be entered and tested against test data.
The test data might be captured with the scanner.
The output variables and comments may be chosen from a predefined list or entered manualy
In the last step, the structure definition might be inserted in the active structure list.
This was already possible within the parse structures menu.
As this is the logical last step, it is repeated here by a wizard page.
The labeler data base may now be updated from the internet using corresponding the parse menu entry.
The news of ScanLink from 2010-10-12:
Configuration pages redesign
The configuration pages now features separator lines and chapter titles:
The so called multi widget to edit a list is now replaced by a set of widgets to edit (sorted) tables and lists.
Within those widgets, each row may have its own config page.
In addition, a file, folder and color picker was added.
The icon shows a plug and is part of the new Elmicron Icon set:
There are now two modes to invoke actions
- After a complete validated scan sequence
- After each physical scan to give feedback to the user via actions
Windows service installation via option in config menu
Structure type "EAN" was renamed to "GS1" (These therms might be tradmarks of GS1 GmbH).