Intermec Janus 2010 Reference Manual

Intermec Janus 2010 Reference Manual

Intermec janus 2010: reference guide
Hide thumbs Also See for Janus 2010:
Table of Contents

Advertisement

Quick Links

Reference Manual
P/N 062038-002
JANUS
®
PSK for Ada

Advertisement

Table of Contents
loading

Summary of Contents for Intermec Janus 2010

  • Page 1 Reference Manual P/N 062038-002 JANUS ® PSK for Ada...
  • Page 2 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.
  • Page 3 Contributors Authors Beryl Doane Maureen Norling Editor Craig Thompson Technical Illustrators John Bickley George Wilson Technical Reviewers Roy Law Yong-Qin Lu...
  • Page 4 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: im_flush_expanded_keyboard im_get_expanded_keyboard im_set_expanded_keyboard...
  • Page 5: Table Of Contents

    Contents Before You Begin xi Warranty Information xi Cautions xi About This Manual xii Other Intermec Manuals xv Getting Started What Your JANUS Reader Can Do 1-3 Virtual Wedge 1-4 Reader Services 1-5 Function Libraries 1-6 Software Interrupts 1-6 Installing the JANUS PSK Ada Library 2-3...
  • Page 6 Contents Runtime Requirements 2-12 Protocol Handlers 2-12 Reader Wedge 2-13 Specific Functions With Runtime Requirements 2-14 Status Code Macros 2-16 Ada Library Using the Ada Library Functions 3-3 Ada Library Functions Listed by Category 3-4 im_appl_break_status 3-6 im_backlight_off 3-8 im_backlight_on 3-9 im_backlight_toggle 3-10 im_cancel_rx_buffer 3-11 im_cancel_tx_buffer 3-12...
  • Page 7 im_input_status 3-45 im_irl_a 3-47 im_irl_k 3-51 im_irl_n 3-55 im_irl_v 3-59 im_irl_y 3-64 im_iserror 3-69 im_isgood 3-70 im_issuccess 3-71 im_iswarn 3-72 im_link_comm 3-73 im_message 3-75 im_number_pad_off 3-76 im_number_pad_on 3-78 im_power_status 3-80 im_protocol_extended_status 3-83 im_receive_buffer 3-85 im_receive_buffer_no_wait 3-89 im_receive_buffer_noprot 3-93 im_receive_byte 3-97 im_receive_input 3-100 im_rs_installed 3-103 im_rx_check_status 3-104...
  • Page 8 Subsystem 0800 PM (Power Management) A-34 Subsystem 0A00 TM (Timer) A-35 Subsystem 0B00 BP (Beep) A-36 Subsystem 0E00 IM (Intermec Library) A-37 Subsystem 0F00 LG (Event Logger) A-38 Subsystem 1000 KB (Keyboard Buffer) A-39 Subsystem 1100 SS (System Configuration) A-40...
  • Page 9 Contents Sample Programs DISPMODE.ADA B-3 KEYCLICK.ADA B-5 PWR_STAT.ADA B-7 XCOMM.ADA B-9 Index I-3...
  • Page 11: Before You Begin

    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) 755- 5505, 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.
  • Page 12: About This Manual

    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.
  • Page 13 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.
  • Page 14 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; if(level >= 31) level = 0;...
  • Page 15 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: Manual JANUS Programmer’s Software Kit for C/C++ Reference Manual...
  • Page 17: Getting Started

    c o d e 3 9 nugget helconital Getting Started...
  • Page 18 c o d e 3 9 nugget helconital...
  • Page 19: What Your Janus Reader Can Do

    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 display, custom keyboard, and either a port for a bar code input device or a built-in scanner.
  • Page 20: Virtual Wedge

    The command parser in the Virtual Wedge software recognizes and processes reader commands. You can run applications that use the Virtual Wedge (instead of Intermec interrupt extensions or function libraries) on either the reader or on your...
  • Page 21: Reader Services

    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 CAUTION attempt to run these programs without the Simulator, they will cause your PC to lock up and possibly corrupt your system BIOS.
  • Page 22: Function Libraries

    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:...
  • Page 23 Appendix B, “Sample Interrupt Programs,” in the PSK for C/C++ Reference Manual. Caution Do not run programs that use Intermec-specific interrupt extensions on your PC, unless you have the JANUS Application Simulator installed. If you CAUTION attempt to run these programs without the Simulator, they will cause your PC to lock up and possibly corrupt your system BIOS.
  • Page 25 c o d e 3 9 c o d e 3 9 nugget nugget helconital helconital Working With Ada...
  • Page 26 c o d e 3 9 c o d e 3 9 nugget nugget helconital helconital...
  • Page 27: Installing The Janus Psk Ada Library

    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...
  • Page 28: Programming With Ada

    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.
  • Page 29: Building An Executable File

    PSK Language Libraries Supplies: INTRMECD.SRL INTRMECP.SRL INTRMECD.JRL INTRMECP.JRL INTRMECD.SYM INTRMECP.SYM IM20_ADA.LIB ADA, Compiler, and JBIND are available from Intermec Corporation. Linker is supplied by the customer. Source Code Precompiled Includes Object Libraries Working With Ada Janus/Ada Compile .srl .jrl .sym...
  • Page 30: Build Requirements

    INTRMECD.JRL INTRMECD.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.
  • Page 31: Compiling

    /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.
  • Page 32: Binding

    /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.
  • Page 33: Linking

    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.
  • Page 34: Debugging With Janus Application Simulator

    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.
  • Page 35: Running Your Program On The Reader

    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 CAUTION attempt to run these programs without the Simulator, they will cause your PC to lock up and possibly corrupt your system BIOS.
  • Page 36: Runtime Requirements

    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 User- Defined, Point-to-Point, Polling Mode D, and Multi-Drop protocols.
  • Page 37: Reader Wedge

    To unload a protocol handler • From the DOS prompt, enter the following command: unload handler n where: handler is the installed handler (PHIMEC or PHPCSTD). n is the number of the communications port. 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.
  • Page 38: Specific Functions With Runtime Requirements

    JANUS PSK for Ada Reference Manual Specific Functions With Runtime Requirements The following table lists the PSK functions that have runtime requirements. Specific Runtime Requirements This Function im_cancel_rx_buffer im_cancel_tx_buffer im_clear_abort_callback im_command im_get_input_mode im_get_label_symbology im_get_length im_input_status im_irl_a im_irl_k im_irl_n im_irl_v im_irl_y im_link_comm im_receive_buffer im_receive_buffer_no_wait...
  • Page 39 Reader Wedge Protocol Handler 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.
  • Page 40: Status Code Macros

    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.
  • Page 41: Ada Library

    c o d e 3 9 nugget helconital Ada Library...
  • Page 42 c o d e 3 9 nugget helconital...
  • Page 43: Using The Ada Library Functions

    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 Procedure Can pass output parameters.
  • Page 44: Ada Library Functions Listed By Category

    JANUS PSK for Ada Reference Manual Ada Library Functions Listed by Category Communications im_cancel_rx_buffer, 3-11 im_cancel_tx_buffer, 3-12 im_link_comm, 3-73, 3-137 im_protocol_extended_status, 3-83 im_receive_buffer, 3-85 im_receive_buffer_no_wait, 3-89 im_receive_buffer_noprot, 3-93 im_receive_byte, 3-97 im_receive_input, 3-100 im_rx_check_status, 3-104 im_serial_protocol_control, 3-105 im_transmit_buffer, 3-129 im_transmit_buffer_no_wait, 3-131 im_transmit_buffer_noprot, 3-132 im_transmit_byte, 3-134 Display...
  • Page 45 Viewport im_cursor_to_viewport, 3-15 im_get_viewport_lock, 3-40 im_set_follow_cursor, 3-115 im_set_viewport_lock, 3-121 im_viewport_end, 3-138 im_viewport_getxy, 3-139 im_viewport_home, 3-141 im_viewport_move, 3-142 im_viewport_page_down, 3-145 im_viewport_page_up, 3-146 im_viewport_setxy, 3-147 im_viewport_to_cursor, 3-148 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. Ada Library...
  • Page 46: Im_Appl_Break_Status

    im_appl_break_status im_appl_break_status Purpose: 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.
  • Page 47 To enter an application break sequence 1. Press to turn off the reader. 2. Press 3. Press 4. Press 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 =>...
  • Page 48: Im_Backlight_Off

    im_backlight_off im_backlight_off This procedure turns the display backlight off. Turn off the backlight to Purpose: prolong the reader’s battery life. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_backlight_off; None. Parameters: None. Return Value: You can program the backlight to automatically turn off after a specified Notes: time to save battery power.
  • Page 49: Im_Backlight_On

    im_backlight_on This procedure turns the JANUS display backlight on to help you see the Purpose: reader display in dimly lit environments. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_backlight_on; None. Parameters: None. Return Value: You can program the backlight to automatically turn off after a specified Notes: time to save battery power.
  • Page 50: Im_Backlight_Toggle

    im_backlight_toggle im_backlight_toggle This function toggles the LCD display backlight on and off. Purpose: With Intrmecd_IO, Intrmecp_IO; Syntax: 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.”...
  • Page 51: Im_Cancel_Rx_Buffer

    im_cancel_rx_buffer This function clears the receive buffer of the designated communications Purpose: port. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_cancel_rx_buffer ( port : IN IM_COM_PORT ) return System.Word; IN Parameter: The port_id parameter identifies the communications port as follows: IM_COM1 IM_COM2 IM_COM4...
  • Page 52: Im_Cancel_Tx_Buffer

    im_cancel_tx_buffer im_cancel_tx_buffer This function clears the contents of the transmit buffer, stops transmission in Purpose: progress, and resets the communications port. Use this function with Polling Mode D to clear out the buffer. Other protocols clear the buffer automatically. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 53: Im_Command

    im_command This function modifies the reader’s configuration. For example, you can use Purpose: this function to set a specific communications port’s baud rate. With Intrmecd_IO, Intrmecp_IO; Syntax: 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 IN Parameter: may include more than one reader command.
  • Page 54 im_command Example With System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure command Is status : System.Word; high_trast : String(1..5) := "$+DJ7"; low_trast : String(1..5) := "$+DJ0"; norm_trast : String(1..5) := "$+DJ3"; begin Put_Line ("Setting high contrast"); status := im_command (high_trast, high_trast'Length);...
  • Page 55: Im_Cursor_To_Viewport

    im_cursor_to_viewport This function moves the cursor to the center of the current viewport. Since Purpose: the viewport can move around with or without the cursor, you can use this function to recenter the cursor. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_cursor_to_viewport;...
  • Page 56: Im_Decrease_Contrast

    im_decrease_contrast im_decrease_contrast This function decreases the LCD display contrast by one level. The display Purpose: 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; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 57 Example 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 =>...
  • Page 58: Im_Get_Config_Info

    im_get_config_info im_get_config_info This procedure retrieves the current reader configuration information string Purpose: and its length. With Intrmecd_IO, Intrmecp_IO; Syntax: 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 IN/OUT two characters specify the type of configuration information returned. Parameters: For example, to get the beep duration setting, set the config_string to “BD.”...
  • Page 59 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;...
  • Page 60: Im_Get_Contrast

    im_get_contrast im_get_contrast This procedure retrieves the reader’s display contrast level. There are eight Purpose: levels of contrast from very light (level 0) to very dark (level 7). With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_get_contrast ( contrast status_code None. IN Parameter: OUT Parameter: The contrast parameter is a number from 0 to 7 or is one of the following...
  • Page 61 None. Return Value: im_increase_contrast, im_decrease_contrast, im_set_contrast See Also: Example 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);...
  • Page 62: Im_Get_Control_Key

    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.
  • Page 63 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;...
  • Page 64 im_get_display_mode im_get_display_mode This procedure retrieves the current size mode, video mode, scroll mode, Purpose: character height, and status code of the display. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_get_display_mode ( size_mode video_mode scroll_mode character_height : OUT IM_CHARACTER_HEIGHT; status_code IN Parameter: None.
  • Page 65 The video_mode parameter is one of these constants: IM_STD_VIDEO_MODE_0 IM_STD_VIDEO_MODE_1 IM_STD_VIDEO_MODE_2 IM_STD_VIDEO_MODE_3 IM_STD_VIDEO_MODE_4 IM_STD_VIDEO_MODE_5 IM_STD_VIDEO_MODE_6 The scroll_mode parameter requires IM_SIZE_MODE_80X25 and is one of the following constants: IM_LCD_SCROLL_AT_25 IM_LCD_SCROLL_AT_16 IM_LCD_SCROLL_AT_13 IM_LCD_SCROLL_AT_8 The character_height parameter requires IM_SIZE_MODE_80X25 and is one of the following constants: IM_STANDARD_CHAR_HEIGHT Standard height characters, applies to IM_DOUBLE_CHAR_HEIGHT The status_code is one of the standard status codes defined in Appendix A,...
  • Page 66: Im_Get_Display_Mode

    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 =>...
  • Page 67: Im_Get_Display_Type

    im_get_display_type This function retrieves the hardware display type, either standard JANUS Purpose: reader or JANUS 2050 (VMU). With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_get_display_type ( type status_code None. IN Parameters: The type parameter is one of the following constants: OUT Parameters: IM_LCD_20X16 IM_CRT_80X25...
  • Page 68 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;...
  • Page 69: Im_Get_Follow_Cursor

    im_get_follow_cursor When the display is in 80X25 mode, the viewport follows the cursor as it Purpose: moves. The follow-the-cursor feature can be enabled or disabled. This function retrieves the current setting. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_get_follow_cursor ( follow_cursor_status status_code None.
  • Page 70: Im_Get_Input_Mode

    im_get_input_mode im_get_input_mode This function returns the current mode of the input manager. The different Purpose: modes affect how the reader interprets and stores input. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_get_input_mode return IM_MODE; None. Parameters: The IM_MODE return value is one of the following constants: Return Value: IM_WEDGE IM_PROGRAMMER...
  • Page 71 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,”...
  • Page 72: Im_Get_Keyclick

    im_get_keyclick im_get_keyclick Every time you press a key, the reader can emit a click. This procedure Purpose: retrieves the current setting (enabled or disabled) of the keyclick. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_get_keyclick ( keyclick_status status_code None. IN Parameter: The keyclick_status parameter is one of the following constants: OUT Parameter:...
  • Page 73: Im_Get_Label_Symbology

    im_get_label_symbology This function retrieves the symbology, such as Code 39, from the most Purpose: recently scanned label. Call this function after receiving the data using im_receive_input. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_get_label_symbology ( symbology status_code None. IN Parameter: The symbology parameter is one of the following constants: OUT Parameter: IM_CODE_11...
  • Page 74 im_get_label_symbology Example See example for im_receive_input. 3-34...
  • Page 75: Im_Get_Length

    im_get_length This function retrieves the length of the last input of the type selected. Use Purpose: 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; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 76: Im_Get_Postamble

    im_get_postamble im_get_postamble This procedure retrieves the currently configured postamble string and its Purpose: length. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_get_postamble ( post_string post_length status_code None. IN Parameters: The post_string parameter is the postamble string. OUT Parameters: 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.”...
  • Page 77 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;...
  • Page 78: Im_Get_Preamble

    im_get_preamble im_get_preamble This procedure retrieves the currently configured preamble string and its Purpose: length. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_get_postamble ( preamble_string preamble_length status_code None. IN Parameters: The preamble_string parameter is the preamble string. OUT Parameters: 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.”...
  • Page 79 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;...
  • Page 80: Im_Get_Viewport_Lock

    im_get_viewport_lock im_get_viewport_lock This function retrieves the current setting of the viewport lock. When the Purpose: 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;...
  • Page 81 Example 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;...
  • Page 82: Im_Get_Warm_Boot

    im_get_warm_boot im_get_warm_boot This function retrieves the current setting of the warm boot status. You can Purpose: 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; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 83: Im_Increase_Contrast

    im_increase_contrast This function decreases the LCD display contrast by one level. The display Purpose: 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.
  • Page 84 im_increase_contrast Example 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 =>...
  • Page 85: Im_Input_Status

    im_input_status This function checks to see if any input buffers have data and returns the Purpose: buffer identification. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_input_status return IM_ORIGIN; None. Parameters: IM_ORIGIN is one of the following constants: Return Value: IM_NO_SELECT IM_LABEL_SELECT IM_KEYBOARD_SELECT Keyboard selected...
  • Page 86 : String(1..256) := (others => Ascii.NUL); input_status : IM_ORIGIN := IM_NO_SELECT; receive_status : System.Word; returned_origin : IM_ORIGIN; begin New_Line(2); Put_Line(" Janus 2010 "); Put_Line(" Input Status"); Put_Line("Input from keyboard"); Put_Line("or read label"); New_line; im_set_input_mode(IM_DESKTOP); -- Loop while waiting for im_input_status while input_status = IM_NO_SELECT loop input_status := im_input_status;...
  • Page 87: Im_Irl_A

    im_irl_a This procedure retrieves input from bar code labels or the keypad in the Purpose: 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 Programming Reference Manual.
  • Page 88 im_irl_a The a position in the matrix is one of the following: IM_NO_LENGTH IM_LENGTH IM_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).
  • Page 89 IM_I_2_of_5 IM_MSI IM_PLESSEY IM_UNKNOWN_DECODE IM_UPC The status_code parameter is one of the standard status codes listed in Appendix A, “Status Codes.” None. Return Value: You must set the reader to Programmer mode with the im_set_input_mode Notes: function. You must install the Reader Wedge to use this function. For information on loading RWTSR.EXE, see “Runtime Requirements”...
  • Page 90 im_irl_a (IM_RANGE, 16, 17, 2), (IM_NO_LENGTH, 2, 2, 2)); -- 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);...
  • Page 91: Im_Irl_K

    im_irl_k This procedure receives input from the keypad in any format in the same Purpose: 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 Programming Reference Manual.
  • Page 92 im_irl_k The a position in the matrix is one of the following: IM_NO_LENGTH IM_LENGTH IM_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).
  • Page 93 You must set the reader to Programmer mode with the im_set_input_mode Notes: 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.
  • Page 94 im_irl_k -- Read input from keyboard im_irl_k (timeout, length_table, mask, irl_string, cmd_count, status); exit when irl_string(1) = 'q'; if im_isgood(status) then New_Line; Put("Data::"); Put(irl_string(1..8)); Put("::"); 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);...
  • Page 95: Im_Irl_N

    im_irl_n This procedure receives numeric input from the keypad or a label in the Purpose: 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.
  • Page 96 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: {a, b, c, d}, {a, b, c, d}, {a, b, c, d}, {a, b, c, d}, {a, b, c, d}, The a position in the matrix is one of the following:...
  • Page 97: Notes: You Must Set The Reader To Programmer Mode With The Im_Set_Input_Mode

    IM_I_2_OF_5 IM_MSI IM_PLESSEY IM_UPC The status_code parameter is a standard status codes listed in Appendix A, “Status Codes.” None. Return Value: 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”...
  • Page 98: Set Display Mode To Something Other Than 80X25 Display_Status := Im_Set_Display_Mode

    im_irl_n -- 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);...
  • Page 99: Im_Irl_V

    im_irl_v This procedure receives input from any specified source in any format, in Purpose: the same manner as an IRL universal input command V. For more information on IRL and command V, refer to the IRL Programming Reference Manual. This procedure corresponds to IRL command V. Refer to the IRL Programming Reference Manual for more information on IRL commands.
  • Page 100 im_irl_v The edit parameter determines whether the Reader Wedge parses reader commands. Use one of the following constants: IM_DISABLE IM_ENABLE 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.
  • Page 101 If the symbology is IM_UNKNOWN_DECODE, then the data came from the keyboard. If the symbology is one of the other values (such as IM_CODE_39), then some or all of the data came from the scanner. If only the scanner is enabled, then all of the data came from the scanner. The source parameter is one of the following constants: IM_NO_SELECT IM_LABEL_SELECT...
  • Page 102 im_irl_v The status_code parameter is a standard status code listed in Appendix A, OUT Parameters “Status Codes.” None. Return Value: You must set the reader to Programmer mode with the im_set_input_mode Notes: function. To receive data from a communications port, you must install a protocol handler.
  • Page 103 IM_STD_VIDEO_MODE_0, IM_LCD_SCROLL_AT_16, IM_STANDARD_CHAR_HEIGHT); Put_Line(" Example im_irl_v"); New_Line; Put_Line("Enter 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); loop -- Clear input string irl_string := (others => Ascii.NUL); -- Set input source source := IM_KEYBOARD_SELECT + IM_LABEL_SELECT;...
  • Page 104: Im_Irl_Y

    im_irl_y im_irl_y This procedure receives input from the designated communications port the Purpose: same as IRL ASCII input command Y. This procedure receives a single block, not an entire file, and always clears input from the host and edits reader commands from input. Unlike the other IRL instructions, the data is not automatically displayed.
  • Page 105 The prot_mode parameter is one of the following constants: IM_NO_CHANGE IM_PROTOCOL_OFF IM_PROTOCOL_ON IM_NEW_TERM_CHAR The break_status parameter affects how incoming messages are received: If IM_NO_CHANGE is specified, the protocol and end of message settings remain the same as the last time the function was called. If IM_PROTOCOL_OFF is specified, the incoming data is terminated with the specified end of message character.
  • Page 106 im_irl_y 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. To use this function, set the reader to Programmer mode using im_set_input_mode.
  • Page 107 loop -- Clear input string irl_string := (others => Ascii.NUL); -- Read COM1 with protocol ON im_irl_y (IM_INFINITE_TIMEOUT, IM_COM1, Ascii.CR, IM_PROTOCOL_ON, irl_string, cmd_count, status); exit when irl_string(1) = 'q'; if im_isgood(status) then Put_Line("Protocol ON"); -- Display printable characters for i in Integer range 1..256 loop exit when irl_string(i) = Ascii.NUL;...
  • Page 108 im_irl_y if im_isgood(status) then Put_Line("Protocol No change"); -- Display printable characters for i in Integer range 1..256 loop exit when irl_string(i) = Ascii.NUL; if irl_string(i) in ' '..'~' then Put(irl_string(i)); else Put('?'); end if; end loop; New_Line; else im_message(status); New_Line; end if;...
  • Page 109: Im_Iserror

    im_iserror This macro determines if the return status code from another PSK function Purpose: is an error (either fatal or nonfatal). With System, Text_IO, Intrmecd_IO, Intrmecp_IO; Syntax: System, Text_IO, Intrmecd_IO, Intrmecp_IO; function im_iserror( status ) return Boolean; IN Parameters: The status parameter is any PSK function that returns a status code. None.
  • Page 110: Im_Isgood

    im_isgood im_isgood This macro determines if the return status code from another PSK function Purpose: is a success. With System, Text_IO, Intrmecd_IO, Intrmecp_IO; Syntax: System, Text_IO, Intrmecd_IO, Intrmecp_IO; function im_isgood( status ) return Boolean; The status parameter is any PSK function that returns a status code. IN Parameters: None.
  • Page 111: Im_Issuccess

    im_issuccess This macro determines if the return status code from another PSK function Purpose: is either a success or warning. With System, Text_IO, Intrmecd_IO, Intrmecp_IO; Syntax: System, Text_IO, Intrmecd_IO, Intrmecp_IO; function im_issuccess( status ) return Boolean; IN Parameters: The status parameter is any PSK function that returns a status code. None.
  • Page 112: Im_Iswarn

    im_iswarn im_iswarn This macro determines if the return status code from another PSK function Purpose: is a warning. With System, Text_IO, Intrmecd_IO, Intrmecp_IO; Syntax: System, Text_IO, Intrmecd_IO, Intrmecp_IO; function im_iswarn( status ) return Boolean; IN Parameters: The status parameter is any PSK function that returns a status code. None.
  • Page 113: Im_Link_Comm

    Linking Specific Modes and Functions IM_WEDGE (do not link) Standard Input Functions (i.e., TEXT_IO.Get) Label With a protocol handler loaded (to use Intermec protocols) im_receive_buffer (etc.) im_transmit_buffer (etc.) Without a protocol handler loaded Standard Receive Functions Standard Transmit Functions IM_DESKTOP...
  • Page 114 im_link_comm With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_link_comm ( port buffer_ptr buffer_size ) return System.Word; IN Parameter: The port parameter is one of the following constants: IM_COM1 IM_COM2 IM_COM4 The buffer_ptr parameter is a pointer to a memory area used by the Reader Wedge.
  • Page 115: Im_Message

    Purpose: This procedure displays the error message associated with a specific status code returned by an Intermec function or procedure. Use this procedure to display additional information about status codes during application development. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 116: Im_Number_Pad_Off

    im_number_pad_off im_number_pad_off This function disables the number pad feature. When disabled, the numeric Purpose: keys function the same as the 1 through on a normal PC keyboard. When the number pad is disabled, you cannot type characters from the extended ASCII character set or use the number pad to move the cursor. For more information, refer to your JANUS user’s guide.
  • Page 117 Example With System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure numpadof Is package SYSWORD_IO is new INTEGER_IO (System.Word); status : System.Word; in_char : Character := ' '; begin status := im_number_pad_off; if not(Tstbit(status, 15)) then Put_line ("Number pad disable"); Put_Line ("q to quit");...
  • Page 118: Im_Number_Pad_On

    im_number_pad_on im_number_pad_on This function enables the reader’s number pad. When enabled, the number Purpose: pad functions the same way as the 10-key number pad on a standard PC keyboard. The numeric keys then provide cursor movement and editing keys, numbers, and access to the extended ASCII character set. When you enable the number pad, you also turn number lock (Num Lock) off or on.
  • Page 119 Example With System, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure numpadon Is status : System.Word; in_char : Character := ' '; begin Put_Line ("Turn numlock ON/OFF"); -- IM_NUMLOCK_ON : Number pad enable with Numlock ON status := im_number_pad_on (IM_NUMLOCK_ON); Put_Line ("NP enable NL ON");...
  • Page 120 im_power_status im_power_status This procedure retrieves the line status, battery status, backup status, and Purpose: the percentage of remaining battery life. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_power_status ( line_status battery_status backup_status fuel_gauge status_code IN Parameter: None. The line_status parameter is one of the following constants: OUT Parameter: IM_ACline_NOT_CONNECTED IM_ACline_CONNECTED...
  • Page 121 The status_code parameter is a standard status code listed in Appendix A, “Status Codes.” None. Return Value: Example With System, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure powersta Is package SYSBYTE_IO is new INTEGER_IO (System.Byte); line_status : IM_LINE_STATUS; battery_status : IM_BATTERY_STATUS;...
  • Page 122: Im_Power_Status

    im_power_status when IM_UNKNOWN_BAT => Put_Line("Unknown"); when others => Put_Line("Invalid"); end case; New_Line; Put_Line("Backup Status: "); case backup_status is when IM_BACKUP_OK => Put_Line("Backup battery OK"); when IM_BACKUP_LOW => Put_Line("Backup battery low"); when others => Put_Line("Invalid"); end case; New_Line; Put("Fuel guage % "); case fuel_gauge is when 0..100 =>...
  • Page 123: Im_Protocol_Extended_Status

    im_protocol_extended_status This function retrieves the protocol extended status from the designated Purpose: communications port. You allocate the protocol status buffer or RF status buffer, and the protocol returns the status and setup in hexadecimal values. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_protocol_extended_status ( port status_buffer...
  • Page 124 im_protocol_extended_status Example With System, Intrmecd_IO, Intrmecp_IO, Text_IO; Use System, Intrmecd_IO, Intrmecp_IO, Text_IO; procedure protstat Is package SYSBYTE_IO is new INTEGER_IO (System.Byte); package LONGINT_IO is new INTEGER_IO (Long_integer); package IM_PROTOCOL_ID_IO is new ENUMERATION_IO (enum => IM_PROTOCOL_ID); package IM_PROTO_MODE_ID is new ENUMERATION_IO (enum => IM_PROTO_MODE); package IM_PH_ID_IO is new ENUMERATION_IO (enum =>...
  • Page 125 im_receive_buffer This procedure receives the contents of a data buffer from a designated Purpose: communications port. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_receive_buffer ( port user_length buffer timeout comm_length status_code The port parameter identifies the communications port as follows: IN Parameter: IM_COM1 IM_COM2...
  • Page 126 im_receive_buffer The comm_length is the actual number of characters received upon OUT Parameter: completion of the call. The status_code parameter is a standard status code listed in Appendix A, “Status Codes.” Return Value: None. This procedure will not return a parameter value until it reaches the end of Notes: message, the buffer is full, or an error or timeout occurs.
  • Page 127: Im_Receive_Buffer

    -- call Intermec function timeout := 20000; -- 20 seconds im_receive_buffer (IM_COM1, length, data_buffer'Address, timeout, comm_length, status); if im_iserror(status) then Put ("rec buff error = "); im_message (status); New_Line; done := TRUE; end if; -- loop until first character in buffer is a 'Q' or 'q'...
  • Page 128 im_receive_buffer -- quit if first char in buffer is a 'Q' or a 'q' if ((data_buffer(1) = 'Q') or (data_buffer(1) = 'q')) then done := TRUE; end if; end loop; status := im_cancel_rx_buffer (IM_COM1); if im_iserror(status) then Put ("canc rx last = "); im_message (status);...
  • Page 129: Im_Receive_Buffer_No_Wait

    im_receive_buffer_no_wait This function receives a buffer of data as part of a record. It differs from Purpose: im_receive_buffer in that the programmer must set up the data record and monitor the transfer status until transmission is complete. This function runs in the background after it is initiated. Use this function when receiving multiple buffer transmissions in conjunction with im_rx_check_status.
  • Page 130 := COMM_INUSE; com_buff_rec.user_length := System.Word (data_buffer'Length); com_buff_rec.comm_length := 0; com_buff_rec.data_ptr := data_buffer'Address; com_buff_rec.protocol_mode := IM_NO_PROTOCOL; com_buff_rec.eom_char := 16#0d#; -- call Intermec function status := im_receive_buffer_no_wait (IM_COM1, com_buff_rec'Address); if im_iserror(status) then Put ("rec buff = "); im_message (status); 3-90 -- Comm port in use...
  • Page 131 New_Line; end if; -- loop until first character in buffer is a 'Q' or 'q' while not done loop if im_issuccess(status) then -- get the receive data while (com_buff_rec.protocol_xfer_status = COMM_INUSE) loop null; end loop; Put_Line ("Receive done"); status := im_rx_check_status (IM_COM1); if im_iserror(status) then Put ("rx check = ");...
  • Page 132 im_receive_buffer_no_wait im_message (status); New_Line; end if; --fill the comm buffer structure com_buff_rec.command com_buff_rec.protocol_xfer_status := COMM_INUSE; com_buff_rec.user_length com_buff_rec.comm_length com_buff_rec.data_ptr com_buff_rec.protocol_mode := IM_NO_PROTOCOL; com_buff_rec.eom_char status := im_receive_buffer_no_wait(IM_COM1, com_buff_rec'Address); if im_iserror(status) then Put ("rec no wait = "); im_message (status); New_Line; end if; -- quit if first char in buffer is a 'Q' or a 'q' if ((data_buffer(1) = 'Q') or (data_buffer(1) = 'q')) then done := TRUE;...
  • Page 133 im_receive_buffer_noprot This procedure receives a text string from the designated port without using Purpose: the active protocol. Only the PHIMEC.EXE protocol handler supports this procedure, which is often used to receive a host initialization string before beginning transmission. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 134 im_receive_buffer_noprot If IM_INFINITE_TIMEOUT is selected, the function will not return until the end of message character has been received. The term_char parameter is the end of message character needed to terminate input from the communications port. The character is normally a carriage return, but you can set it to any other character.
  • Page 135: Im_Receive_Buffer_Noprot

    -- Phimec protocol handler must be installed to run this routine New_Line(2); Put_Line(" Janus 2010 "); Put_Line("Rx/Tx Buffer No Prot"); New_Line; -- get the receive environment ready status := im_cancel_rx_buffer(IM_COM1); if (im_iserror(status)) then Put ("canc rx1 error = ");...
  • Page 136 -- and reset the comm port status := im_cancel_tx_buffer (IM_COM1); end if; New_Line; -- call Intermec receive function im_receive_buffer_noprot (IM_COM1, RX_Buff_length, RX_data_ptr, IM_INFINITE_TIMEOUT, eom_char, comm_length, status); -- quit if first char in buffer is a 'Q' or a 'q' if ((RX_data_buffer(1) = 'Q') or (RX_data_buffer(1) = 'q')) then done := TRUE;...
  • Page 137: Im_Receive_Byte

    im_receive_byte This procedure receives one byte of data through the designated Purpose: communications port. This procedure is identical to MS-DOS INT 14H service 02H. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_receive_byte ( port receive_byte status_code The port parameter identifies the communications port as follows: IN Parameter: IM_COM1 IM_COM2...
  • Page 138 im_receive_byte Example With System, DosCall, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, DosCall, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure recbyte Is status : System.Word; RX_byte : Character := ' '; eom_char : Character; setup_comm_status : Integer; function setup_com (port : System.Word) return Integer Is -- This function sets up the communications port for RS232, -- 9600 baud, even parity, 7-bit words, and 1 stop bit using -- a DosCall procedure.
  • Page 139 else Put ("rec byte status = "); im_message (status); New_Line; end if; end loop; New_Line; Put_Line ("Receive done"); else Put_Line("Com setup failed"); im_message (System.Word(setup_comm_status)); New_Line; end if; end recbyte; im_receive_byte 3-99...
  • Page 140 im_receive_input im_receive_input This procedure retreives input from the source and places it into the receive Purpose: buffer. You can use the im_get_length function after this procedure to get the input length. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_receive_input ( allowed_source timeout returned_source...
  • Page 141 The returned_source parameter specifies the actual input source and is one of OUT Parameter: the following constants: IM_NO_SELECT IM_LABEL_SELECT IM_KEYBOARD_SELECT Keypad selected IM_COM1_SELECT IM_COM2_SELECT IM_COM4_SELECT The ret_string parameter retrieves the string received. The status_code parameter is a standard status code listed in Appendix A, “Status Codes.”...
  • Page 142: Im_Receive_Input

    Put_Line("q to quit"); New_Line; im_set_input_mode (IM_PROGRAMMER); loop -- Clear input label := (others=>Ascii.NUL); -- Call Intermec procedure im_receive_input (selected_origin, IM_INFINITE_TIMEOUT, returned_origin, label, status); New_Line; if im_isgood(status) then -- receive input successful New_Line; -- Get the length of the label or keypad input len := im_get_length (returned_origin);...
  • Page 143: Im_Rs_Installed

    im_rs_installed This function determines whether or not the reader services Purpose: (RSERVICE.EXE) program is installed. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_rs_installed return IM_RS_INSTALL_STATUS; None. IN Parameters: OUT Parameters: None. This function returns one of the standard status codes listed in Appendix A, Return Value: “Status Codes.”...
  • Page 144: Im_Rx_Check_Status

    im_rx_check_status im_rx_check_status This function directs the active protocol handler to check the Purpose: communications port buffer status variable to determine if the application program has accepted the previous data. Use this function with the im_receive_buffer_no_wait function to receive input from multiple buffers. With Intrmecd_IO, Intrmecp_IO;...
  • Page 145: Im_Serial_Protocol_Control

    im_serial_protocol_control This function controls the protocol mode for a designated communications Purpose: port and determines whether the receive mode is with or without protocol according to the input parameter. Any change clears the input buffer and resets the reader command parser. Use this function to set protocol when connected to a communications port.
  • Page 146 im_serial_protocol_control • If IM_PROTOCOL_OFF is specified, the incoming data is terminated with the specified end of message character. If the end of message character is null, the function terminates upon receiving the first character. • If IM_PROTOCOL_OFF is used, you must specify a termination character, otherwise the data is returned in individual bytes.
  • Page 147 timeout : System.Word := 10000; returned_origin: IM_ORIGIN; begin status := im_link_comm(IM_COM1, comm_buff_ptr, comm_buff_size); Put("Link status:"); im_message (status); New_Line; im_set_input_mode(IM_DESKTOP); -- turn off protocol and make a <CR> the end of message char Put_Line ("setting protocol"); status := im_serial_protocol_control(IM_COM1, IM_PROTOCOL_OFF, eom); im_message (status);...
  • Page 148: Im_Set_Contrast

    im_set_contrast im_set_contrast This function sets the reader’s display contrast level. There are eight levels Purpose: of contrast from very light (level 0) to very dark (level 7). With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_set_contrast ( contrast_level _ requested : IN System.Byte ) return System.Word;...
  • Page 149 Example With System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure setcontr Is package SYSBYTE_IO is new INTEGER_IO (System.Byte); package SYSWORD_IO is new INTEGER_IO (System.Word); status : System.Word; level : System.Byte; begin Put_Line ("Enter Contrast (0-7)"); Put (">>> "); SYSBYTE_IO.Get (level);...
  • Page 150: Im_Set_Control_Key

    im_set_control_key im_set_control_key Purpose: This function enables or disables the Ctrl key setting. When disabled, none of the key combinations that use the Ctrl key work. For example, the warm boot key sequence Ctrl-Alt-Del will not work. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 151 if im_isgood (status)then Put_Line ("Control Key ENABLED"); Put_Line ("q to quit"); loop exit when in_char = 'q'; Get(in_char); end loop; else Put ("Enable Ctrl Key error = "); SYSWORD_IO.Put (status, Width => 8); New_Line; end if; end setclkey; im_set_control_key 3-111...
  • Page 152: Im_Set_Display_Mode

    im_set_display_mode im_set_display_mode This function sets the size mode, video mode, scroll mode, and character Purpose: height of the display. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_set_display_mode ( size_mode video scroll char_ht ) return System.Word; IN Parameter: The size_mode parameter is required and is one of these constants: IM_SIZE_MODE_80X25 IM_SIZE_MODE_20X16 IM_SIZE_MODE_20X8...
  • Page 153 The scroll parameter requires IM_SIZE_MODE_80X25 and is one of the following constants: IM_LCD_SCROLL_AT_25 IM_LCD_SCROLL_AT_16 IM_LCD_SCROLL_AT_13 IM_LCD_SCROLL_AT_8 The char_ht parameter requires IM_SIZE_MODE_80X25 and is one of the following constants: IM_STANDARD_CHAR_HEIGHT Standard height characters, applies to IM_DOUBLE_CHAR_HEIGHT None. OUT Parameter: This function returns one of the standard status codes listed in Appendix A, Return Value: “Status Codes.”...
  • Page 154 im_set_display_mode Example With System, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure setdpmod 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 =>...
  • Page 155: Im_Set_Follow_Cursor

    im_set_follow_cursor When the display is in 80X25 mode, the viewport follows the cursor as it Purpose: moves. This function enables or disables the follow-the-cursor feature. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_set_follow_cursor ( follow_status_requested : IN IM_CONTROL ) return System.Word; IN Parameter: The follow_status_requested parameter is one of the following constants: IM_ENABLE...
  • Page 156 im_set_follow_cursor end if; in_char := ' '; New_Line; status := im_set_follow_cursor (IM_ENABLE); if im_isgood (status) then Put_Line ("Follow cursor ENABLED"); Put_Line ("q to quit"); loop exit when in_char = 'q'; Get(in_char); end loop; else Put ("Enable Foll Curs error = "); SYSWORD_IO.Put (status, Width =>...
  • Page 157: Im_Set_Input_Mode

    im_set_input_mode This function clears the input buffers and sets the input manager to one of Purpose: three modes: Wedge, Programmer, or Desktop. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_set_input_mode ( mode : IN IM_MODE); The mode parameter is one of the following constants: IN Parameter: IM_WEDGE IM_PROGRAMMER...
  • Page 158 im_set_input_mode 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,”...
  • Page 159: Im_Set_Keyclick

    im_set_keyclick Each time you press a key, the reader can emit a click. This function enables Purpose: or disables the keyclick. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_set_keyclick ( keyclick_status : IN IM_CONTROL ) return System.Word; IN Parameter: The keyclick_status parameter is one of the following constants: IM_ENABLE IM_DISABLE...
  • Page 160 im_set_keyclick in_char := ' '; New_Line; status := im_set_keyclick (IM_ENABLE); if im_isgood (status) then Put_Line ("Keyclick ENABLED"); Put_Line ("q to quit"); loop exit when in_char = 'q'; Get (in_char); end loop; else Put ("Enable Keyclick error = "); SYSWORD_IO.Put (status, Width => 8); New_Line;...
  • Page 161: Im_Set_Viewport_Lock

    im_set_viewport_lock This procedure enables or disables the keys that move the viewport. Purpose: With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_set_viewport_lock ( lock_status : IN IM_CONTROL ) return System.Word; The lock_status parameter is one of the following constants: IN Parameter: IM_ENABLE IM_DISABLE None.
  • Page 162 im_set_viewport_lock loop exit when in_char = 'q'; Get (in_char); end loop; else Put ("Unlock VP error = "); SYSWORD_IO.Put (status, Width => 8); New_Line; end if; in_char := ' '; New_Line; status := im_set_viewport_lock (IM_ENABLE); if im_isgood (status)then Put_Line ("VP LOCKED"); Put_Line ("q to quit");...
  • Page 163: Im_Set_Warm_Boot

    im_set_warm_boot Purpose: This function enables or disables the Ctrl-Alt-Del warm boot key sequence. When disabled, the Ctrl-Alt-Del key sequence does not reboot the reader. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_set_warm_boot ( warmboot_status_requested : IN IM_CONTROL ) return System.Word; The warmboot_status_requested parameter is one of the following constants: IN Parameter: IM_ENABLE...
  • Page 164 im_set_warm_boot in_char := ' '; New_Line; status := im_set_warm_boot (IM_ENABLE); if im_isgood (status)then Put_Line ("Warmboot ENABLED"); Put_Line ("q to quit"); loop exit when in_char = 'q'; Get (in_char); end loop; else Put ("Enable Warmboot err = "); SYSWORD_IO.Put (status, Width => 8); New_Line;...
  • Page 165: Im_Sound

    im_sound This function generates a beep of specified pitch and duration. For example, Purpose: use a soft beep for library use, a loud beep for manufacturing use, or a unique beep to distinguish between other readers. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 166 im_sound This function returns one of the standard status codes listed in Appendix A, Return Value: “Status Codes.” Example With System, Intrmecd_IO, Intrmecp_IO; Use System, Intrmecd_IO, Intrmecp_IO; procedure sound Is C0 : Constant System.Word := 262; D0 : Constant System.Word := 296; E0 : Constant System.Word := 330;...
  • Page 167: Im_Standby_Wait

    im_standby_wait This function requests that reader services wait in standby mode for a Purpose: specific period of time. You use this function to suspend the reader for a length of time to save the battery power. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO;...
  • Page 168 im_standby_wait Example With System, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure standby Is status : System.Word; begin -- RWTSR must be installed for this to work correctly Put_Line ("Start waiting for 5 seconds"); status := im_standby_wait (5000); Put_Line ("Done waiting for 5 seconds"); end standby;...
  • Page 169: Im_Transmit_Buffer

    im_transmit_buffer This function transmits the contents of a data buffer through a designated Purpose: communications port. This function continues operating until the buffer transmission is complete or until an error status is detected. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_transmit_buffer ( port user_length...
  • Page 170 im_transmit_buffer None. OUT Parameter: This function returns one of the standard status codes listed in Appendix A, Return Value: “Status Codes.” You must install a protocol handler to use this function. Notes: im_receive_buffer, im_transmit_buffer_no_wait, im_transmit_buffer_noprot See Also: Example See example for im_receive_buffer. 3-130...
  • Page 171 im_transmit_buffer_no_wait This function transmits the contents of the transmit buffer and passes Purpose: control back to its client. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_transmit_buffer_no_wait ( port data_struct ) return System.Word; The port parameter identifies the communications port as follows: IN Parameter: IM_COM1 IM_COM2...
  • Page 172: Im_Transmit_Buffer_Noprot

    im_transmit_buffer_noprot im_transmit_buffer_noprot This function transmits a buffer without protocol and sends only the Purpose: specified number of characters. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_transmit_buffer_noprot ( port user_length buffer timeout ) return System.Word; IN Parameter: The port parameter identifies the communications port as follows: IM_COM1 IM_COM2 IM_COM4...
  • Page 173: Return Value

    This function returns one of the standard status codes listed in Appendix A, Return Value: “Status Codes.” You must install a protocol handler other than PHPCSTD.EXE to use this Notes: function. If an existing transmit client is linked to the host, you must issue a cancel command first.
  • Page 174: Im_Transmit_Byte

    This function returns one of the standard status codes listed in Appendix A, Return Value: “Status Codes.” This function requires the PC standard protocol handler PHPCSTD.EXE. Notes: Intermec recommends using im_transmit_buffer (with a user_length of one) instead of using im_transmit_byte. You can use this function for an acknowledgment. im_receive_byte, im_transmit_buffer See Also: 3-134 : IN IM_COM_PORT;...
  • Page 175 Example With System, DosCall, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, DosCall, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure txbyte Is status : System.Word; TX_byte : Character := ' '; eom_char : Character; setup_comm_status : Integer; function setup_com (port : System.Word) return Integer Is -- This function sets up the communications port for RS232, -- 9600 baud, even parity, 7 data bits, and 1 stop bit using -- a DosCall procedure.
  • Page 176 im_transmit_byte if (im_iserror(status)) then Put ("tx byte status = "); im_message (status); New_Line; end if; end loop; New_Line; Put_Line ("Transmit done"); else Put_Line("Com setup failed"); im_message (System.Word(setup_comm_status)); New_Line; end if; end txbyte; 3-136...
  • Page 177: Im_Unlink_Comm

    im_unlink_comm This function removes the link between the Reader Wedge function and a Purpose: designated communications port. After this function executes, the Reader Wedge is not notified of receive buffer functions. You only need to use this procedure one time, at the end of your program. With Intrmecd_IO, Intrmecp_IO;...
  • Page 178: Im_Viewport_End

    im_viewport_end im_viewport_end This procedure sets the viewport to the lower right corner (end) of the Purpose: virtual display. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_viewport_end; None. IN Parameters: None. OUT Parameters: None. Return Value: This function has no effect on the JANUS 2050. Notes: im_cursor_to_viewport, im_viewport_home, im_viewport_page_down, See Also:...
  • Page 179: Im_Viewport_Getxy

    im_viewport_getxy This function retrieves the column and row of the upper left corner of the Purpose: viewport. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_viewport_getxy ( column status_code : OUT System.Word); None. IN Parameter: The row parameter retrieves the row value (Y-coordinate) of viewport. OUT Parameter: The column parameter retrieves the column value (X-coordinate) of viewport.
  • Page 180 im_viewport_getxy Example With System, Text_IO, Intrmecd_IO, Intrmecp_IO; System, Text_IO, Intrmecd_IO, Intrmecp_IO; procedure vpgetxy Is package SYSWORD_IO is new INTEGER_IO (System.Word); : System.Word; : System.Word; status : System.Word; wait_status : System.Word; begin im_viewport_getxy (row, col, status); Put_Line ("Getting viewport"); if im_isgood(status) then Put_Line ("Viewport:");...
  • Page 181: Im_Viewport_Home

    im_viewport_home This function sets the viewport to the upper left corner (home) of the virtual Purpose: display. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_viewport_home; None. IN Parameters: OUT Parameters: None. Return Value: None. This function has no effect on the JANUS 2050. Notes: im_cursor_to_viewport, im_viewport_end, im_viewport_page_down, See Also:...
  • Page 182: Im_Viewport_Move

    im_viewport_move im_viewport_move This function sets the viewport row and column to an offset from the Purpose: current value. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_viewport_move ( direction distance column status_code IN Parameter: The direction is one of the following values: IM_VIEWPORT_LEFT IM_VIEWPORT_RIGHT IM_VIEWPORT_UP...
  • Page 183 The (Row, Column) pair represents the upper left corner of the viewport Notes: being displayed. The minimum value for both the Row and Column is (0,0), which is the upper left corner of the virtual window. The maximum value is determined by the video mode and the number of lines and columns displayed.
  • Page 184 im_viewport_move when others => direction := IM_VIEWPORT_RIGHT; end case; Put_Line ("Enter distance : "); Put_Line (">>> "); SYSWORD_IO.Get (distance); New_Line; im_viewport_move (direction, distance, row, col, status); if im_issuccess (status) then Put ("Row "); SYSWORD_IO.Put (row, WIDTH => 4); New_Line; Put ("Col "); SYSWORD_IO.Put (col, WIDTH =>...
  • Page 185: Im_Viewport_Page_Down

    im_viewport_page_down This procedure moves the viewport down one viewport length. Purpose: With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_viewport_page_down; IN Parameters: None. OUT Parameters: None. Return Value: None. This function has no effect on the JANUS 2050. Notes: im_cursor_to_viewport, im_viewport_end, im_viewport_home, See Also: im_viewport_page_up, im_viewport_to_cursor, im_viewport_move, im_viewport_setxy...
  • Page 186: Im_Viewport_Page_Up

    im_viewport_page_up im_viewport_page_up This procedure moves the viewport up one viewport length. Purpose: With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_viewport_page_up; None. IN Parameters: OUT Parameters: None. Return Value: None. This function has no effect on the JANUS 2050. Notes: im_cursor_to_viewport, im_viewport_end, im_viewport_home, See Also: im_viewport_page_down, im_viewport_to_cursor, im_viewport_move,...
  • Page 187: Im_Viewport_Setxy

    im_viewport_setxy This function sets the viewport row and column to a specific value when Purpose: moving between two screens. With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; function im_viewport_setxy ( colum ) return System.Word; None. IN Parameter: The row parameter sets the row value (Y-coordinate) of the viewport. IN OUT The colum parameter sets the column value (X-coordinate) of the viewport.
  • Page 188: Im_Viewport_To_Cursor

    im_viewport_to_cursor im_viewport_to_cursor This function centers the viewport around the cursor. Purpose: With Intrmecd_IO, Intrmecp_IO; Syntax: Use Intrmecd_IO, Intrmecp_IO; procedure im_viewport_to_cursor; None. IN Parameters: None. OUT Parameters: None. Return Value: Notes: This function has no effect on the JANUS 2050. im_cursor_to_viewport, im_viewport_end, im_viewport_home, See Also: im_viewport_page_down, im_viewport_to_cursor, im_viewport_move, im_viewport_setxy...
  • Page 189: Status Codes

    Appendix A: Status Codes...
  • Page 191: Status Code Bit Values

    This appendix lists the status code hex values and error messages. Use the tables in this appendix to look up the meaning of a specific status code. Status Code Bit Values Most of the PSK functions return status codes. You can use the codes to test for error conditions that your application will act upon.
  • Page 192: Status Codes Listed Numerically

    JANUS PSK for Ada Reference Manual Status Codes Listed Numerically The following table lists the return codes and the error message text provided by im_message and imMessage. For each message, there is an associated status return code, subsystem, and severity. Some messages are abbreviated to fit the display and to save memory on the JANUS reader.
  • Page 193 Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 040C Good 0421 Good 0422 Good 0500 Good 0505 Good 0506 Good 0509 Good 050A Good 050B Good 050C Good 050D Good 0510 Good 0513 Good 0517 Good 0518...
  • Page 194 JANUS PSK for Ada Reference Manual Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 051C Good 051D Good 051E Good 0521 Good 0525 Good 0600 Good 0601 Good 0800 Good 0A00 Good 0B00 Good 0E00 Good 0E01...
  • Page 195 Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 1200 Good 1300 Good 1A00 Good 1A01 Good 1A10 Good 4200 Warning 4201 Warning 4202 Warning 4502 Warning 4503 Warning 450E Warning 4529 Warning 452A Warning 4600 Warning 4601...
  • Page 196 JANUS PSK for Ada Reference Manual Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 4606 Warning 4A00 Warning 5001 Warning 5201 Warning 5A02 Warning 5A07 Warning 5A11 Warning 5A12 Warning 5A20 Warning 5A21 Warning 8100 Error 8101...
  • Page 197 Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8203 Error 8204 Error 8205 Error 8206 Error 8207 Error 8208 Error 8209 Error 820A Error 820B Error 820C Error 820D Error 820E Error 820F Error 8210 Error 8211...
  • Page 198 JANUS PSK for Ada Reference Manual Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8215 Error 8216 Error 8217 Error 8218 Error 8219 Error 821A Error 821B Error 821C Error 821D Error 821E Error 821F Error 8220...
  • Page 199 Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8226 Error 8227 Error 8228 Error 8229 Error 822A Error 822B Error 822C Error 822D Error 822E Error 822F Error 8230 Error 8231 Error 8232 Error 8233 Error 8234...
  • Page 200 JANUS PSK for Ada Reference Manual Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8237 Error 8238 Error 8239 Error 823A Error 823B Error 823C Error 823D Error 823E Error 823F Error 8240 Error 8241 Error 8242...
  • Page 201 Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8301 Error 8302 Error 8303 Error 8304 Error 8305 Error 8306 Error 8402 Error 8403 Error 8404 Error 8405 Error 8406 Error 8407 Error 840D Error 840E Error 840F...
  • Page 202 JANUS PSK for Ada Reference Manual Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8414 Error 8415 Error 8416 Error 8417 Error 8418 Error 8419 Error 841A Error 841B Error 841C Error 841D Error 841E Error 841F...
  • Page 203 Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8511 Error 8512 Error 8514 Error 8515 Error 8516 Error 851B Error 851F Error 8520 Error 8522 Error 8523 Error 8524 Error 8526 Error 8527 Error 8528 Error 8600...
  • Page 204 JANUS PSK for Ada Reference Manual Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8605 Error 8606 Error 8607 Error 8608 Error 8609 Error 860A Error 860B Error 860C Error 860D Error 860E Error 860F Error 8610...
  • Page 205 Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8844 Error 8A00 Error 8A01 Error 8A02 Error 8A03 Error 8A04 Error 8A05 Error 8A06 Error 8A07 Error 8A08 Error 8B00 Error 8B01 Error 8B02 Error 8B03 Error 8B04...
  • Page 206 JANUS PSK for Ada Reference Manual Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 8B0C Error 8B0D Error 8B0E Error 8E00 Error 8E01 Error 8E02 Error 8E03 Error 8E04 Error 8E05 Error 8E06 Error 8E07 Error 8E08...
  • Page 207 9009 Error 900C Error Appendix A: Status Codes Reader Message and Description IRL desktop disable Prompting configuration disable Intermec library disabled Event logger disable Keyboard disable System configuration disable Keypad disable Display disable Communications manager disable Workbench disable Severity success disable...
  • Page 208 JANUS PSK for Ada Reference Manual Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 9100 Error 9101 Error 9102 Error 9103 Error 9104 Error 9105 Error 9200 Error 9201 Error 9202 Error 9203 Error 9204 Error 9205...
  • Page 209 Status Codes and Error Messages Listed in Numerical Order (continued) Hex Code Severity Subsystem 9309 Error 9A03 Error 9A04 Error 9A05 Error 9A06 Error 9A08 Error 9A09 Error 9A40 Error 9A41 Error Appendix A: Status Codes Reader Message and Description Invalid height mode Invalid character height mode Transmit fail...
  • Page 210: Status Codes Listed By Subsystem

    0300 0400 0500 0600 0800 0A00 0B00 0E00 0F00 1000 1100 1200 1300 A-22 Abbrev. Name Reader Services Configuration Management Scanner Decodes Reader Wedge Communications Power Management Timer Beep Intermec Library Event Logger Keyboard Buffer System Configuration Keypad Services Display...
  • Page 211: Subsystem 0100 Rs (Reader Services

    Subsystem 0100 RS (Reader Services) Hex Code Message 0100 Reader service successful 0103 Reader services resume successful 8100 Invalid function hex code received 8101 Reader services is not installed 8102 Reader services resume failed 8103 Reader services or application is out of date 8104 Reader Wedge TSR is not installed Appendix A: Status Codes...
  • Page 212: Subsystem 0200 Cm (Configuration Management

    JANUS PSK for Ada Reference Manual Subsystem 0200 CM (Configuration Management) Hex Code Message 0200 Request successful 0201 End of record encountered 0202 End of file encountered 4200 Not all configuration items copied 4201 Reader command terminated configuration command string 4292 Client should not be notified 8200...
  • Page 213 Subsystem 0200 CM (Configuration Management) (continued) Hex Code Message 8218 Inappropriate configuration for the current protocol 8219 BIOS rejected the set configuration command 821A Configuration command string object is too small 821B Configuration ID is invalid 821C Invalid build parameter 821D No build function 821E...
  • Page 214 JANUS PSK for Ada Reference Manual Subsystem 0200 CM (Configuration Management) (continued) Hex Code Message 8235 Configuration item value is out of range for the selected protocol 8236 Invalid fourth parameter value 8237 Invalid fifth parameter value 8238 Invalid sixth parameter value 8239 Unable to open JANUS.ERR 823A...
  • Page 215: Subsystem 0300 Sc (Scanner

    Subsystem 0300 SC (Scanner) Hex Code Message 0300 Scan successful 8300 Scanner load error 8301 Not enough timers for the scanner to initialize 8302 Insufficient memory for the scanner to initialize 8303 Scanner cannot connect to power management 8304 Invalid laser timeout configuration 8305 Counts object integrity check failed 8306...
  • Page 216: Subsystem 0400 Dc (Decodes

    JANUS PSK for Ada Reference Manual Subsystem 0400 DC (Decodes) Hex Code Message 0400 Successful command 0401 Symbology is already enabled 0402 Symbology is not enabled 040A Successful decode 040B Intermediate row reread 040C Intermediate row decoded 0421 Default command symbology 0422 Mixed ASCII format 8402...
  • Page 217 Subsystem 0400 DC (Decodes) (continued) Hex Code Message 841C Invalid row number 841D Unable to scale counts 841E Invalid 2 of 5 label 841F Invalid 2 of 5 length 8420 2 of 5 label length exceeds maximum 8423 No valid label region found 8424 Ink spread exceeded threshold 8425...
  • Page 218: Subsystem 0500 Rw (Reader Wedge

    JANUS PSK for Ada Reference Manual Subsystem 0500 RW (Reader Wedge) Hex Code Message 0500 Reader Wedge successful 0505 No reader commands parsed 0506 Valid reader commands parsed 0509 Accumulating reader command 050A Reader command override 050B Reader command enter accumulation 050C Reader command exit accumulation 050D...
  • Page 219 Subsystem 0500 RW (Reader Wedge) (continued) Hex Code Message 850F Error in reader command edit 8511 Unable to allocate memory for input 8512 Protocol handler is not linked 8514 Reader command parse error on exit accumulation 8515 Application break detected 8516 Invalid Reader Wedge request 851B...
  • Page 220: Subsystem 0600 Cu (Communications

    JANUS PSK for Ada Reference Manual Subsystem 0600 CU (Communications) Hex Code Message 0600 Communications operation success 0601 Communications buffer done 4600 Buffer canceled 4601 Communications timeout 4602 Communications had no client to cancel 4603 No protocol handler to configure 4604 Protocol handler is not yet loaded 4605...
  • Page 221 Subsystem 0600 CU (Communications) (continued) Hex Code Message 8613 Reentrant request for service 8614 Hardware I/O error 86F0 Unsupported communications service Appendix A: Status Codes A-33...
  • Page 222: Subsystem 0800 Pm (Power Management

    JANUS PSK for Ada Reference Manual Subsystem 0800 PM (Power Management) Hex Code Message 0800 Power management success 8821 Cannot change state 8822 Invalid state manager command 8842 Invalid IPM interface command 8843 Parameter out of range 8844 Semaphore maximum exceeded A-34...
  • Page 223: Subsystem 0A00 Tm (Timer

    Subsystem 0A00 TM (Timer) Hex Code Message 0A00 Timer operation success 4A00 Timer not currently active 8A00 Invalid timer function code 8A01 No free timers available 8A02 Illegal timer mode specified 8A03 Timer not allocated 8A04 Timer is currently active 8A05 Invalid timer delay specified 8A06...
  • Page 224: Subsystem 0B00 Bp (Beep

    JANUS PSK for Ada Reference Manual Subsystem 0B00 BP (Beep) Hex Code Message 0B00 Beeper call success 8B00 Pitch out of range 8B01 Duration out of range 8B02 Volume out of range 8B03 Not a sequential or a preemptive beep 8B04 Invalid battery flag 8B05...
  • Page 225: Subsystem 0E00 Im (Intermec Library

    Subsystem 0E00 IM (Intermec Library) Hex Code Message 0E00 String extract complete 0E01 String append complete 0E02 String search found 0E03 String copy complete 0E04 Successful operation 8E00 Substring not found 8E01 String extract empty 8E02 String extract too long...
  • Page 226: Subsystem 0F00 Lg (Event Logger

    Power management disable 8F0A BIOS disable 8F0B Timer disable 8F0C Beeper disable 8F0D IRL desktop disable 8F0E Prompting configuration disable 8F0F Intermec library disabled 8F10 Event logger disable 8F11 Keyboard disable 8F12 System configuration disable 8F13 Keypad disable 8F14 Display disable 8F15...
  • Page 227: Subsystem 1000 Kb (Keyboard Buffer

    Subsystem 1000 KB (Keyboard Buffer) Hex Code Message 1000 Expanded keyboard buffer success 100A Expanded buffer enabled 100B Expanded buffer disabled 5001 Expanded keyboard buffer installed or disabled 9002 Cannot disable because buffer is not empty 9003 Keyboard buffer is full (entire string rejected) 9004 Expanded keyboard buffer not installed 9005...
  • Page 228: Subsystem 1100 Ss (System Configuration

    JANUS PSK for Ada Reference Manual Subsystem 1100 SS (System Configuration) Hex Code Message 1100 System configuration successful 9100 Invalid service number 9101 ASIC bit number is out of range 9102 Unknown ASIC I/O address 9103 Undefined message code 9104 Invalid communications port ID 9105 Invalid argument...
  • Page 229: Subsystem 1200 Kp (Keypad Services

    Subsystem 1200 KP (Keypad Services) Hex Code Message 1200 Successful keypad operation 5201 Backdoor communications failure 9200 Timeout occurred in the middle of a transaction 9201 Timeout occurred on the first transaction 9202 Keypad busy 9203 Forced transaction abort 9204 Failed to process a command 9205 Invalid function number...
  • Page 230: Subsystem 1300 Dp (Display

    JANUS PSK for Ada Reference Manual Subsystem 1300 DP (Display) Hex Code Message 1300 Successful display operation 9300 Absolute value out of range 9301 Invalid display size mode 9302 Display function undefined 9303 Invalid backlight timeout value 9304 Display BIOS returned an invalid status 9305 Invalid viewport mode 9306...
  • Page 231 Appendix B: Ada Programs...
  • Page 233: Dispmode.ada

    It also calls Intermec’s Ada function im_set_display_mode to change the display mode to use double height characters and resets to normal display mode before exiting.
  • Page 234 DISPMODE.ADA 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 if; New_Line; Put_Line("Setting disp mode"); Put_Line("Any key to continue"); Get(inchar); status := im_set_display_mode (IM_SIZE_MODE_80X25, if im_isgood(status) then im_get_display_mode (size, video, scroll, char_ht, status);...
  • Page 235: Keyclick.ada

    It uses Intermec’s Ada function im_set_keyclick and the procedure im_get_keyclick to retrieve the current status. -- COPYRIGHT (c) 1994 INTERMEC CORPORATION, ALL RIGHTS RESERVED With System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO; Use System, Bit, Text_IO, Intrmecd_IO, Intrmecp_IO;...
  • Page 236 KEYCLICK.ADA else Put_Line ("Enable Keyclick error:"); im_message(status_code); New_Line; end if; end keyclick;...
  • Page 237: Pwr_Stat.ada

    Ada procedure im_power_status. It retrieves the AC line status, battery status, backup battery status, and the percentage of remaining life in the battery. -- COPYRIGHT (c) 1994 INTERMEC CORPORATION, ALL RIGHTS RESERVED With System, Text_IO, Intrmecd_IO, Intrmecp_IO; System, Text_IO, Intrmecd_IO, Intrmecp_IO;...
  • Page 238 PWR_STAT.ADA when IM_CRITICAL_BAT => Put_Line("Charge critical"); when IM_CHARGING_BAT => Put_Line("Charging battery"); when IM_UNKNOWN_BAT => Put_Line("Unknown"); when others => Put_Line("Invalid"); end case; New_Line; Put_Line("Backup Status: "); case backup_status is when IM_BACKUP_OK => Put_Line("Backup battery OK"); when IM_BACKUP_LOW => Put_Line("Backup battery low"); when others =>...
  • Page 239: Xcomm.ada

    'q' as the first byte in the buffer. This program uses Intermec’s Ada procedures im_receive_buffer_noprot, im_transmit_buffer_noprot, im_cancel_rx_buffer, and im_cancel_tx_buffer. -- COPYRIGHT (c) 1994 INTERMEC CORPORATION, ALL RIGHTS RESERVED With System, Intrmecd_IO, Intrmecp_IO, Text_IO; System, Intrmecd_IO, Intrmecp_IO, Text_IO; procedure xcomm Is package SYSWORD_IO is new INTEGER_IO (System.Word);...
  • Page 240 -- and reset the comm port status := im_cancel_tx_buffer (IM_COM1); end if; New_Line; -- call Intermec receive function im_receive_buffer_noprot (IM_COM1, RX_Buff_length, RX_data_ptr, IM_INFINITE_TIMEOUT, eom_char, comm_length, status); -- quit if first char in buffer is a 'Q' or a 'q' if ((RX_data_buffer(1) = 'Q') or (RX_data_buffer(1) = 'q')) then done := TRUE;...
  • Page 241 XCOMM.ADA end loop; -- Clear buffers and reset comm port status := im_cancel_rx_buffer (IM_COM1); status := im_cancel_tx_buffer (IM_COM1); end xcomm; B-11...
  • Page 243: Index

    Index...
  • Page 245 Index Symbols *.EXE file, 2-5 *.RSP file, 2-9 About This Manual, xii Ada compiler, 2-4, 2-7 Backlight im_backlight_off, 3-8 im_backlight_on, 3-9 im_backlight_toggle, 3-10 Batch program, 2-10 Battery im_power_status, 3-80 Beeper im_sound, 3-125 Binding Ada program, 2-8 Break im_appl_break_status, 3-6 Build procedure, 2-4 batch program, using, 2-10 binding, 2-8 compiling, 2-7...
  • Page 246 Index Examples continued im_command, 3-14 im_cursor_to_viewport, 3-15 im_decrease_contrast, 3-17 im_get_config_info, 3-19 im_get_contrast, 3-21 im_get_control_key, 3-23 im_get_display_mode, 3-26 im_get_display_type, 3-28 im_get_follow_cursor, 3-29 im_get_input_mode, 3-31 im_get_keyclick, 3-32 im_get_postamble, 3-37 im_get_preamble, 3-39 im_get_viewport_lock, 3-41 im_get_warm_boot, 3-42 im_increase_contrast, 3-44 im_input_status, 3-46 im_irl_a, 3-49 im_irl_k, 3-53 im_irl_n, 3-57 im_irl_v, 3-62 im_irl_y, 3-66...
  • Page 247 im_get_postamble, 3-36 im_get_preamble, 3-38 im_get_viewport_lock, 3-40 im_get_warm_boot, 3-42 im_increase_contrast, 3-16, 3-43 im_input_status, 3-45 im_irl_a, 3-47 im_irl_k, 3-51 im_irl_n, 3-55 im_irl_v, 3-59 im_irl_y, 3-64 im_iserror, 2-16, 3-69 im_isgood, 2-16, 3-70 im_issuccess, 2-16, 3-71 im_iswarn, 2-16, 3-72 im_link_comm, 3-73 im_message, 3-75 im_number_pad_off, 3-76 im_number_pad_on, 3-78 im_power_status, 3-80 im_protocol_extended_status, 3-83...
  • Page 248 Standby im_standby_wait, 3-127 Status codes bit values, A-3 listed by subsystem, A-22 listed numerically, A-4 macros, 2-16 Subsystem Beep, A-36 Communication, A-32, A-33 Configuration management, A-24, A-25 Decodes, A-28, A-29 Display, A-42 Event logger, A-38 Intermec library, A-37 Keyboard, A-39...
  • Page 249 Status codes continued Subsystem Keypad, A-41 Power management, A-34 Reader services, A-23 Reader Wedge, A-30, A-31 Scanner, A-27 System configuration, A-40 Timer, A-35 Transmit buffer im_cancel_tx_buffer, 3-12 im_transmit_buffer, 3-129 im_transmit_buffer_no_wait, 3-131 im_transmit_buffer_noprot, 3-132 im_transmit_byte, 3-134 Viewport im_cursor_to_viewport, 3-15 im_get_follow_cursor, 3-29 im_get_viewport_lock, 3-40 im_set_follow_cursor, 3-115 im_set_viewport_lock, 3-121...

This manual is also suitable for:

Janus 2050Janus 2020Janus psk for ada

Table of Contents