Intermec Corporation
6001 36th Avenue West
P.O. Box 4280
Everett, WA 98203-9280
U.S. technical and service support: 1-800-755-5505
U.S. media supplies ordering information: 1-800-227-9947
Canadian technical and service support: 1-800-688-7043
Canadian media supplies ordering information: 1-800-268-6936
Outside U.S. and Canada: Contact your local Intermec service supplier.
The information contained herein is proprietary and is provided solely for the purpose of
allowing customers to operate and/or service Intermec manufactured equipment and is not to
be released, reproduced, or used for any other purpose without written permission of Intermec.
Information and specifications in this manual are subject to change without notice.
1995 by Intermec Corporation
All Rights Reserved
The word Intermec, the Intermec logo, JANUS, IRL, Duratherm, Virtual Wedge, and CrossBar
are trademarks of Intermec Corporation.
Throughout this manual, trademarked names may be used. Rather than put a trademark ()
symbol in every occurrence of a trademarked name, we state that we are using the names only
in an editorial fashion, and to the benefit of the trademark owner, with no intention of
infringement.
Contributors
AuthorsBeryl Doane
Maureen Norling
EditorCraig Thompson
Technical IllustratorsJohn Bickley
George Wilson
Technical ReviewersRoy Law
Yong-Qin Lu
Manual Change Record
This page records the changes to this manual.
VersionDateDescription of Change
0019/94This manual was first released as version -001.
0027/95Renumbered chapters and made other changes according to
current Technical Publications document standards.
Updated manual to support the Programmer’s Software Kit
version 2.1. The new information includes:
Functions to support JANUS J2050 VMU.
Preamble and postamble functions.
Other new topics include:
Using the status code macros.
Using JANUS Application Simulator.
Deleted the following five functions from the manual. They are
still available in the PSK library, but Intermec does not
recommend using them:
This section introduces you to standard warranty provisions, safety
precautions, warnings and cautions, document formatting conventions, and
sources of additional product information.
Warranty Information
To receive a copy of the standard warranty provision for this product,
contact your local Intermec sales organization. In the U.S. call (800) 7555505, and in Canada call (800) 688-7043. Otherwise, refer to the Worldwide
Sales & Service list shipped with this manual for the address and telephone
number of your Intermec sales organization.
Cautions
The cautions in this manual use the following format.
Before You Begin
CAUTION
Caution
A caution alerts
statement that must be strictl
destruction, or corru
Conseil
Une
récaution vous alerte d’une procédure de fonctionnement, d’une
méthode, d’un état ou d’un ra
em
êcher l’endommagement ou la destruction de l’équipement, ou l’altération
ou la perte de données.
ou to an operating procedure, practice, condition, or
observed to prevent equipment damage or
tion or loss of data.
ort qui doit être strictement respecté pour
xi
JANUS PSK for Ada Reference Manual
g
g
y
p
About This Manual
This manual is part of the JANUS Programmer's Software Kit manual set. It
describes the special features and methods needed for programming the
JANUS family of PC-compatible readers. If you plan to write programs in
Ada, the information in this manual is very valuable. You may also refer to
one of the other books listed under “Other Intermec Manuals” later in this
section.
Organization
The JANUS Programmer’s Software Kit for Ada Reference Manual is divided
into three chapters and one appendix as described below:
ChapterWhat You Will Find
1Gettin
This chapter describes the capabilities and programming
methods applicable to the Intermec family of PC-compatible
readers. It also explains how to install the Programmer’s
Software Kit Language Libraries disk that is provided with
this manual.
2Workin
This chapter describes how to write applications in Ada
using the library functions.
3Ada Librar
This chapter explains the purpose and syntax for each Ada
function and provides samples.
Appendix AStatus Codes
This appendix lists status codes that are returned by the
PSK functions.
Appendix BSam
This appendix lists sample applications written in the Ada
language.
Started
With Ada
le Programs
xii
Before You Begin
Terms and Conventions
• A reader is the JANUS 2010, 2020, or 2050 PC-compatible bar code reader.
• An operator is anyone who runs applications on the reader.
• A programmer is anyone who writes applications for the reader.
• A normal PC is assumed to be a DOS-based PC/AT-compatible 386, with
a hard disk, 14-inch monitor, full-size keyboard, floppy disk drives, and
at least two communication ports.
• Reader services are the functional abilities that distinguish the Intermec
family of PC-compatible readers from a normal PC. For example, the
reader’s ability to decode bar code data as if it came from a PC keyboard
is a typical reader service.
• Software interrupts are the synchronous triggering of interrupts used for
application program interfaces.
• Library functions are the specialized Ada functions provided in the
language libraries that you use to invoke various reader services.
• PSK means the Programmer’s Software Kit and refers to both the
language libraries and this manual.
• The Programmer’s Software Kit Language Libraries is the disk shipped with
this manual. It contains sample programs and library functions for
interfacing with the reader.
• The keypad is the custom JANUS keyboard. Throughout this manual,
specific references to the JANUS keyboard use the term keypad.
• The keyboard buffer is the machine-level buffer that stores key presses
and scanned labels. Throughout this manual, specific references to this
buffer and its status flags use the term keyboard.
xiii
JANUS PSK for Ada Reference Manual
Keypad Input
• Keys that you press on the keypad are emphasized in bold. For example,
“press Enter” means you press the key labeled “Enter” on the reader
keypad.
• All key names use first-letter capitalization. For example:
Ctrl = Control key
Enter = Enter key
F3 =F3 key
• When you are required to press and release a series of keys in order, the
keys are listed in order with no connectors. For example, to enter the
uppercase character A, press Shift A. To enter this character, you press
and release the Shift key, and then press the key marked A.
• When you are required to press more than one key at the same time, the
keys are connected by a dash in the text. For example, press Ctrl-Alt-Del
to perform a warm boot on a standard PC. When the keys are connected
by a dash, it is important that you press and hold the keys in the order
they are listed in the text.
xiv
Commands
• DOS commands are printed in Courier, exactly as you must type them.
For example:
COPY INTERMEC.* E:\
• Code examples are printed in 8-point Courier. For example:
if(step != 0) level = step;// use step value if provided
if(level >= 31) level = 0;// keep level within bounds
Other Conventions
• Italic type identifies a syntax parameter where it is defined in text. Italic
type is also used to indicate references to other manuals and to indicate
important terminology.
• Hexadecimal numbers in text are followed by an uppercase H. For
example, 03 hex is shown as 03H.
• Hexadecimal numbers in C language code segments begin with 0x. For
example, AX_REG = 0x5300.
Before You Begin
Other Intermec Manuals
You may need additional information for working with the PSK in a data
collection system. To order additional manuals, contact your local Intermec
representative or distributor.
The following publications contain useful information for programming the
Intermec family of PC-compatible readers:
Intermec
Manual
JANUS Programmer’s Software Kit for C/C++ Reference Manual
JANUS Programmer’s Software Kit for Basic Reference Manual
JANUS 2010 Hand-Held Computer User’s Manual
JANUS 2020 Hand-Held Computer User’s Manual
JANUS 2050 Vehicle Mount Unit User's Guide
JANUS Application Simulator User's Manual
IRL Programming Reference Manual
Data Communications Reference Manual
The Bar Code Book
For additional programming information, see the software development kit
manuals provided with your language.
Note: The Programmer’s Software Kit Language Libraries disk accompanying this
manual includes a file called README.TXT. This file contains updates to this
document and errata of specific importance to programmers.
xv
nugget code39
helconital
1
Getting Started
nugget code39
helconital
This chapter briefly describes the programming methods and capabilities that
0
play
p
p
prog
apply to the JANUS family of readers and explains how to install the PSK.
What Your JANUS Reader Can Do
Your JANUS reader is a portable, programmable bar
code reader and a 386-based computer in one. Each
reader has the Intermec controlled BIOS and Microsoft
ROM DOS 5.0. The reader behaves and functions like
a normal PC with 640K of memory, with these
exceptions:
• The JANUS 2010 and 2020 are hand-held, with a
small LCD dis
ort for a bar code input device or a built-in
scanner.
• The JANUS 2050 is mounted to a vehicle, such as a
forklift, and has a monochrome CGA display,
custom keyboard, built-in RF, and a port for a bar
code input device.
• The o
erating system and protocol support
rams reduce the memory available for your
application to about 450K.
JR2020
I/O
Conn Data
Ctrl Alt
Shift
Caps
f
~
_
ABCDEF
`
+
-=
{
GHI JKL
"
MNOPQR
[
'
\
<
STUVWX
,
YZ
Ctrl Alt
J2050
}:
]
>
.
Caps
;
?
/
f
home
&*
+
789
$
*
456
%
end enter pg dn
!@#
123
ins del
space
)
0
JR201
TM
F6
F1
F7
F2
F8
F3
F9
F4
F10
pg up
(
F5
/
^
Esc
>
.
num lock
enter
JPSK.001
Getting Started
1
, custom keyboard, and either a
You can run batch programs and copy, name, or move files in the same
manner as you would with any normal PC. The only difference is that the
JANUS reader has ROM and RAM drives and a PC card drive.
You can also run DOS-based programs on the reader the same as you can
on a PC. When you do, the reader behaves like a PC, but has the advantage
of accepting bar code input as if it came from the keypad. If you are an
experienced PC programmer, you have already written programs that will
run on the reader.
1-3
JANUS PSK for Ada Reference Manual
Virtual Wedge
The Virtual Wedge feature of the reader allows application programs to
receive decoded bar codes from the keyboard buffer. The Virtual Wedge
makes the reader functionally equivalent to a reader wedge connected to a
PC. Bar code input is inserted into the PC keyboard buffer as if entered from
the keypad. The Virtual Wedge also allows rapid porting of PC applications
to the reader.
Note: If your PC application follows DOS programming conventions, it should
run correctly on the JANUS reader. Not all programming languages, especially
database languages, follow these conventions. If your PC application does not
follow DOS programming conventions, your scanned input will be incorrect.
Valid configuration commands and reader commands are not put into the
keyboard buffer. Bar code configuration commands beginning with $+ are
tagged as configuration commands by the Virtual Wedge and sent to the
configuration manager to reconfigure the reader. The command parser in
the Virtual Wedge software recognizes and processes reader commands.
1-4
You can run applications that use the Virtual Wedge (instead of Intermec
interrupt extensions or function libraries) on either the reader or on your
PC.
Reader Services
prog
y
p
p
p
p
prog
Reader services include several functions ranging in complexity from
controlling the reader beeper to controlling the function of the power
management software. With reader services, you can easily use bar code
input from a wand or scanner by using the direct program interface to
handle the functions of the reader keyboard, display, and beeper.
There are two methods for incorporating the reader services into your
programs:
• Using function libraries
• Using software interrupts
You can use either one or a combination of both methods.
Note: Do not run programs that use PSK library functions on your PC, unless
you have the JANUS Application Simulator installed. If you attempt to run these
programs without the Simulator, you will receive an error message and the program
will not run.
Getting Started
1
CAUTION
Caution
Do not run
PC, unless
attem
PC to lock u
Conseil
N’exécutez
s
Simulator soit installé. Si vous tentez de les exécuter sans le Simulator, ces
système.
t to run these programs without the Simulator, they will cause your
écifiques à Intermec sur votre PC, à moins que JANUS Application
rammes risquent de verrouiller votre PC et d’altérer le BIOS de votre
rams that use Intermec-specific interrupt extensions on your
ou have the JANUS Application Simulator installed. If you
and possibly corrupt your system BIOS.
as de programmes utilisant des extensions d’interruption
1-5
JANUS PSK for Ada Reference Manual
Function Libraries
The Intermec library functions provide extensive access to reader services.
The supported language functions are stored in libraries on the
Programmer’s Software Kit Language Libraries disk. The list of supported
languages includes:
• Borland C/C++
• Microsoft C/C++
• Microsoft Visual C/C++
• Microsoft QuickBasic
• Microsoft Visual Basic for MS-DOS
• Janus/Ada
When you write applications in Ada, link your program to the library by
including the header files in your program, and then invoke the reader
services using the Ada reader service command. See “Building an
Executable File” in Chapter 2 for instructions on compiling, binding, linking,
and running an Ada program. Refer to the PSK Reference Manual for more
information about other language support.
Software Interrupts
The reader supports special software interrupts in addition to those
available on a normal PC. If your programming language supports software
interrupts, you can write applications that use the reader services. However,
it is much easier to use the PSK library functions.
Interrupts are a very low-level method of controlling a computer.
Programming with interrupts is more difficult than with a high-level
language (such as Ada, C, or Basic).
Some of the most popular languages have built-in commands for triggering
software interrupts (Microsoft C, Borland C++, and QuickBasic, for
example). Languages that do not have built-in interrupt commands
sometime allow you to access interrupts by embedding fragments of
assembly language inside your program. There are other methods for
triggering software interrupts, and you can generate software interrupts
from almost any language.
1-6
CAUTION
prog
y
p
p
p
p
prog
Getting Started
For complete descriptions and examples of the software interrupts that
govern reader services, see Chapter 3, “Software Interrupts,” and
Appendix B, “Sample Interrupt Programs,” in the PSK for C/C++ Reference
Manual.
Caution
Do not run
PC, unless
attem
PC to lock u
Conseil
N’exécutez
s
Simulator soit installé. Si vous tentez de les exécuter sans le Simulator, ces
système.
t to run these programs without the Simulator, they will cause your
écifiques à Intermec sur votre PC, à moins que JANUS Application
rammes risquent de verrouiller votre PC et d’altérer le BIOS de votre
rams that use Intermec-specific interrupt extensions on your
ou have the JANUS Application Simulator installed. If you
and possibly corrupt your system BIOS.
as de programmes utilisant des extensions d’interruption
1
1-7
nugget code39
helconital
nugget code39
Working With Ada
helconital
2
nugget code39
helconital
nugget code39
helconital
This chapter explains how to install the Intermec Ada library and how to build a
program using Ada.
Installing the JANUS PSK Ada Library
The files on the Programmer’s Software Kit Language Libraries disk are
distributed in several subdirectories, each corresponding to the supported
language:
Subdirectory NameLanguage
INTERMEC\ADAJanus/Ada
INTERMEC\BORLANDCBorland C/C++
INTERMEC\MICROSFTMicrosoft C/C++ and Visual C/C++
INTERMEC\QUICKBMicrosoft QuickBasic
INTERMEC\VBDOSVisual Basic for MS-DOS
The exact contents of the PSK Language Libraries disk are listed in the
README.TXT file contained on the disk. To use the library functions,
install the correct files on your computer. You can also use the DOS copy
command to copy only the specific files you are sure you will need.
Working With Ada
2
Note: If you have an existing Intermec directory, the installation process will
update any files in the existing Intermec directory with the new version files having
the same name.
To install the library files
1. Insert the PSK Language Libraries disk into the disk drive on your PC.
2. Change to the appropriate disk drive. For example, type A:.
3. Enter the following command:
INSTALL ADA
where drive is the location where you want to install the utilities library.
If no drive is designated, the utilities library is installed on drive C.
drive
2-3
JANUS PSK for Ada Reference Manual
Programming With Ada
The PSK disk contains the following files for building programs with the
Ada functions library:
• The IM20ADAD.LIB file contains the constant definitions.
• The IM20ADAP.LIB file contains the function prototypes.
• The IM20_ADA.LIB file contains the object modules.
• The following six files are compiled Ada definition library files and
symbol tables:
While the PSK disk includes complete JANUS reader Ada functions, you
will require additional products before you can use Intermec’s Ada
functions and procedures. You will need the following:
2-4
• Janus/Ada Compiler
• Text editor for creating source code
• Microsoft Linker
Support for Intermec’s Ada is only available using the Janus/Ada
“nonprofessional” compiler by R.R. Software, Inc. of Madison, Wisconsin.
You can order the Janus/Ada compiler through Intermec. It is coincidental
that the name of the Janus/Ada software compiler resembles the tradename
of the Intermec JANUS reader.
Your text editor must create standard ASCII text files. You can use the DOS
Edit program or any other ASCII editor.
Microsoft C/C++ linkers are the only linkers certified to work with Intermec
Ada. The Microsoft QuickBasic, Visual Basic, Visual C, and MASM linkers
have not been tested, but may link your object files successfully.
Building an Executable File
The procedures in this section lead you through the process of compiling,
binding, linking, and running a program that use the PSK Ada Library. The
following figure outlines the build process and shows the types of files
produced at each stage.
ADA, Compiler, and JBIND are available from Intermec Corporation.
*
Linker is supplied by the customer.
**
Source Code
Precompiled Includes
Object Libraries
Janus/Ada Compile
.srl
.jrl
.sym
Files
JBIND
*
.obj
File
Link
Objects
.exe
File
*
**
AIT-23
2-5
JANUS PSK for Ada Reference Manual
Build Requirements
Use the following checklist to make sure you meet the requirements for
building your program:
• The following six files must be in your working directory or in your DOS
path:
INTRMECD.SRLINTRMECP.SRL
INTRMECD.JRLINTRMECP.JRL
INTRMECD.SYMINTRMECP.SYM
• Your DOS path must include the following directories in this exact
order:
C:\JADOS\M1; C:\JADOS; C:\INTERMEC\ADA\WITH
• The following lines must be at the start of your program:
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
• You must have a Microsoft linking program, LINK.EXE.
2-6
• You must compile and bind your program with memory model 1 (M1).
Your DOS path must include the M1 subdirectory, as in C:\JADOS\M1.
Working With Ada
2
Compiling
The compiler processes your source code and produces a compiled output
file, progname.SRL. If you do not have the Janus/Ada compiler, you can
order it through Intermec.
To compile an Ada program
• From the DOS prompt, enter the following command:
JANUS
where:
progname is the name of your source file.
/O1 (letter “O”) tells the JANUS reader to use memory model 1, which is
required by Intermec’s utilities libraries.
/3 creates 386-machine instruction code, which executes on 80386, 80486,
or compatible processors.
/T parameter results in a smaller executable program and is optional.
When combined with the JBIND /T option, the /T parameter directs
JBIND to remove procedures in this compilation that can never be called.
progname
.ADA /O1 /3 /T
2-7
JANUS PSK for Ada Reference Manual
Binding
After compiling your program, you must bind the compiled output file,
progname.SRL, into an object file that can be read by a linking program.
To bind your Ada program
• From the DOS prompt, enter the following command:
JBIND
where:
progname is the compiled output file, progname.SRL, without the
extension.
/O1 (letter “O”) tells JBIND to use object code memory model 1, which
Intermec’s utilities libraries require.
/M tells JBIND to create a main program compatible with Microsoft C.
The resulting file is progname.OBJ.
/T tells JBIND to trimout unreachable subprograms from units that were
compiled with the compiler’s /T option.
progname
/O1 /M /T
2-8
Working With Ada
2
Linking
You use a Microsoft LINK.EXE program to link your Ada program with the
IM20_ADA.LIB object library file. The Janus/Ada compiler does not include
a linking program. The Microsoft C/C
to work with Intermec Ada. The Microsoft QuickBasic, Visual Basic, Visual
C, and MASM linkers have not been tested, but may link your object files
successfully.
To link your Ada program
1. If your linker is not in your path, change to the directory containing
LINK.EXE.
2. Create a response file, progname.RSP, for linking. The response file
consists of the following four lines:
progname
progname
(a blank line)
C:\INTERMEC\ADA\IM20_ADA.LIB
where:
.OBJ
++
linkers are the only linkers certified
the first line lists the program object file, including the path.
the second line lists only the executable filename with no extension.
the third line is left blank.
the fourth line lists the library files, including the path.
3. Link your program from DOS:
LINK /NOE @
4. Copy your program to the reader. Refer to your JANUS user’s manual
for complete copying instructions.
progname
.RSP
2-9
JANUS PSK for Ada Reference Manual
Debugging With JANUS Application Simulator
The JANUS Application Simulator is a terminate-and-stay resident (TSR)
program that you use to run JANUS applications on a PC. Without the
Simulator, you cannot run JANUS applications on your PC because JANUS
applications contain functions and system interrupts that may lock up a PC.
The Simulator captures the functions and interrupts before they can disrupt
the PC. Then, the Simulator uses those functions and interrupts to make the
PC mimic a JANUS reader. For more information on the Simulator, refer to
the JANUS Application Simulator User’s Manual, Part No. 062778.
To debug a JANUS application with the Simulator
1. Start the Simulator from the DOS prompt by entering this command:
janussim
2. Follow the debugging instructions provided with Janus/Ada.
Building a Sample Program Using a Batch Program
Intermec provides a batch program that compiles, binds, and links a sample
program. Follow the steps below to use the batch program.
To build the sample programs using a batch program
1. From the \INTERMEC\ADA\SAMPLES directory, enter the following
command:
CLL
filename
where filename is the name of one of the sample programs without the
.ADA extension.
2. Connect the JANUS reader to a PC using the communications dock or
the optical interface cable.
3. Copy the filename.EXE file to the reader. Refer to your JANUS user’s
manual for complete copying instructions.
2-10
Running Your Program on the Reader
prog
y
p
p
p
p
prog
After you copy your program to the reader, you are ready to run it.
Note: Do not run programs that use PSK library functions on your PC, unless
you have the JANUS Application Simulator installed. If you attempt to run these
programs without the Simulator, you will receive an error message and the program
will not run.
Caution
CAUTION
Do not run
PC, unless
attem
PC to lock u
Conseil
N’exécutez
s
Simulator soit installé. Si vous tentez de les exécuter sans le Simulator, ces
système.
t to run these programs without the Simulator, they will cause your
écifiques à Intermec sur votre PC, à moins que JANUS Application
rammes risquent de verrouiller votre PC et d’altérer le BIOS de votre
rams that use Intermec-specific interrupt extensions on your
ou have the JANUS Application Simulator installed. If you
and possibly corrupt your system BIOS.
as de programmes utilisant des extensions d’interruption
Working With Ada
2
To run your program on the reader
1. From the DOS prompt on the reader, change to the drive where the
program file progname.EXE is located. For example, enter the following
command to use drive E:
E:
2. Change to the directory where the program file filename.EXE is located.
For example, enter the following command to use the root directory:
CD \
3. Enter the following command:
progname
Your program begins executing.
2-11
JANUS PSK for Ada Reference Manual
Runtime Requirements
For some library functions to work properly, you must install and run
specific software components at program execution time. For example, if the
reader is using a communications port, you must load a protocol handler.
Because protocol handlers use a lot of memory, they are not automatically
loaded for you. Other functions require the Reader Wedge.
Protocol Handlers
You use the Intermec protocol handler (PHIMEC.EXE) when the reader is
connected with other Intermec devices. PHIMEC.EXE works with UserDefined, Point-to-Point, Polling Mode D, and Multi-Drop protocols.
You use the PC standard protocol handler (PHPCSTD.EXE) when the
reader is connected to devices that use PC standard protocol.
PHPCSTD.EXE provides low-level communications abilities and protocol
services at the DOS level for non-communications software. It also provides
byte-by-byte transfer.
2-12
If your reader is a radio frequency (RF) unit, RFPH.EXE is automatically
loaded.
For more information on protocol handlers, refer to your JANUS user’s
manual.
To install a protocol handler
• From the DOS prompt, enter the following command:
handler n
where:
handler is either PHIMEC or PHPCSTD.
n is the number of the communications port.
When your application is finished, the protocol handler TSR continues to
run and can prevent other applications from running due to lack of
memory. You can unload the protocol handler TSR by adding the unload
command as the last line of the batch file that launches your application.
Working With Ada
To unload a protocol handler
• From the DOS prompt, enter the following command:
2
unload
where:
handler is the installed handler (PHIMEC or PHPCSTD).
n is the number of the communications port.
handler n
Reader Wedge
Some functions, such as im_receive_input, allow the reader to receive input
from multiple sources and process the input depending on the source. You
must load the Reader Wedge (RWTSR.EXE) TSR to use these functions.
When your application is finished, the Reader Wedge TSR continues to run
and can prevent other applications from running due to lack of memory.
You can unload the Reader Wedge TSR by adding the unload command as
the last line of the batch file that launches your application.
To load the Reader Wedge TSR
• From the DOS prompt, enter the following command:
RWTSR
To unload the Reader Wedge TSR
• From the DOS prompt, enter the following command:
RWTSR -D
2-13
JANUS PSK for Ada Reference Manual
Specific Functions With Runtime Requirements
The following table lists the PSK functions that have runtime requirements.
You must install PHPCSTD.
im_unlink_commReader Wedge
Protocol Handler
Working With Ada
2
Note: Do not run programs that use PSK library functions or Intermec-specific
interrupt extensions on your PC, unless you have the JANUS Application
Simulator installed. If you attempt to run these programs without the Simulator,
you will receive an error message and the program will not run.
2-15
JANUS PSK for Ada Reference Manual
Status Code Macros
When using any of the Intermec library functions, you can check for a
specific status value or you can use one of the PSK macros to determine the
severity of the returned status codes. For portability with future Intermec
products, we recommend that you use the macros.
The following macros are included in IM20ADAD.LIB:
im_iserror (
status
) This macro returns a nonzero number when status
indicates an error (either fatal or nonfatal). Zero is returned if status
indicates either success or warning.
im_issuccess (
status
) This macro returns a nonzero number when status
indicates either success or warning. Zero is returned if status indicates an
error (either fatal or nonfatal).
im_isgood (
status
) This macro returns a nonzero number when status
indicates success.
im_iswarn (
status
) This macro returns a nonzero number when status
indicates a warning.
The following example uses IM_ISERROR to test for an error and then
prints the error message on the reader display.
im_get_display_mode (size, video, scroll, char_ht, status);
if im_iserror (status) then
Put ("Get Disp Mode error = ");
SYSWORD_IO.Put (status, WIDTH => 8);
New_Line;
end if;
2-16
nugget code39
helconital
3
Ada Library
nugget code39
helconital
This chapter explains the functions and procedures available in the Intermec Ada
library and provides samples and notes to help you write application programs.
Using the Ada Library Functions
In Ada, a procedure differs from a function in two major ways:
A ProcedureA Function
Can pass output parameters.
Does not a return a result when called.
The Intermec Ada library uses the following conventions to determine when
to use a function and when to use a procedure.
• A subroutine that only needs to pass out the status code without any
other output variables is a function. The status code is returned as the
function return value.
• A subroutine that needs to pass values as output variables is a
procedure. The status code is returned as one of the output parameters.
Ada Library
Can not pass output parameters.
Returns a result when called.
3
CAUTION
Note: Do not run programs that use PSK library functions on your PC, unless
you have the JANUS Application Simulator installed. If you attempt to run these
programs without the Simulator, you will receive an error message and the program
will not run.
Caution
Do not run programs that use Intermec-specific interrupt extensions on your
PC, unless you have the JANUS Application Simulator installed. If you
attempt to run these programs without the Simulator, they will cause your
PC to lock up and possibly corrupt your system BIOS.
Conseil
N’exécutez pas de programmes utilisant des extensions d’interruption
spécifiques à Intermec sur votre PC, à moins que JANUS Application
Simulator soit installé. Si vous tentez de les exécuter sans le Simulator, ces
programmes risquent de verrouiller votre PC et d’altérer le BIOS de votre
système.
Note: The following syntax descriptions refer to many named constant variables, such as IM_COM1.
These variables always appear in uppercase in this manual and are described in IM20ADAD.LIB.
3-5
im_appl_break_status
im_appl_break_status
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
This function checks whether the application break sequence has been
pressed. All PSK functions are terminated when the application break
sequence is keyed in.
Place calls to this function at strategic locations in your program to detect
when a user wants to break out of a loop. Your program can determine
what action to take when the break sequence is detected.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_appl_break_status (
break_status
status_code
None.
The break_status parameter is one of the following constants:
IM_REQUEST_NOT_MADERequest for an application break has not
IM_REQUEST_MADERequest for an application break has been
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
: Out IM_APPBREAK_STATUS;
: Out System.Word);
been made
made
Return Value:
Notes:
None.
The break_status flag is reset each time this routine is called. Because this
function is also called during the input routines provided in the library, you
should check the return code from input functions for the hex value 8515H.
This value indicates that the input function has terminated because the
application break sequence was entered. In this case, the break_status flag is
cleared by the input function’s call to im_appl_break_status.
3-6
To enter an application break sequence
im_appl_break_status
3
1. Press
2. Press
3. Press
4. Press
q
to turn off the reader.
n
- 2 - g at the same time.
1
. This sets the reader’s application break bit.
q
to turn on the reader.
Example
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure appl_br Is
package SYSWORD_IO is new INTEGER_IO (System.Word);
package IM_APPBREAK_STATUS_IO is new ENUMERATION_IO
(enum => IM_APPBREAK_STATUS);
break : IM_APPBREAK_STATUS;
status : System.Word;
in_char : Character := ' ';
begin
Put_Line ("Appl Brk Status");
Put_Line ("Set brk bit and then");
Put_Line ("press any key & return");
Get (in_char);
-- Press the following sequence at this pause (to set application break bit):
-- 1/0 key (Turn OFF the reader)
-- F3-2-Left Arrow (Press F3, 2 and left arrow at the same time)
-- 1 (Press the 1 (one) key to set application break bit)
-- 1/0 key (Turn ON the reader)
-- set break to known value
break := IM_REQUEST_MADE;
im_appl_break_status (break, status);
if break = IM_REQUEST_MADE then
Put_Line ("Break status ON");
Put ("return status : ");
SYSWORD_IO.Put (status, WIDTH => 4);
New_Line;
Put ("break_status : ");
IM_APPBREAK_STATUS_IO.Put (break);
elsif break = IM_REQUEST_NOT_MADE then
Put_Line ("Break status OFF");
Put ("return status : ");
SYSWORD_IO.Put (status, WIDTH => 4);
New_Line;
Put ("break_status : ");
IM_APPBREAK_STATUS_IO.Put (break);
end if;
New_Line;
end appl_br;
3-7
im_backlight_off
im_backlight_off
Purpose:
This procedure turns the display backlight off. Turn off the backlight to
prolong the reader’s battery life.
Syntax:
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_backlight_off;
Parameters:
Return Value:
Notes:
None.
None.
You can program the backlight to automatically turn off after a specified
time to save battery power. The length of time depends on the backlight
timeout configuration parameter. The configuration parameter is set in
1-second increments. The default is 10 seconds.
This procedure has no effect on the JANUS 2050.
See Also:
im_backlight_on, im_backlight_toggle
Example
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure lightoff Is
begin
im_backlight_off;
Put_Line ("Backlight off");
end lightoff;
3-8
im_backlight_on
im_backlight_on
3
Purpose:
Syntax:
Parameters:
Return Value:
Notes:
See Also:
Example
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure lighton Is
begin
im_backlight_on;
Put_Line ("Backlight on");
end lighton;
This procedure turns the JANUS display backlight on to help you see the
reader display in dimly lit environments.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_backlight_on;
None.
None.
You can program the backlight to automatically turn off after a specified
time to save battery power. The length of time depends on the backlight
timeout configuration parameter. The configuration parameter is set in
1-second increments. The default is 10 seconds.
This procedure has no effect on the JANUS 2050.
im_backlight_off, im_backlight_toggle
3-9
im_backlight_toggle
im_backlight_toggle
Purpose:
Syntax:
This function toggles the LCD display backlight on and off.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
function im_backlight_toggle return System.Word;
Parameters:None.
Return Value:
This function returns one of the standard status codes listed in Appendix A,
“Status Codes.”
Notes:
You can program the backlight to automatically turn off after a specified
time to save battery power. The length of time depends on the backlight
timeout configuration parameter. The configuration parameter is set in
1-second increments. The default is 10 seconds.
This procedure has no effect on the JANUS 2050.
See Also:
im_backlight_on, im_backlight_off
Example
With System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure lightogl Is
package SYSWORD_IO is new INTEGER_IO (System.Word);
status : System.Word;
begin
status := im_backlight_toggle;
Put_Line ("Backlt toggled");
if Tstbit(status, 15) then
Put ("Backlight toggle error = ");
SYSWORD_IO.Put (status, WIDTH => 8);
New_Line;
end if;
end lightogl;
3-10
im_cancel_rx_buffer
im_cancel_rx_buffer
3
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
Return Value:
Notes:
This function clears the receive buffer of the designated communications
port.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
function im_cancel_rx_buffer (
port
: IN IM_COM_PORT
) return System.Word;
The port_id parameter identifies the communications port as follows:
IM_COM1COM1
IM_COM2COM2, scanner port (2010 and 2050)
IM_COM4COM4 (RF only)
None.
This function returns one of the standard status codes listed in Appendix A,
“Status Codes.”
If there is no pending input to receive, this function returns 4602H (no
client).
You must install a protocol handler to use this function.
This function modifies the reader’s configuration. For example, you can use
this function to set a specific communications port’s baud rate.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
function im_command (
command
command_length
) return System.Word;
The command parameter is a reader command string. The command string
may include more than one reader command. For example, the command
string %.1$+BV9 turns on the backlight and raises the beep volume.
Reader commands are listed in your JANUS user’s manual.
The command_length parameter is the length of the reader command string.
None.
This function returns one of the standard status codes listed in Appendix A,
“Status Codes.”
For more information on reader commands, refer to your JANUS user’s
manual.
: IN String;
: IN System.Word
You must install the Reader Wedge to use this function. For information on
loading RWTSR.EXE, see “Runtime Requirements” in Chapter 2, “Working
With Ada.”
3-13
im_command
Example
With System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;
begin
Put_Line ("Setting high contrast");
status := im_command (high_trast, high_trast'Length);
status := im_standby_wait (5000);
Put_Line ("Setting low contrast");
status := im_command (low_trast, low_trast'Length);
status := im_standby_wait (5000);
Put_Line ("Setting normal contrast");
status := im_command (norm_trast, norm_trast'Length);
end command;
3-14
im_cursor_to_viewport
im_cursor_to_viewport
3
Purpose:
This function moves the cursor to the center of the current viewport. Since
the viewport can move around with or without the cursor, you can use this
function to recenter the cursor.
Syntax:
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_cursor_to_viewport;
With System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure crsrview Is
package STATUS_IO is new INTEGER_IO (System.Word);
row, col : System.Word;
status : System.Word;
begin
im_viewport_move (IM_VIEWPORT_RIGHT, 15, row, col, status);
im_cursor_to_viewport;
status := im_standby_wait (5000);
-- show that viewport moved
STATUS_IO.Put (row);
STATUS_IO.Put (col);
New_Line;
im_viewport_home;
end crsrview;
3-15
im_decrease_contrast
im_decrease_contrast
Purpose:
Syntax:
Parameters:
Return Value:
Notes:
This function decreases the LCD display contrast by one level. The display
contrast is the lightness or darkness of the characters against the reader
display. The reader display has 32 levels of contrast (0 to 31).
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
function im_decrease_contrast return System.Word;
None.
This function returns one of the standard status codes listed in Appendix A,
“Status Codes.”
The 0 to 31 scale fine-tunes the contrast more precisely than using the
keypad to adjust the contrast.
The functions im_set_contrast and im_get_contrast use a scale of 0 to 7 that
is related to the scale of 0 to 31 used by im_increase_contrast and
im_decrease_contrast. The following table shows the equivalent values for
the 0 to 7 scale.
Scale 0 to 7Scale 0 to 31Level
010Very light
112
214
316
418
520
622
724Very dark
With System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure deccontr Is
package SYSWORD_IO is new INTEGER_IO (System.Word);
status : System.Word;
begin
Put_Line ("Decreasing contrast");
status := im_decrease_contrast;
if Tstbit(status, 15) then
Put ("Dec contrast error = ");
SYSWORD_IO.Put (status, WIDTH => 8);
New_Line;
end if;
end deccontr;
im_decrease_contrast
3
3-17
im_get_config_info
im_get_config_info
Purpose:
Syntax:
IN/OUT
Parameters:
Return Value:
This procedure retrieves the current reader configuration information string
and its length.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_config_info (
config_string
length
status_code
The config_string parameter is the configuration information string. The first
two characters specify the type of configuration information returned.
For example, to get the beep duration setting, set the config_string to “BD.”
The procedure retrieves the currently configured setting for beep duration.
The length parameter is the length of the configuration information string.
The status_code parameter is one of the standard status codes defined in
Appendix A, “Status Codes.”
For a list of the configuration commands, see your JANUS user’s manual.
None.
: OUT System.Word;
: OUT String;
: OUT System.Word);
Notes:
See Also:
This procedure differs from im_command in that you only pass the twocharacter command identifier. The im_command procedure passes an entire
command string.
im_command
3-18
im_get_config_info
Example
With System, Intrmecd_IO, Intrmecp_IO, Text_IO, RTEXT_IO, ITOOLS;
Use Intrmecd_IO, Intrmecp_IO, Text_IO, RTEXT_IO, ITOOLS;
procedure CONINFO is
package SYSBYTE_IO is new INTEGER_IO(System.Byte);
package SYSWORD_IO is new INTEGER_IO(System.Word);
use SYSBYTE_IO, SYSWORD_IO;
config_string : String(1..300) := (others => Ascii.NUL);
config_length : System.Word;
status : System.Word;
config_command : constant String := "BV";
begin
clrscr;
Put_Line("im_get_config_info example:");
New_line;
-- Set config request for Beeper Volume
config_string(1..2) := config_command;
im_get_config_info(config_string, config_length, status);
Put("Beep Volume: ");
for i in Integer range 1..300 loop
exit when config_string(i) = Ascii.NUL;
Put(config_string(i));
end loop;
New_line;
Put("Length : ");
Put(config_length);
New_line;
Put("Status : ");
Print_status_code(status);
New_line;
end CONINFO;
3
3-19
im_get_contrast
im_get_contrast
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
Notes:
This procedure retrieves the reader’s display contrast level. There are eight
levels of contrast from very light (level 0) to very dark (level 7).
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_contrast (
contrast
status_code
: OUT System.Byte;
: OUT System.Word);
None.
The contrast parameter is a number from 0 to 7 or is one of the following
constants:
The status_code parameter is a standard status code listed in Appendix A,
“Status Codes.”
The functions im_set_contrast and im_get_contrast use a scale of 0 to 7 that
is related to the scale of 0 to 31 used by im_increase_contrast and
im_decrease_contrast. The following table shows the equivalent values for
the 0 to 7 scale.
Scale 0 to 7Scale 0 to 31Level
This function has no effect on the JANUS 2050.
3-20
010Very light
112
214
316
418
520
622
724Very dark
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure getcontr Is
package SYSBYTE_IO is new INTEGER_IO (System.Byte);
package SYSWORD_IO is new INTEGER_IO (System.Word);
contrast : System.Byte;
status : System.Word;
begin
im_get_contrast (contrast, status);
Put_Line ("Getting contrast");
if im_isgood (status) then
Put_Line ("The contrast level");
Put ("setting is : ");
SYSBYTE_IO.Put (contrast, Width => 3);
else
Put ("Get Contrast error = ");
SYSWORD_IO.Put (status, WIDTH => 8);
end if;
New_Line;
end getcontr;
3-21
im_get_control_key
im_get_control_key
Purpose:You can enable or disable the Ctrl key. This procedure retrieves the current
setting.
When you disable this keycode, none of the key combinations that use the
Ctrl key will work. For example, the warm boot key sequence Ctrl-Alt-Del
will not work.
Syntax:
IN Parameter:
OUT Parameter:
Return Value:None.
See also:
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_control_key (
control_key_status
status_code
None.
The control_key_status parameter is one of the following constants:
IM_ENABLECtrl key is enabled
IM_DISABLECtrl key is disabled
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
im_set_control_key
: OUT IM_CONTROL;
: OUT System.Word);
3-22
Example
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure getcntrl Is
control_key_status : IM_CONTROL;
status_code : System.Word;
begin
im_get_control_key (control_key_status, status_code);
if control_key_status = IM_ENABLE then
put_Line ("Ctrl key ENABLED");
else
put_Line ("Ctrl key DISABLED");
end if;
end getcntrl;
im_get_control_key
3
3-23
im_get_display_mode
im_get_display_mode
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
This procedure retrieves the current size mode, video mode, scroll mode,
character height, and status code of the display.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_display_mode (
size_mode
video_mode
scroll_mode
character_height
status_code
None.
The size_mode parameter is required and is one of these constants:
IM_SIZE_MODE_80X2580 x 25 text mode
IM_SIZE_MODE_20X1620 x 16 text mode (2010 and 2020)
IM_SIZE_MODE_20X820 x 8 text mode (2010 and 2020)
IM_SIZE_MODE_10X1610 x 16 text mode (2010 and 2020)
IM_SIZE_MODE_10X810 x 8 text mode (2010 and 2020)
If IM_SIZE_MODE_80X25 is set, you also need to set the video mode, scroll
mode, and character height.
If any other size_mode is set, the video mode, scroll mode, and character
height are automatically set.
: OUT IM_STD_SIZE_MODE;
: OUT IM_STD_VIDEO_MODE;
: OUT IM_SCROLL_MODE;
: OUT IM_CHARACTER_HEIGHT;
: OUT System.Word);
The video_mode parameter requires IM_SIZE_MODE_80X25. The standard
BIOS supports up to mode 13 but the JANUS only supports up to mode 6.
You can also set video modes 0 through 3 with IC.EXE.
3-24
im_get_display_mode
The video_mode parameter is one of these constants:
IM_STD_VIDEO_MODE_040 x 25 (use for double wide character)
IM_STD_VIDEO_MODE_140 x 25 (use for double wide character)
IM_STD_VIDEO_MODE_280 x 25
IM_STD_VIDEO_MODE_380 x 25
IM_STD_VIDEO_MODE_4300 x 200 2-color
IM_STD_VIDEO_MODE_5300 x 200 monochrome
IM_STD_VIDEO_MODE_6640 x 200 2-color (2050)
The scroll_mode parameter requires IM_SIZE_MODE_80X25 and is one of
the following constants:
IM_LCD_SCROLL_AT_25Scroll at line 25
IM_LCD_SCROLL_AT_16Scroll at line 16 (2010 and 2020)
IM_LCD_SCROLL_AT_13Scroll at line 13 (2050 and double height)
IM_LCD_SCROLL_AT_8Scroll at line 8 (2010 and 2020)
The character_height parameter requires IM_SIZE_MODE_80X25 and is one
of the following constants:
3
Return Value:
See Also:
IM_STANDARD_CHAR_HEIGHT Standard height characters, applies to
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
None.
im_set_display_mode
3-25
im_get_display_mode
Example
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure getdisdl Is
package SYSWORD_IO is new INTEGER_IO (System.Word);
package IM_STD_SIZE_MODE_IO is new ENUMERATION_IO
(enum => IM_STD_SIZE_MODE);
package IM_STD_VIDEO_MODE_IO is new ENUMERATION_IO
(enum => IM_STD_VIDEO_MODE);
package IM_SCROLL_MODE_IO is new ENUMERATION_IO
(enum => IM_SCROLL_MODE);
package IM_CHARACTER_HEIGHT_IO is new ENUMERATION_IO
(enum => IM_CHARACTER_HEIGHT);
status : System.Word;
size : IM_STD_SIZE_MODE;
video : IM_STD_VIDEO_MODE;
scroll : IM_SCROLL_MODE;
char_ht : IM_CHARACTER_HEIGHT;
begin
Put_Line ("Getting disp mode");
im_get_display_mode (size, video, scroll, char_ht, status);
if im_iserror (status) then
Put ("Get Disp Mode error = ");
SYSWORD_IO.Put (status, WIDTH => 8);
New_Line;
end if;
Put ("size : ");
IM_STD_SIZE_MODE_IO.Put (size);
New_Line;
Put ("video : ");
IM_STD_VIDEO_MODE_IO.Put (video);
New_Line;
Put ("scroll : ");
IM_SCROLL_MODE_IO.Put (scroll);
New_Line;
Put ("char_ht : ");
IM_CHARACTER_HEIGHT_IO.Put (char_ht);
New_Line;
end getdisdl;
3-26
im_get_display_type
im_get_display_type
3
Purpose:
Syntax:
IN Parameters:
OUT Parameters:
Return Value:
See Also:
This function retrieves the hardware display type, either standard JANUS
reader or JANUS 2050 (VMU).
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_display_type (
type
: OUT IM_STD_DISPLAY_TYPE;
status_code
None.
The type parameter is one of the following constants:
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
None.
im_get_display_mode, im_set_display_mode
: OUT System.Word);
3-27
im_get_display_type
Example
With System, Intrmecd_IO, Intrmecp_IO, Text_IO, RTEXT_IO, ITOOLS;
Use Intrmecd_IO, Intrmecp_IO, Text_IO, RTEXT_IO, ITOOLS;
procedure DISTYPE is
package SYSBYTE_IO is new INTEGER_IO(System.Byte);
package SYSWORD_IO is new INTEGER_IO(System.Word);
use SYSBYTE_IO, SYSWORD_IO;
display_type : IM_DISPLAY_TYPE;
status : System.Word;
begin
clrscr;
Put_Line("im_get_display_type example:");
New_line;
im_get_display_type(display_type, status);
if (display_type = IM_LCD_20X16) then
Put_Line("Display type is Standard JANUS display");
else
Put_Line("Display type is JANUS VMU display");
end if;
Put("Status : ");
Print_status_code(status);
New_line;
end DISTYPE;
3-28
im_get_follow_cursor
im_get_follow_cursor
3
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
Return Value:
Notes:
See Also:
When the display is in 80X25 mode, the viewport follows the cursor as it
moves. The follow-the-cursor feature can be enabled or disabled. This
function retrieves the current setting.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_follow_cursor (
follow_cursor_status
status_code
None.
The follow_cursor_status parameter is one of the following constants:
IM_ENABLEFollow-the-cursor mode is enabled
IM_DISABLEFollow-the-cursor mode is disabled
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
There are three different reader input modes: Wedge, Programmer, and
Desktop. These different modes affect how the reader interprets and stores
input.
Wedge Mode Keypad and label input goes into the keyboard buffer with
minimal filtering. Wedge mode is the default mode at the DOS prompt after
reader services (RSERVICE.EXE) is loaded. Use Wedge mode when the
reader is running an application that uses the Virtual Wedge. When in this
mode, use standard input functions, such as TEXT_IO.Get, to retrieve
keypad or label input.
Wedge mode does not take full advantage of the reader’s power
management capabilities. You will probably notice reduced battery life
when the reader is in this mode compared to either Programmer or Desktop
mode. For more information on power management, see Chapter 5,
“Advanced Programming,” in the PSK Reference Manual.
Programmer Mode Inputs are echoed to the screen. Reader commands are
executed and saved. Use Programmer mode when the reader is executing
IRL commands. In general, when you are running an application that uses
the function libraries or software interrupts, the reader should be in
Programmer mode.
3-30
im_get_input_mode
3
Desktop Mode The application is responsible for retrieving and displaying
input. Use Desktop mode when you need detailed information about a
pressed key. Each character returned consists of four bytes: the ASCII code,
scan code, and two bytes for the keyboard flags (Shift, Ctrl, Alt).
For more information about reader input modes, see Chapter 5, “Advanced
Programming,” in the PSK Reference Manual.
You must install the Reader Wedge to use this function. For information on
loading RWTSR.EXE, see “Runtime Requirements” in Chapter 2, “Working
With Ada.”
See Also:
im_set_input_mode, im_receive_input
Example
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure getinmod Is
package IM_MODE_IO is new ENUMERATION_IO
(enum => IM_MODE);
mode : IM_MODE;
begin
mode := im_get_input_mode;
Put ("Mode is ");
IM_MODE_IO.Put (mode);
New_Line;
end getinmod;
3-31
im_get_keyclick
im_get_keyclick
Purpose:
Every time you press a key, the reader can emit a click. This procedure
retrieves the current setting (enabled or disabled) of the keyclick.
Syntax:
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_keyclick (
IN Parameter:
OUT Parameter:
keyclick_status
status_code
None.
The keyclick_status parameter is one of the following constants:
: OUT IM_CONTROL;
: OUT System.Word);
IM_ENABLEKeyclick mode is enabled
IM_DISABLEKeyclick mode is disabled
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
Return Value:
See Also:
None.
im_set_keyclick
Example
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure getkeycl Is
keyclick_status : IM_CONTROL;
status_code : System.Word;
begin
im_get_keyclick (keyclick_status, status_code);
if keyclick_status = IM_ENABLE then
Put_Line ("Keyclick ENABLED");
else
Put_Line ("Keyclick DISABLED");
end if;
end getkeycl;
3-32
im_get_label_symbology
im_get_label_symbology
3
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
This function retrieves the symbology, such as Code 39, from the most
recently scanned label. Call this function after receiving the data using
im_receive_input.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_label_symbology (
symbology
status_code
None.
The symbology parameter is one of the following constants:
IM_CODE_11Code 11 bar code
IM_CODE_16KCode 16K bar code
IM_CODE_39Code 39 bar code
IM_CODE_49Code 49 bar code
IM_CODE_93Code 93 bar code
IM_CODE_128Code 128 bar code
IM_CODABARCodabar bar code
IM_I_2_of_5Interleaved 2 of 5
IM_MSIMSI bar code
IM_PLESSEYPlessey bar code
IM_UNKNOWN_DECODEUnknown bar code
IM_UPCUniversal Product Code
: OUT IM_DECTYPE;
: OUT System.Word);
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
Return Value:
Notes:
See Also:
None.
You must install the Reader Wedge to use this function. For information on
loading RWTSR.EXE, see “Runtime Requirements” in Chapter 2, “Working
With Ada.”
im_receive_input
3-33
im_get_label_symbology
Example
See example for im_receive_input.
3-34
im_get_length
im_get_length
3
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
Return Value:
Notes:
This function retrieves the length of the last input of the type selected. Use
this function after calling the im_receive_input function to get the data. The
length is saved when the call is initiated.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
function im_get_length (
origin
) return System.Word;
The origin parameter is one of these constants:
IM_LABEL_SELECTLabel selected
IM_KEYBOARD_SELECT Keypad selected
IM_COM1_SELECTCOM1 selected
IM_COM2_SELECTCOM2, scanner port selected (2010 and 2050)
IM_COM4_SELECTCOM4 selected (RF only)
None.
This function retrieves the length of the last input read.
For this function, all COM input is considered to be from the same source.
For example, if you call im_receive_input with IM_COM1_SELECT and
again with IM_COM4_SELECT, then a call to im_get_length with a source
of IM_COM1_SELECT returns the length of the message received from
COM4 because that was the last message read from a communications port.
: IN IM_ORIGIN
You must install the Reader Wedge to use this function. For information on
loading RWTSR.EXE, see “Runtime Requirements” in Chapter 2, “Working
With Ada.”
See Also:
Example
See example for im_receive_input.
im_receive_input
3-35
im_get_postamble
im_get_postamble
Purpose:
Syntax:
IN Parameters:
OUT Parameters:
Return Value:
Notes:
This procedure retrieves the currently configured postamble string and its
length.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_postamble (
post_string
post_length
status_code
None.
The post_string parameter is the postamble string.
The length parameter is the length of the postamble string.
The status_code parameter is one of the standard status codes defined in
Appendix A, “Status Codes.”
None.
You can set the postamble with IC.EXE, with the im_command function and
$+AE command, or by scanning a postamble. Refer to your JANUS user’s
manual for more information on configuring a postamble.
: OUT String;
: OUT System.Word;
: OUT System.Word);
See Also:
im_get_postamble, im_get_config_info
3-36
Example
With System, Intrmecd_IO, Intrmecp_IO, Text_IO, RTEXT_IO, ITOOLS;
Use Intrmecd_IO, Intrmecp_IO, Text_IO, RTEXT_IO, ITOOLS;
procedure POSAMBLE is
package SYSBYTE_IO is new INTEGER_IO(System.Byte);
package SYSWORD_IO is new INTEGER_IO(System.Word);
use SYSBYTE_IO, SYSWORD_IO;
postamble_string : String(1..300) := (others => Ascii.NUL);
postamble_length : System.Word;
status : System.Word;
begin
clrscr;
Put_Line("im_get_postamble example:");
New_line;
im_get_postamble(postamble_string, postamble_length, status);
Put("Postamble: ");
for i in Integer range 1..300 loop
exit when postamble_string(i) = Ascii.NUL;
Put(postamble_string(i));
end loop;
New_line;
Put("Length : ");
Put(postamble_length);
New_line;
Put("Status : ");
Print_status_code(status);
New_line;
end POSAMBLE;
im_get_postamble
3
3-37
im_get_preamble
im_get_preamble
Purpose:
Syntax:
IN Parameters:
OUT Parameters:
Return Value:
Notes:
This procedure retrieves the currently configured preamble string and its
length.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_postamble (
preamble_string
preamble_length
status_code
None.
The preamble_string parameter is the preamble string.
The length parameter is the length of the preamble string.
The status_code parameter is one of the standard status codes defined in
Appendix A, “Status Codes.”
None.
You can set the preamble with IC.EXE, with the im_command function and
$+AE command, or by scanning a preamble. Refer to your JANUS user’s
manual for more information on configuring a preamble.
: OUT String;
: OUT System.Word;
: OUT System.Word);
See Also:
im_get_postamble, im_get_config_info
3-38
Example
With System, Intrmecd_IO, Intrmecp_IO, Text_IO, RTEXT_IO, ITOOLS;
Use Intrmecd_IO, Intrmecp_IO, Text_IO, RTEXT_IO, ITOOLS;
procedure PREAMBLE is
package SYSBYTE_IO is new INTEGER_IO(System.Byte);
package SYSWORD_IO is new INTEGER_IO(System.Word);
use SYSBYTE_IO, SYSWORD_IO;
preamble_string : String(1..300) := (others => Ascii.NUL);
preamble_length : System.Word;
status : System.Word;
begin
clrscr;
Put_Line("im_get_preamble example:");
New_line;
im_get_preamble(preamble_string, preamble_length, status);
Put("Preamble: ");
for i in Integer range 1..300 loop
exit when preamble_string(i) = Ascii.NUL;
Put(preamble_string(i));
end loop;
New_line;
Put("Length : ");
Put(preamble_length);
New_line;
Put("Status : ");
Print_status_code(status);
New_line;
end PREAMBLE;
im_get_preamble
3
3-39
im_get_viewport_lock
im_get_viewport_lock
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
Return Value:
Notes:
This function retrieves the current setting of the viewport lock. When the
display is in 80X25 mode, you can use the viewport in virtual display mode
unless the currently running application program restricts it. The
application program may require the viewport to be locked or unlocked.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_viewport_lock (
viewport_lock_status
status_code
None.
The viewport_lock_status parameter is one of the following constants:
IM_ENABLEViewport is locked
IM_DISABLEViewport is unlocked
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
None.
The display must be in 80X25 mode (see im_set_display_mode) to use this
function.
: OUT System.Word);
: OUT IM_CONTROL;
This function has no effect on the JANUS 2050.
When the viewport is “locked,” the viewport movement keys do not move
the viewport. The viewport can still move if follow-the-cursor mode is
enabled.
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure getviewl Is
viewport_lock_status : IM_CONTROL;
status_code : System.Word;
begin
im_get_viewport_lock (viewport_lock_status, status_code);
if viewport_lock_status = IM_ENABLE then
Put_Line ("Viewport Lock ENABLED");
else
Put_Line ("Viewport Lock DISABLED");
end if;
end getviewl;
3
3-41
im_get_warm_boot
im_get_warm_boot
Purpose:
Syntax:
IN Parameter:
OUT Parameter:
Return Value:
See Also:
This function retrieves the current setting of the warm boot status. You can
enable or disable the Ctrl-Alt-Del warm boot key sequence. When disabled,
pressing the Ctrl-Alt-Del sequence does not reboot the reader.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_get_warm_boot (
warmboot_status
status_code
: OUT IM_CONTROL;
: OUT System.Word);
None.
The warmboot_status parameter is one of the following constants:
IM_ENABLEThe warm boot is enabled
IM_DISABLEThe warm boot is disabled
The status_code is one of the standard status codes defined in Appendix A,
“Status Codes.”
None.
im_set_warm_boot
Example
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure get_warm Is
warmboot_status : IM_CONTROL;
status_code : System.Word;
begin
im_get_warm_boot (warmboot_status, status_code);
if warmboot_status = IM_ENABLE then
Put_Line ("Warmboot ENABLED");
else
Put_Line ("Warmboot DISABLED");
end if;
end get_warm;
3-42
im_increase_contrast
im_increase_contrast
3
Purpose:
Syntax:
Parameters:
Return Value:
Notes:
This function decreases the LCD display contrast by one level. The display
contrast is the lightness or darkness of the characters against the reader
display. The reader display has 32 levels of contrast (0 to 31), where 0 is
very light, and 31 is very dark.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
function im_increase_contrast return System.Word;
None.
This function returns one of the standard status codes listed in Appendix A,
“Status Codes.”
The 0 to 31 scale fine-tunes the contrast more precisely than using the
keypad to adjust the contrast.
The functions im_set_contrast and im_get_contrast use a scale of 0 to 7 that
is related to the scale of 0 to 31 used by im_increase_contrast and
im_decrease_contrast. The following table shows the equivalent values for
the 0 to 7 scale.
Scale 0 to 7Scale 0 to 31Level
010Very light
112
214
316
418
520
622
724Very dark
With System, Text_IO, Intrmecd_IO, Intrmecp_IO;
Use System, Text_IO, Intrmecd_IO, Intrmecp_IO;
procedure incrcont Is
package SYSWORD_IO is new INTEGER_IO (System.Word);
status : System.Word;
begin
Put_Line ("Increasing contrast");
status := im_increase_contrast;
if im_iserror (status) then
Put ("Inc contrast error = ");
SYSWORD_IO.Put (status, WIDTH => 8);
New_Line;
end if;
end incrcont;
3-44
im_input_status
im_input_status
3
Purpose:
Syntax:
Parameters:
Return Value:
Notes:
This function checks to see if any input buffers have data and returns the
buffer identification.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
function im_input_status return IM_ORIGIN;
None.
IM_ORIGIN is one of the following constants:
IM_NO_SELECTNo selection made
IM_LABEL_SELECTLabel selected
IM_KEYBOARD_SELECT Keyboard selected
IM_COM1_SELECTCOM1 selected
IM_COM2_SELECTCOM2, scanner (2010 and 2050)
IM_COM4_SELECTCOM4 selected (RF only)
You must install the Reader Wedge to use this function. For information on
loading RWTSR.EXE, see “Runtime Requirements” in Chapter 2, “Working
With Ada.”
3-45
im_input_status
Example
With System, Intrmecd_IO, Intrmecp_IO, Text_IO;
Use Intrmecd_IO, Intrmecp_IO, Text_IO;
procedure exinput is
label : String(1..256) := (others => Ascii.NUL);
if im_isgood(receive_status) then
Put(label);
New_Line;
else
Put("Rec status: ");
im_message(receive_status);
New_Line;
end if;
im_set_input_mode(IM_WEDGE);
end exinput;
3-46
im_irl_a
im_irl_a
3
Purpose:
Syntax:
IN Parameter:
This procedure retrieves input from bar code labels or the keypad in the
same manner as IRL ASCII input command A. This procedure returns the
input data to the buffer, edits reader commands, and displays input data.
For more information on IRL and command A, refer to the IRL ProgrammingReference Manual.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_irl_a (
The timeout parameter is the receive timeout period. You can exit the
function before data is received or before the timeout occurs by performing
an application break sequence (see your JANUS user’s manual). The return
status indicates whether the function was successful, a timeout occurred, or
the application break was received.
The numeric range for timeout is from 1 to 65,534 ms. You can also use one
of the following constants:
: In System.Word;
: In IM_LENGTH_SPEC_ARRAY_PTR;
: In String;
: Out String;
: Out System.Word;
: Out IM_DECTYPE;
If IM_INFINITE_TIMEOUT is selected, the function will not return until the
end of message character has been received.
Data is returned only if its length matches one of the five lengths specified
in the test_table. The test_table parameter must be a matrix in this form:
The a position in the matrix is one of the following:
IM_NO_LENGTHAccept data of any length
IM_LENGTHAccept data with a specific length
IM_RANGEAccept data within a length range
If IM_LENGTH is specified in the a position, the actual length of the data
string is placed in the d position (and b and c are not used).
If IM_RANGE is specified in the a position, the data length must be within
the range of b and c (and d is not used).
Set any unused table entries to {IM_NO_LENGTH,0,0,0}.
The mask_string parameter sets up a data mask that received data must
match. mask_string can accept a string of constants or wildcard characters.
For example, use the string ### - #### to accept only phone numbers.
You can use one or more of these wildcard characters to define the mask:
You must allocate at least 256 bytes to the irl_string parameter.
The cmd_count returned will be 0 unless an abort command is passed to the
string. Refer to Chapter 5, “Advanced Programming,” in the PSK ReferenceManual for more information.
The symbology parameter is one of the following constants:
IM_CODE_11Code 11 bar code
IM_CODE_16KCode 16K bar code
IM_CODE_39Code 39 bar code
IM_CODE_49Code 49 bar code
IM_CODE_93Code 93 bar code
IM_CODE_128Code 128 bar code
IM_CODABARCodabar bar code
im_irl_a
IM_I_2_of_5Interleaved 2 of 5
IM_MSIMSI bar code
IM_PLESSEYPlessey bar code
IM_UNKNOWN_DECODEUnknown bar code
IM_UPCUniversal Product Code
The status_code parameter is one of the standard status codes listed in
Appendix A, “Status Codes.”
3
Return Value:
Notes:
None.
You must set the reader to Programmer mode with the im_set_input_mode
function.
You must install the Reader Wedge to use this function. For information on
loading RWTSR.EXE, see “Runtime Requirements” in Chapter 2, “Working
With Ada.”
Data does not display correctly on the screen if the display is in the 80X25
mode after the cursor has scrolled off the bottom of the display. Set the
display to one of the other modes using im_set_display_mode.
-- Set display mode to something other than 80X25
display_status := im_set_display_mode(IM_SIZE_MODE_20X16,
IM_STD_VIDEO_MODE_0, IM_LCD_SCROLL_AT_16, IM_STANDARD_CHAR_HEIGHT);
Put_Line(" Example im_irl_a");
New_Line;
Put_Line("Enter 8 AlphaNums");
Put_Line(" from keyboard");
Put_Line(" or read label");
Put_Line("q to quit");
-- Set Reader Wedge mode to program interface
im_set_input_mode(IM_PROGRAMMER);
mask(1..8) := "????????";
loop
-- Read input using im_irl_a
im_irl_a (timeout, length_table, mask, irl_string,
cmd_count, symbol, status);
exit when irl_string(1) = 'q';
if im_isgood(status) then
New_Line;
Put("Data read: ");
Put(irl_string(1..8));
New_Line;
else
im_message(status);
New_Line;
end if;
end loop;
-- Set Reader Wedge mode back to Virtual Wedge mode
im_set_input_mode(IM_WEDGE);
-- Set display mode back to 80X25
display_status := im_set_display_mode(IM_SIZE_MODE_80X25,
IM_STD_VIDEO_MODE_3, IM_LCD_SCROLL_AT_16, IM_STANDARD_CHAR_HEIGHT);
end ex_irl_a;
3-50
im_irl_k
im_irl_k
3
Purpose:
Syntax:
IN Parameters:
This procedure receives input from the keypad in any format in the same
manner as IRL ASCII input command K. This procedure returns the input
data to the buffer, edits reader commands, and displays input data. For
more information on IRL and command K, refer to the IRL ProgrammingReference Manual.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_irl_k (
The timeout parameter is the receive timeout period. You can exit the
function before data is received or before the timeout occurs by performing
an application break sequence (see your JANUS user’s manual). The return
status indicates whether the function was successful, a timeout occurred, or
the application break was received.
The numeric range for timeout is from 1 to 65,534 ms. You can also use one
of the following constants:
If IM_INFINITE_TIMEOUT is selected, the function will not return until the
end of message character has been received.
Data is returned only if its length matches one of the five lengths specified
in the test_table. The test_table parameter must be a matrix in this form:
The a position in the matrix is one of the following:
IM_NO_LENGTHAccept data of any length
IM_LENGTHAccept data of a specific length
IM_RANGEAccept data within a length range
If IM_LENGTH is specified in the a position, the actual length of the data
string is placed in the d position (and b and c are not used).
If IM_RANGE is specified in the a position, the data length must be within
the range of b and c (and d is not used).
Set any unused table entries to {IM_NO_LENGTH,0,0,0}.
The mask_string parameter sets up a data mask that received data must
match. mask_string can accept a string of constants or wildcard characters.
For example, use the string ### - #### to accept only phone numbers.
You can use one or more of these wildcard characters to define the mask:
You must allocate at least 256 bytes to the irl_string parameter.
The cmd_count returned is 0 unless an abort command is passed in the
string.
The status_code parameter is a standard status codes listed in Appendix A,
“Status Codes.”
None.
im_irl_k
3
Notes:
You must set the reader to Programmer mode with the im_set_input_mode
function.
You must install the Reader Wedge to use this function. For information on
loading RWTSR.EXE, see “Runtime Requirements” in Chapter 2, “Working
With Ada.”
Data does not display correctly on the screen if the display is in the 80X25
mode after the cursor has scrolled off the bottom of the display. Set the
display to one of the other modes using im_set_display_mode.
-- Set display mode to something other than 80X25
display_status := im_set_display_mode(IM_SIZE_MODE_20X16,
IM_STD_VIDEO_MODE_0, IM_LCD_SCROLL_AT_16, IM_STANDARD_CHAR_HEIGHT);
Put_Line(" Example im_irl_k");
New_Line;
Put_Line("Enter 8 AlphaNums");
Put_Line(" from keyboard");
Put_Line("q to quit");
-- Set Reader Wedge mode to program interface
im_set_input_mode(IM_PROGRAMMER);
mask(1..8) := "????????";
loop
-- Set Reader Wedge mode back to Virtual Wedge mode
im_set_input_mode(IM_WEDGE);
-- Set display mode back to 80X25
display_status := im_set_display_mode(IM_SIZE_MODE_80X25,
IM_STD_VIDEO_MODE_3, IM_LCD_SCROLL_AT_16, IM_STANDARD_CHAR_HEIGHT);
end ex_irl_k;
3-54
im_irl_n
im_irl_n
3
Purpose:
Syntax:
IN Parameters:
This procedure receives numeric input from the keypad or a label in the
same manner as IRL numeric input command N. Nonnumeric data is
ignored.
This procedure clears any data existing in the keypad or label buffers before
the function was called, edits reader commands from input, and displays
input data. For more information on IRL and command N, refer to the IRLProgramming Reference Manual.
This procedure corresponds to IRL command N. Refer to the IRLProgramming Reference Manual for more information on IRL commands.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_irl_n (
The timeout parameter is the receive timeout period. You can exit the
function before data is received or before the timeout occurs by performing
an application break sequence (see your JANUS user’s manual). The return
status indicates whether the function was successful, a timeout occurred, or
the application break was received.
: In System.Word;
: In IM_LENGTH_SPEC_ARRAY_PTR;
: Out String;
: Out System.Word;
: Out IM_DECTYPE;
: Out System.Word);
The numeric range for timeout is from 1 to 65,534 ms. You can also use one
of the following constants:
If IM_INFINITE_TIMEOUT is selected, the function will not return until the
end of message character has been received.
3-55
im_irl_n
Data is returned only if its length matches one of the five lengths specified
in the test_table. The test_table parameter must be a matrix in this form:
The a position in the matrix is one of the following:
IM_NO_LENGTH Accept data of any length
IM_LENGTHAccept data of a specific length
IM_RANGEAccept data within a length range
If IM_LENGTH is specified in the a position, the actual length of the data
string is placed in the d position (and b and c are not used).
If IM_RANGE is specified in the a position, the data length must be within
the range of b and c (and d is not used).
OUT Parameters:
3-56
Set any unused table entries to {IM_NO_LENGTH,0,0,0}.
You must allocate at least 256 bytes to the irl_string parameter.
The cmd_count returned is 0 unless an abort command is passed in the
string.
The symbology parameter is one of the following constants:
IM_UNKNOWN_DECODEUnknown bar code
IM_CODABARCodebar bar code
IM_CODE_11Code 11 bar code
IM_CODE_16KCode 16K bar code
IM_CODE_39Code 39 bar code
IM_CODE_49Code 93 bar code
IM_CODE_93Code 49 bar code
IM_CODE_128Code 128 bar code
im_irl_n
3
IM_I_2_OF_5Interleaved 2 of 5
IM_MSIMSI bar code
IM_PLESSEYPlessey bar code
IM_UPCUniversal Product code
The status_code parameter is a standard status codes listed in Appendix A,
“Status Codes.”
Return Value:
Notes:
None.
You must set the reader to Programmer mode with the im_set_input_mode
function.
You must install the Reader Wedge to use this function. For information on
loading RWTSR.EXE, see “Runtime Requirements” in Chapter 2, “Working
With Ada.”
Data does not display correctly on the screen if the display is in the 80X25
mode after the cursor has scrolled off the bottom of the display. Set the
display to one of the other modes using im_set_display_mode.
-- Set display mode to something other than 80X25
display_status := im_set_display_mode(IM_SIZE_MODE_20X16,
IM_STD_VIDEO_MODE_0, IM_LCD_SCROLL_AT_16, IM_STANDARD_CHAR_HEIGHT);
Put_Line(" Example im_irl_n");
New_Line;
Put_Line("Enter Numeric data");
Put_Line(" from keyboard");
Put_Line(" or read label");
Put_Line("99 to quit");
-- Set Reader Wedge mode to program interface
im_set_input_mode(IM_PROGRAMMER);
-- Read numeric input from keyboard or label
im_irl_n (IM_INFINITE_TIMEOUT, length_table, irl_string,
cmd_count, symbol, status);
exit when irl_string(1..2) = "99";
if im_isgood(status) then
New_Line;
Put_Line("Data read: ");
-- Print only printable charaters
for i in Integer range 1..256 loop
exit when irl_string(i) = Ascii.NUL;
if irl_string(i) in '0'..'9' then
Put(irl_string(i));
else
Put('?');
end if;
end loop;
New_Line;
Put_Line("The symbology read:");
SYMBOL_IO.Put(symbol);
New_Line;
else
im_message(status);
New_Line;
end if;
end loop;
-- Set Reader Wedge mode back to Virtual Wedge mode
im_set_input_mode(IM_WEDGE);
-- Set display mode back to 80X25
display_status := im_set_display_mode(IM_SIZE_MODE_80X25,
IM_STD_VIDEO_MODE_3, IM_LCD_SCROLL_AT_16, IM_STANDARD_CHAR_HEIGHT);
end ex_irl_n;
3-58
im_irl_v
im_irl_v
3
Purpose:
Syntax:
IN Parameters:
This procedure receives input from any specified source in any format, in
the same manner as an IRL universal input command V. For more
information on IRL and command V, refer to the IRL Programming ReferenceManual.
This procedure corresponds to IRL command V. Refer to the IRLProgramming Reference Manual for more information on IRL commands.
With Intrmecd_IO, Intrmecp_IO;
Use Intrmecd_IO, Intrmecp_IO;
procedure im_irl_v (
The timeout parameter is the receive timeout period. You can exit the
function before data is received or before the timeout occurs by performing
an application break sequence (see your JANUS user’s manual). The return
status indicates whether the function was successful, a timeout occurred, or
the application break was received.
: In System.Word;
: In IM_CONTROL;
: In IM_LABEL_BEEP_CONTROL;
: In IM_CONTROL;
: In Out IM_ORIGIN;
: Out String;
: Out System.Word;
: Out IM_DECTYPE;
: Out System.Word);
The numeric range for timeout is from 1 to 65,534 ms. You can also use one
of the following constants:
If edit is IM_DISABLED, reader commands are treated as data.
The beep parameter determines whether the IRL V command beeps or not
when data is entered.
If beep is set to IM_APPLI_BEEP, the Reader Wedge does not control the
beep. Instead, you code the application to sound a beep when your program
design requires one.
If beep is set to IM_WEDGE_BEEP, the reader always beeps when data is
entered. The beep parameter is one of the following constants:
IM_APPLI_BEEPApplication controls the beep
IM_WEDGE_BEEP Beeps occur automatically
IN/OUT
Parameters:
3-60
The display parameter determines if the data is displayed as it is entered.
The display parameter is one of the following constants:
IM_DISABLEDisable display of data
IM_ENABLEEnable display of data
The source parameter determines which input sources are allowed. When
the IRL V command returns, source indicates where the data came from.
When both keyboard and label inputs are allowed, the source always returns
keyboard because it is possible for keyed and scanned data to be
intermixed. Although intermixing is possible, it is not likely to occur.
If you have both the keyboard and scanner enabled, and you want to know
where the data came from, first check the symbology:
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.