Serial Communication Protocols

Similar documents
User Manual SM137 & SM140 motors. Serial Communications Protocol

J2 LCM Customer Display. Manual

Beijer Electronics AB 2000, MA00453,

PRE32 RS232 protocol v1.21 Tomas Andersson

UniOP VT100 Terminal Emulation - Ver. 3.16

RS-232 Control of the Advantage EQ281/8, EQ282/8 and Advantage SMS200

RS-232 Control of the Advantage DRI

DMTME Multimeters. Communication protocol. Technical specification V1.2 ABB

Motors I Automation I Energy I Transmission & Distribution I Coatings. Modbus RTU CFW701. User s Manual

Modbus RTU CFW100. User s Manual. Phone: Fax: Web: -

APEX & ANDES Series. Printer Command Language Developer s Manual

IF96017 MODBUS COMMUNICATION PROTOCOL

Input Channels: 4 differential or four single-ended. Address / Baud rate / range configurable by the user

Conto D2 COMMUNICATION PROTOCOL CONTENTS 1.0 INTRODUCTION

M2M/DMTME Instruments Communication protocol. Technical specification V.2.1 2CSG445011D0201

CLOCKAUDIO. MR88 Automatic Microphone Mixer RS232 Programming Version 4.2

Computer Control of the Advantage DRC 4+4

CTT MODBUS-RTU COMMUNICATION PROTOCOL TEMPERATURE MONITOR DEVICE

MTR-4. C8 Command to MODBUS Bridge User Manual F-1, No. 631, Chung Der Road, Sec 1, Taichung Taiwan.

The RS-485 user manual for B800 series communication

CE4DMID01 COMMUNICATION PROTOCOL CONTENTS 1.0 INTRODUCTION

Motors I Automation I Energy I Transmission & Distribution I Coatings. Modbus RTU CFW300. User s Manual

COMMUNICATION MODBUS PROTOCOL

Motors I Automation I Energy I Transmission & Distribution I Coatings. Modbus RTU CFW500. User s Manual

Conto D1 MODBUS COMMUNICATION PROTOCOL

Modbus/TCP is supported on some controllers. See QCI-AN028 Modbus TCP.

S-Series Sensor ASCII Protocol v8.1.0

Technical Specification. Third Party Control Protocol. AV Revolution

MCW Application Notes 24 th February 2017

Manual 09/11 MN Z-EN. NZM-XATS-C Automatic Transfer Switch-Controller Modbus Communication Protocol

Interface design document MODBUS Protocol. Ab s t r a c t Description of the MODBUS implementation for the Modbus I/O board

1. Implemented CM11 protocol

COMMUNICATION MODBUS PROTOCOL

Software Developer's Manual

Modbus on SenseAir S8

CONTO IMP PROTOCOL COMMUNICATION CONTENTS 1.0 INTRODUCTION

Protocol VIT5. Communications RS485. Version 1.0. Pg.Up ENTER. Pg.Up ENTER. Pg.Up ENTER. Pg.Up ENTER. Pg.Up ENTER. Pg.Up ENTER. Pg.Up ENTER. Pg.

COMMUNICATION MODBUS PROTOCOL

1602 SMART LCD DISPLAY MODULE HCMODU0122

MODEL TDAI-2170 INTEGRATED AMPLIFIER EXTERNAL CONTROL MANUAL

DRPC100-OLED UART PROTOCOL SPECIFICATION

Venstar Thermostat Adapter

COMMUNICATION MODBUS PROTOCOL MF96001 / 021 NEMO 96HD

LCD05 datasheet 1.0

DirectNET Host. Communications Programs. In This Chapter...

1.1. INTRODUCTION 1.2. NUMBER SYSTEMS

EXPERIMENT 8: Introduction to Universal Serial Asynchronous Receive Transmit (USART)

COMMUNICATION MODBUS PROTOCOL

AN-946 APPLICATION NOTE

Modbus on S8. Modbus is a simple, open protocol for both PLC and sensors. Details on Modbus can be found on

SPI Lasers UK Limited. Serial Command Reference for the PRISM Laser Platform

Modbus on S8. Modbus is a simple, open protocol for both PLC and sensors. Details on Modbus can be found on

Titan Dot Matrix Display (A05)

AN-881 APPLICATION NOTE

Control Characters used in DirectNET

LCD03 - I2C/Serial LCD Technical Documentation

Dell 7609WU RS232 Protocol Document

NHD-0216K3Z-NS(RGB)-FBW-V3

RS232C Serial Interface for Pirani Diaphragm and Pirani Standard Gauges. Caution. binary 8 data bits 1 stop bit no parity bit no handshake

Card Dispensing/Collecting Machine

Planar Simplicity Series

WedgeLink SM. Mitutoyo HardwareWedge MICRORIDGE. The InterfaceSolutionsCompany

Elotech Standard Protocol. for Single R8200 SC

Fingerprint_Protocol_All_English

5016 Installation and Communication RS485

Data Representation and Binary Arithmetic. Lecture 2

Dell 4610X RS232 Protocol Document

2a. Codes and number systems (continued) How to get the binary representation of an integer: special case of application of the inverse Horner scheme

SERIES PM130EH POWERMETERS COMMUNICATIONS REFERENCE GUIDE

ACS-LCD-128x64. LCD Graphic Display Terminal. General Description. Features. Typical Applications. Specifications. 22-Feb-08

VP Process Inc. Model: VP-EC-RDU Modbus RTU LCD Display

VPGate Manual PROFIBUS to serial

LCD03 - I2C/Serial LCD Technical Documentation

Rotel RS232 Serial Bus Communication

Dell S500/S500wi RS232 Protocol Document

Software Developer's Manual

NHD-0220D3Z-FL-GBW-V3

Modbus Protocol Guide for ZP2 Series Control Panels

InfoTag KE28xx Communications for 186 CPU Firmware Version 4

Data sheet Wireless UART firmware version 4

Menu & commands booklet FOR BAR CODE SCANNERS * *

Specification. for. Serial Interface DN-C635

NHD-0220D3Z-FL-GBW-V3

SPP-R210 Command Manual Rev. 1.00

GSA GAT PROTOCOL V Game Authentication Terminal

RS 232 Interface. RS 232 is the Serial interface on the PC. Three major wires for the Serial interface: Transmit Pin 2 Receive Pin 3

B Interface description 12.01/

EZ Protocol. Communication Protocol for EZPLC. For use of EZAutomation and AVG Customers with EZPLC Products. Copyright 2005 AVG

RS232 User Guide. Planar Simplicity Series 4K Displays SL4364K SL5564K SL6564K SL7564K SL8664K. Simplicity Series 4K Displays User Guide A

DLL2020. Software Configuration Manual

User Manual version 1.04 TLM8 COMMUNICATION PROTOCOLS

SC1602LC 16x2 Large Characters RS232 LCD Module. User s Manual. Large Viewing Area 99mm x 24mm. Large Character Size. 4.84mm x 9.66mm.

Page 1 sur 28. User Manual. User Manual

EXPERIMENT 7: Introduction to Universal Serial Asynchronous Receive Transmit (USART)

INSTEON Hidden Door Sensor

ENGLISH ENGLISH ENGLISH ENGLISH

isma-b-mg-ip User Manual Global Control 5 Sp. z o.o. Poland, Warsaw

LCD Module with I2C / Serial Interface and Keypad Control «LCD I2C/Serial» User s Guide. Copyright 2008 IMS

Datapanel. VT100 Terminal Emulator for Datapanels. Operator Interface Products. User's Manual

Pololu TReX Jr Firmware Version 1.2: Command Documentation

Transcription:

RM85x Hand-held Terminals User Manual H5834D0003ING V. 01 Serial Communication Protocols DESCRIPTION The RM85x family of hand-held terminals communicate with a remote controller over an EIA standard RS-232 serial row at a baud rate of 57.6, 38.4, 19.2 or 9.6 Kb. RM85x terminals can use two communication protocols: VT100 and CNI proprietary. CNI Engineering Via Carpanelli, 24 40011 Anzola dell Emilia (Bo) Italy Tel. +39 051 6508911 Fax +39 051 6508912 Info@cnicnc.com www.cnicnc.com

Publication Information Code Date Approval Author ctg H5834D0003ING 05-10-2007- - UD CNI D Update List Revision Added Deleted Modified V. 01 CNI Engineering S.r.l. No part of this manual may be reproduced or transmitted in any form or by any means, electronic or mechanic, including photocopying, without the express written permission of CNI.

MANUAL ISSUED BY: Technical Documentation Dept. CNI Engineering S.r.l. Via Carpanelli, 24-40011 Anzola dell Emilia (Bo) Italy Tel. +39 051 6508911 Fax +39 051 6508912 Info@cnicnc.com www.cnicnc.com Document code: Document revision: Document issue: H5834D0003ING V. 01 05-10-2007

TABLE OF CONTENTS TABLE OF CONTENTS 1 Installation... 1 2 Serial communication... 1 2.1 VT100 protocol... 1 2.2 CNI proprietary protocol... 1 2.2.1 Control characters... 1 2.2.2 Packet checksum (8 bit CRC)... 2 2.2.3 Packet length... 2 2.2.4 Node address... 2 3 VT100 protocol commands... 2 3.1 Cursor control commands... 2 3.1.1 Cursor on... 3 3.1.2 Cursor off... 3 3.1.3 Cursor home (Carriage return)... 3 3.1.4 Cursor down and home... 4 3.1.5 Cursor down with scroll... 4 3.1.6 Cursor up with scroll... 4 3.1.7 Cursor down without scroll... 5 3.1.8 Cursor up without scroll... 5 3.1.9 Cursor right... 6 3.1.10 Cursor left... 6 3.1.11 Backspace... 6 3.1.12 Position cursor... 7 3.1.13 Tab... 7 3.1.14 Save cursor... 7 3.1.15 Restore cursor... 8 3.2 Editor commands... 8 3.2.1 Send characters to terminal... 8 3.2.2 Scroll area... 10 3.2.3 Clear screen (Form feed)... 10 3.2.4 Display fixed characters... 10 3.2.5 Display blinking characters... 11 3.2.6 Reset character blinking... 11 3.2.7 Insert characters... 11 3.2.8 Insert rows... 12 3.3 Character delete commands... 12 3.3.1 Delete n characters... 12 3.3.2 Delete to end of row... 13 3.3.3 Delete from start of row... 13 3.3.4 Delete row... 13 05-10-2007 CNI Engineering S.r.l. i

TABLE OF CONTENTS 3.3.5 Delete to end of display... 14 3.3.6 Delete from start of display... 14 3.3.7 Delete all rows... 14 3.3.8 Delete n rows... 15 3.4 Information request commands... 15 3.4.1 Request firmware version... 15 3.4.2 Request cursor position... 16 3.4.3 Request communication parameters... 16 3.4.4 Request terminal attributes... 17 3.5 Terminal status commands... 18 3.5.1 Reset terminal... 18 3.5.2 Cancel escape sequence... 18 3.5.3 Self test... 18 3.5.4 Exit VT100 protocol... 19 3.6 I/O commands... 19 3.6.1 Switch LEDs... 19 3.6.2 Monitor keys... 20 3.6.3 Monitor knob... 21 3.6.4 Monitor overrides... 22 4 CNI proprietary protocol commands... 23 4.1.1 Position cursor... 23 4.1.2 Write string... 24 4.1.3 Delete rows... 25 4.1.4 Scroll... 26 4.1.5 Read I/O command... 27 4.1.6 Read message... 28 4.1.7 Read character... 29 4.1.8 Read version... 30 4.1.9 Read type... 31 4.1.10 Change parameter... 32 4.1.11 Read parameter... 33 4.1.12 Restart VT100... 34 4.1.13 Save parameters to flash memory... 35 4.1.14 Read flash memory... 35 4.1.15 Sample variable... 36 4.1.16 Sample address... 36 4.1.17 Read samples... 37 A Parameters... 38 B Error messages... 42 C Status bits... 43 05-10-2007 CNI Engineering S.r.l. ii

Installation D Invalid command response... 43 E I/O... 44 E.1 The RM851 hand-held terminal... 44 E.1.1 Numbering of keys... 44 E.1.2 Numbering of LEDs... 44 E.1.3 The knob... 44 E.2 The RM850 hand held terminal... 45 E.2.1 Numbering of keys... 45 E.2.2 Numbering of LEDs... 45 E.2.3 Numbering of overrides... 45 F Calculating the 16 bit CRC... 46 F.1 MODULE CRC16.H... 46 F.2 MODULE CRC16.C... 47 05-10-2007 CNI Engineering S.r.l. iii

TABLE OF CONTENTS 05-10-2007 CNI Engineering S.r.l. iv

Installation 1 Installation Make the settings specified in the relevant User Manual Technical Specifications and Connections to ensure correct installation of the RM85x family of hand-held terminals. 2 Serial communication The minimum size for a transmitted data packet size is 10 bits. These comprise 1 start bit 8 data bits 1 stop bit Start Data Stop 0 lsb Msb 1 Packet format is as follows: 1 start bit, 8 data bits, no parity, 1 stop bit 2.1 VT100 protocol RM85x hand-held terminals support a sub-set of commands from the standard VT100 protocol as well as customised commands for I/O control. VT100 protocol includes the necessary XON/XOFF communication control. The terminal has a FIFO buffer in reception and transmission comprising 64 characters. If the content of the reception buffer reaches more than 48 characters, the terminal sends an XOFF character (0x13) to the master to request it to stop transmitting as quickly as possible. Once an XOFF character has been sent and the reception buffer has dropped below 16 characters again, the terminal sends an XON character (0x11) to tell the master that it can start transmitting again. In the same way the master can also send the terminal an XOFF character when so required by its own control logic. In this case, the terminal stops transmitting as quickly as possible and waits to receive an XON character before restarting. For further details on VT100 protocol, visit the following site: http://vt100.net 2.2 CNI proprietary protocol 2.2.1 Control characters RM85x hand-held terminals send the remote controller commands and data requests in packets containing a number of characters. Each packet starts with the STX control character and ends with the ETX control character. Packets do not normally contain other STX or ETX characters. If STX, ETX, ESC, XON or XOFF characters have to be transmitted, these must first be split into two characters according to the following table. 05-10-2007 CNI Engineering S.r.l. 1

RM85x Hand-held Terminals User Manual Character to transmit Characters transmitted STX (0x02) ESC (0x1B) 0xFF XOR STX (0xFD) ETX (0x03) ESC (0x1B) 0xFF XOR ETX (0xFC) ESC (0x1B) ESC (0x1B) 0xFF XOR ESC (0xE4) XON (0x11) ESC (0x1B) 0xFF XOR XON (0xEE) XOFF (0x13) ESC (0x1B) 0xFF XOR XOFF (0xEC) 2.2.2 Packet checksum (8 bit CRC) Each packet also contains a checksum character (CRC), calculated as follows. STX Datum1 DatumN CRC ETX CRC = 0xFF XOR Datum1 XOR XOR DatumN N.B.: CRC is calculated on the basis of the bytes in the packet before control characters are added. This is because control characters must also mask the CRC. 2.2.3 Packet length The maximum number of data characters that can be transmitted is 68. This number does not include the control characters in the packet. 2.2.4 Node address The second byte of each command identifies the target terminal s node address, as configured on the terminal s DIP-switch. If RM85x hand-held terminals communicate over an RS232 connection, this address must be set to0x00 to ensure correct functioning. All the switches on the configuration DIP must be OFF for this setting. 3 VT100 protocol commands 6 groups of VT100 protocol commands are available: Cursor control commands Editor commands Character delete commands Information request commands Terminal status commands I/O commands 3.1 Cursor control commands This group of command lets you control the position and the characteristics of the cursor. Whenever the terminal is switched on or reset, the cursor is set off and is positioned at the first column of the first row of the display. 2 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands 3.1.1 Cursor on This command makes the cursor blink on the display. ESC [? 2 5 h 01 ESC (0x1b) 02 [ (0x5b) 03? (0x3f) 04 2 (0x32) 05 5 (0x35) 06 h (0x68) 3.1.2 Cursor off This command stops the cursor blinking, leaving it invisible on the display. ESC [? 2 5 l 01 ESC (0x1b) 02 [ (0x5b) 03? (0x3f) 04 2 (0x32) 05 5 (0x35) 06 l (0x6c) 3.1.3 Cursor home (Carriage return) This command moves the cursor to the first column of the row on which it is currently positioned. CR 00 CR (0x0d) 05-10-2007 CNI Engineering S.r.l. 3

RM85x Hand-held Terminals User Manual 3.1.4 Cursor down and home TheVT,LF,ESC E character sequence moves the cursor to the first column of the next row after the row on which it is currently positioned. If the cursor is already on the last row in the scroll area, all displayed rows are moved up. VT 00 VT (0x0b) LF 00 LF (0x0a) ESC E 01 E (0x45) 3.1.5 Cursor down with scroll This command moves the cursor to the next row after the row on which it is currently positioned, leaving it in the same column. If the cursor is already on the last row in the scroll area, all displayed rows are moved up. ESC D 01 D (0x45) 3.1.6 Cursor up with scroll This command moves the cursor to the next row above the row on which it is currently positioned, leaving it in the same column. If the cursor is already on the first row in the scroll area, all displayed rows are moved down. ESC M 01 M (0x4d) 4 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands 3.1.7 Cursor down without scroll This command moves the cursor down in the same column. The number of rows moved is determined by the parameter Pn. If Pn is omitted, or if its value is set to 0 or 1, the cursor moves to the next row after the row on which it is currently positioned. If the value of Pn is set to n, the cursor moves to the n th row after the row on which it is currently positioned. If n is greater than the number of rows displayed, the cursor moves to the last row of the display. ESC [ Pn B Example: To move the cursor to the next row after the row on which it is currently positioned (Pn=1). 01 [ (0x5b) 02 1 (0x31) 03 B (0x42) 3.1.8 Cursor up without scroll This command moves the cursor up in the same column. The number of rows moved is determined by the parameter Pn. If Pn is omitted, or if its value is set to 0 or 1, the cursor moves to the next row above the row on which it is currently positioned. If the value of Pn is set to n, the cursor moves to the n th row above the row on which it is currently positioned. If n is greater than the number of rows displayed, the cursor moves to the first row of the display. ESC [ Pn A Example: To move the cursor to the next row above the row on which it is currently positioned (Pn=1). 01 [ (0x5b) 02 1 (0x31) 03 A (0x41) 05-10-2007 CNI Engineering S.r.l. 5

RM85x Hand-held Terminals User Manual 3.1.9 Cursor right This command moves the cursor to the right along the row on which it is currently positioned. The number of columns moved is determined by the parameter Pn. If Pn is omitted, or if its value is set to 0 or 1, the cursor moves to the next column to the right. If the value of Pn is set to n, the cursor moves n columns to the right. If n is greater than the number of columns between the column in which the cursor is currently positioned and the right display margin, the cursor moves to the right-most column of the display. ESC [ Pn C Example: To move the cursor 10 columns to the right (Pn=10). 01 [ (0x5b) 02 1 (0x31) 03 0 (0x30) 04 C (0x43) 3.1.10 Cursor left This command moves the cursor to the left along the row on which it is currently positioned. The number of columns moved is determined by the parameter Pn. If Pn is omitted, or if its value is set to 0 or 1, the cursor moves to the next column to the left. If the value of Pn is set to n, the cursor moves n columns to the left. If n is greater than the number of columns between the column in which the cursor is currently positioned and the left display margin, the cursor moves to the left-most column of the display. ESC [ Pn D Example: To move the cursor 9 columns to the left (Pn=9). 01 [ (0x5b) 02 9 (0x39) 03 D (0x43) 3.1.11 Backspace This command moves the cursor one column to the left along the row on which it is currently positioned. If the command is used when the cursor is already on the first column of the display, the cursor does not move. BS 00 BS (0x08) 6 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands 3.1.12 Position cursor This command moves the cursor to the position determined by the parameterspn-r, andpn-c.pn-r determines the row to which the cursor moves whilepn-c determines the column. If Pn-r is omitted or if its value is set to 0 or 1, the cursor moves to the first row of the display. If Pn-c is omitted or if its value is set to 0 or 1, the cursor moves to the first column of the display. Display rows are numbered from 1 to 4 starting from the top, and columns are numbered 1 to 20 starting from the left. ESC [ Pn-r ; Pn-c H Example: To move the cursor to row 2, column 12 (Pn-r=2;Pn-c=12). 01 [ (0x5b) 02 1 (0x31) 03 ; (0x3b) 04 1 (0x31) 05 3 (0x33) 06 H (0x48) 3.1.13 Tab This command moves the cursor to the first tab position it meets to the right. The contents of the row are not changed. The fixed tab positions are: column 9, column 17, and column 20. If the cursor is already positioned on the last column of the display (column 20), is does not move. HT 00 HT (0x09) 3.1.14 Save cursor This command saves the position of the cursor (its row and column) and its attributes (off or on). ESC 7 01 7 (0x37) 05-10-2007 CNI Engineering S.r.l. 7

RM85x Hand-held Terminals User Manual 3.1.15 Restore cursor This command restores the position of the cursor (row and column) and its attributes (off or on), previously saved with the Save cursor command. ESC 8 01 8 (0x38) 3.2 Editor commands This group of commands lets you: send characters to the terminal set character blinking parameters define the scroll area N.B.: Whenever the terminal is switched on or reset, the characters are displayed fixed (not blinking) and the scroll area is set to one display. 3.2.1 Send characters to terminal This command sends the terminal a sequence of characters to be displayed starting from the current cursor position. For each character received, the cursor moves one column to the right along the row on which it is currently positioned until it reaches the last column on the display. If the cursor is already located on the last column of the display, all characters are displayed at that position and the cursor itself does not move. Characters are transmitted using standard ASCII code. The terminal displays all characters apart from those shown in the following table. Code 0x05 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x11 0x13 0x18 0x1a 0x1b Description version request command backspace tab cursor down and home cursor down and home form feed carriage return XON XOFF cancel escape sequence cancel escape sequence start escape sequence The characters encoded as0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe and0xff are customisable. These characters can be modified by changing the corresponding parameters described in Appendix A. 8 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands Example: To send the string Rm-851. 00 R (0x52) 01 m (0x6d) 02 - (0x2d) 03 8 (0x38) 04 5 (0x35) 05 1 (0x31) The figure below shows what characters are available. 05-10-2007 CNI Engineering S.r.l. 9

RM85x Hand-held Terminals User Manual 3.2.2 Scroll area This command sets the scroll area,. i.e. the area by which the display scrolls at one time. The parameterpn-r1 determines the first row of the scroll area and parameterpn-r2 determines the last row. IfPn-r1 is set to a value greater than parameterpn-r2, the entire display scrolls. This command also moves the cursor to the first column of the first row of the next scroll area. ESC [ Pn-r1 ; Pn-r2 r Example: To set the end of the scroll area between the second and third rows. 01 [ (0x5b) 02 2 (0x32) 03 ; (0x3b) 04 3 (0x33) 05 r (0x72) 3.2.3 Clear screen (Form feed) This command displays a screen full of blank characters (0x32) and moves the cursor to the first column of the first row. FF 00 FF (0x0c) 3.2.4 Display fixed characters This command sets characters to appear fixed (not blinking). The terminal displays all characters sent after this command as fixed. ESC [ 0 m 01 [ (0x5b) 02 0 (0x30) 03 m (0x6d) 10 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands 3.2.5 Display blinking characters This command sets characters to appear blinking. The terminal displays all characters sent after this command as blinking. ESC [ 5 m 01 [ (0x5b) 02 5 (0x35) 03 m (0x6d) 3.2.6 Reset character blinking This command cancels character blinking. ESC [ 2 5 m 01 [ (0x5b) 02 2 (0x32) 03 5 (0x35) 04 m (0x6d) 3.2.7 Insert characters This command inserts the number of blank characters (0x32) determined by the parameterpn. Blank characters are inserted starting from the current cursor position. Characters present to the right of the cursor on the same row are moved to the right by the number of blank characters inserted. IfPn is omitted or if its value set to 0, just one blank character is inserted. This command does not change the position of the cursor. ESC [ Pn @ Example: To insert 5 blank characters. 01 [ (0x5b) 02 5 (0x35) 03 @ (0x40) 05-10-2007 CNI Engineering S.r.l. 11

RM85x Hand-held Terminals User Manual 3.2.8 Insert rows This command inserts the number of blank rows determined by the parameterpn. Blank rows are inserted starting from the row on which the cursor is currently positioned. All rows beneath the row the cursor is on are moved down accordingly. This command does not take the current scroll area setting into account. IfPn is omitted or if its value is set to 0, just one blank row is inserted. This command does not change the position of the cursor. ESC [ Pn L Example: To insert 1 row below the row on which the cursor is currently positioned. 01 [ (0x5b) 02 1 (0x31) 03 L (0x4c) 3.3 Character delete commands This group of command lets you delete characters, parts of rows or even a complete display. 3.3.1 Delete n characters This command deletes the number of characters determined by the parameterpn. Characters are deleted rightwards starting from the current cursor position. IfPn is omitted or if its value is set to 0, just one character is deleted. No more characters can be deleted than the number present between the cursor position and the last character in the row. This command does not change the position of the cursor. ESC [ Pn P Example: To delete 2 characters starting from the current cursor position. 01 [ (0x5b) 02 2 (0x32) 03 P (0x50) 12 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands 3.3.2 Delete to end of row This command deletes all characters from the current cursor position to the end of the row. It does not change the position of the cursor. ESC [ 0 K 01 [ (0x5b) 02 0 (0x30) 03 K (0x4b) 3.3.3 Delete from start of row This command deletes all characters from the start of the row to the current cursor position. It does not change the position of the cursor. ESC [ 1 K 01 [ (0x5b) 02 1 (0x31) 03 K (0x4b) 3.3.4 Delete row This command deletes the entire row on which the cursor is currently positioned. It does not change the position of the cursor. ESC [ 2 K 01 [ (0x5b) 02 2 (0x32) 03 K (0x4b) 05-10-2007 CNI Engineering S.r.l. 13

RM85x Hand-held Terminals User Manual 3.3.5 Delete to end of display This command deletes all characters from the current cursor position to the last character in the display (last row, last column). It does not change the position of the cursor. ESC [ 0 J 01 [ (0x5b) 02 0 (0x30) 03 J (0x4a) 3.3.6 Delete from start of display This command deletes all characters from the start of the display (first row, first column) to the current cursor position (inclusive). It does not change the position of the cursor. ESC [ 1 J 01 [ (0x5b) 02 1 (0x31) 03 J (0x4a) 3.3.7 Delete all rows This command deletes all characters from all rows of the display. It does not change the position of the cursor. ESC [ 2 J 01 [ (0x5b) 02 2 (0x32) 03 J (0x4a) 14 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands 3.3.8 Delete n rows This command deletes the number of rows determined by the parameterpn, starting from the row on which the cursor is currently positioned. IfPn is omitted or if its value is set to 0, just one row is deleted. This command does not change the position of the cursor. ESC [ Pn M Example: To delete 2 rows starting from the row on which the cursor is currently positioned. 01 [ (0x5b) 02 2 (0x32) 03 M (0x4d) 3.4 Information request commands 3.4.1 Request firmware version This command requests the terminal to return the firmware version. 0x05 Example: To request the firmware version, receiving the response from the terminal that its firmware is version 4. 00 (0x05) R (0x52) 01 M (0x4d) 02 8 (0x38) 03 5 (0x35) 04 x (0x78) 05 - (0x2d) 06 4 (0x34) 05-10-2007 CNI Engineering S.r.l. 15

RM85x Hand-held Terminals User Manual 3.4.2 Request cursor position This command requests the terminal to return the numbers of the row and column on which the cursor is currently positioned. Terminal response sequence ESC [ 6 n ESC [ Pn-r ; Pn-c R In the terminal s response sequence, the first parameter (Pn-r) identifies the number of the row on which the cursor is positioned, while the second (Pn-c) identifies the number of the column. Example: To request the cursor position, receiving the response from the terminal that the cursor is on row 2, column 9. ESC (0x1b) 01 [ (0x5b) [ (0x5b) 02 6 (0x36) 2 (0x32) 03 n (0x6e) ; (0x3b) 04 9 (0x39) 05 R (0x52) 3.4.3 Request communication parameters This command requests the terminal to return the current communication parameters. Terminal response sequence ESC [<sol> x ESC [ <sol> ; <par> ; <nbits> ; <xspeed> ; <rspeed> ; <clkmul> ; <flags> x The following table explains the meanings of the parameters returned. Parameter Value Meaning 1 This message is a request. After it, the terminal will <sol> return reports in response to requests. 3 This message is a report (DECREPTPARM) which terminal creates only on request. 1 No Parity <par> 4 Odd parity 5 Even parity <nbits> <xspeed>, <rspeed> 1 8 bits per character 2 7 bits per character 112 9600 bits per second 120 19200 bits per second 240 38400 bits per second 360 57600 bits per second <clkmul> 1 Bit multiplication ratio is 16 <flags> 0 16 CNI Engineering S.r.l. 05-10-2007

Example: If baud rate is 57.6 Kb, the terminal provides the following response. ESC (0x1b) 01 [ (0x5b) [ (0x5b) 02 1 (0x31) 3 (0x33) 03 x (0x78) ; (0x3b) 04 1 (0x31) 05 ; (0x3b) 06 1 (0x31) 07 ; (0x3b) 08 3 (0x37) 09 6 (0x32) 10 0 (0x30) 11 ; (0x3b) 12 3 (0x37) 13 6 (0x32) 14 0 (0x30) 15 ; (0x3b) 16 1 (0x31) 17 ; (0x3b) 18 0 (0x30) 19 x (0x78 VT100 protocol commands 3.4.4 Request terminal attributes This command requests the terminal to return its identifying attributes. Terminal response sequence ESC [ c ESC [ 1 ; 2 c Example: To request the terminal s attributes, receiving the response[c, showing that the terminal is an advanced video option terminal. ESC (0x1b) 01 [ (0x5b) [ (0x5b) 02 c (0x63) 1 (0x31) 03 ; (0x3b) 04 2 (0x32) 04 c (0x63) 05-10-2007 CNI Engineering S.r.l. 17

RM85x Hand-held Terminals User Manual 3.5 Terminal status commands 3.5.1 Reset terminal This command resets the terminal to its initial state, characterised by: cursor off, at position row 1, column 1 display empty scroll area set between first and last rows of display fixed (non-blinking) characters ESC c 01 c (0x63) 3.5.2 Cancel escape sequence This command cancels any escape sequence still active on the terminal. CAN 00 CAN (0x18) 3.5.3 Self test This command fills the display with E s and moves the cursor to row 1, column 1. ESC # 8 01 # (0x23) 02 8 (0x38) 18 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands 3.5.4 Exit VT100 protocol This command makes the terminal exit VT100 protocol and start using CNI proprietary protocol instead. To re-start using VT100 protocol, you must either switch the terminal off and back on again, or send the VT100 selection command in CNI proprietary protocol. ESC [? J 01 [ (0x3b) 02? (0x3f) 03 J (0x4a) 3.6 I/O commands 3.6.1 Switch LEDs This command switches the terminal s LEDs on or off. The first parameter (Pn-e) switches the LED on and off. The second parameter (Pn-l) selects what LED to switch. If the value ofpn-e is 1, the LED selected bypn-l is switched on. If the value ofpn-e is 0, the LED selected bypn-l is switched off. ESC [ Pn-e ; Pn-l k Example: To switch LED number 3 on. 01 [ (0x5b) 02 1 (0x31) 03 ; (0x3b) 04 3 (0x33) 05 k (0x6b) 05-10-2007 CNI Engineering S.r.l. 19

RM85x Hand-held Terminals User Manual 3.6.2 Monitor keys Whenever one of its keys changes state, the terminal sends the following sequence. ESC [ Pn-1 ; Pn-2 ; Pn-3 t ParameterPn-1 identifies the state of the key. Value 1 means that the key is pressed, 0 means it is released. ParameterPn-2 identifies the key that has changed state. This parameter can have any value from 1 to 32. ParameterPn-3 is the 16 bit CRC for all characters sent up to and including the second ;. See Appendix F for further information. Example: Key 3 has been pressed. Byte sent Response 01 [ (0x5b) 02 1 (0x31) 03 ; (0x3b) 04 3 (0x33) 05 ; (0x3b) 06 3 (0x33) 07 8 (0x38) 08 9 (0x39) 09 4 (0x34) 10 0 (0x30) 11 t (0x74) 20 CNI Engineering S.r.l. 05-10-2007

VT100 protocol commands 3.6.3 Monitor knob Whenever its control knob changes state, the terminal sends the following sequence. ESC [ Pn-1 ; Pn-2 ; Pn-3 q ParameterPn-1 identifies the state of the control knob. This parameter can have any value from 0 to 65535. If the parameter value is currently 0 and the knob is turned anti-clockwise, the value becomes 65535. If the parameter value is 65535 and the knob is turned clockwise, the value becomes 0. ParameterPn-2 identifies the knob that has changed state. This parameter can only have the value 1. ParameterPn-3 is the 16 bit CRC for all characters sent up to and including the second ;. See Appendix F for further information. Example: The current value of the knob is 32. The following sequence is sent when the knob is turned. Byte sent Response 01 [ (0x5b) 02 2 (0x32) 03 3 (0x33) 04 ; (0x3b) 05 1 (0x31) 06 ; (0x3b) 07 4 (0x34) 08 6 (0x36) 09 3 (0x33) 10 2 (0x32) 11 2 (0x32) 12 q (0x71) 05-10-2007 CNI Engineering S.r.l. 21

RM85x Hand-held Terminals User Manual 3.6.4 Monitor overrides Whenever one of its overrides changes state, the terminal sends the following sequence. ESC [ Pn-1 ; Pn-2 ; Pn-3 p ParameterPn-1 identifies the state of the override. This parameter can have any value from 0 to 255. ParameterPn-2 identifies the override that has just changed state. This parameter can have a value of either 1 or 2. ParameterPn-3 is the 16 bit CRC for all characters sent up to and including the second ;. See Appendix F for further information. Example: The current override value is 190. The following sequence is sent when the override is turned. 01 [ (0x5b) 02 1 (0x31) 03 9 (0x39) 04 0 (0x30) 05 ; (0x3b) 06 2 (0x32) 07 ; (0x3b) 08 3 (0x33) 09 1 (0x31) 10 0 (0x30) 11 8 (0x38) 12 7 (0x37) 13 p (0x70) 22 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 4 CNI proprietary protocol commands Packets sent in response to CNI proprietary commands always contain 4Status Bits. See Appendix C for the meanings of these bits. 4.1.1 Position cursor This command positions the cursor at thecursorposition, which varies from 0 to 79, and assigns it CursorAttributes with the following meaning. Cursor attribute Meaning 0 Cursor off 1 Cursor on 2 Cursor blinking 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdCursorPosit CmdCursorPosit 05 0x00 0x00 06 CursorAttribute CursorAttribute 07 CursorPosition CursorPosition 08 CRC CRC 09 ETX ETX Example: To position the cursor of the terminal at node address 0 at position 16 with the cursor on. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x04 (StatusBit) 04 0x28 (CmdCursorPosit) 0x28 (CmdCursorPosit) 05 0x00 0x00 06 0x01 (CursorAttribute) 0x01 (CursorAttribute) 07 0x10 (CursorPosition) 0x10 (CursorPosition) 08 0xce (CRC) 0xc2 (CRC) 09 0x03 (ETX) 0x03 (ETX) 05-10-2007 CNI Engineering S.r.l. 23

RM85x Hand-held Terminals User Manual 4.1.2 Write string This command writes a string of charactersnumbercharacters long, with blinking characters if CharacterBlinking is set to 1. The string is displayed at positionpositioncharacters. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdWriteStr CmdWriteStr 05 NumberCharacters NumberCharacters 06 CharacterBlinking CharacterBlinking 07 PositionCharacters PositionCharacters 08 Second character CRC 09 First character ETX 10 Fourth character 11 Third character 2*n+6 (2n) th character 2*n+7 (2n-1) th character 2*n+8 CRC 2*n+9 ETX Example: To write the string abcde in blinking characters at position 16 on the terminal at node address 0. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 StatusBit (0x00) 04 0x18 (CmdWriteStr) 0x18 (CmdWriteStr) 05 0x05 (NumberCharacters) 0x05 (NumberCharacters) 06 0x01 (CharacterBlinking) 0x01 (CharacterBlinking) 07 0x10 (PositionCharacters) 0x10 (PositionCharacters) 08 0x62 (Second character = b ) 0xF3 (CRC) 09 0x61 (First character = a ) 0x03 (ETX) 10 0x64 (Fourth character = d ) 11 0x63 (Third character = c ) 12 0x00 (Sixth character) 13 0x65 (Fifth character = e ) 14 0x9a (CRC) 15 0x03 (ETX) 24 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 4.1.3 Delete rows This command deletes the display rows defined bit by bit inrowsbit. The first bit set to 1 identifies the first row, the second bit set to 1 the second row and so on. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdDelRow CmdDelRow 05 0x00 0x00 06 0x00 0x00 07 RowsBit RowsBit 08 CRC CRC 09 ETX ETX Example: To delete the first row from the display of the terminal at node address 0. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 StatusBit (0x04) 04 0x20 (CmdDelRow) 0x20 (CmdDelRow) 05 0x00 0x00 06 0x00 0x00 07 0x01 (RowsBit) 0x01 (RowsBit) 08 0xd6 (CRC) 0xda (CRC) 09 0x03 (ETX) 0x03 (ETX) 05-10-2007 CNI Engineering S.r.l. 25

RM85x Hand-held Terminals User Manual 4.1.4 Scroll This command scrolls up (ifscrollup is set to 1) or scrolls down (ifscrollup is set to 0) by the number of rows determined bynrowsscroll 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdScroll CmdScroll 05 0x00 0x00 06 NRowsScroll NRowsScroll 07 ScrollUp ScrollUp 08 CRC CRC 09 ETX ETX Example: To scroll the display of the terminal at node address 0 up 4 rows. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x00 (StatusBit) 04 0x30 (CmdScroll) 0x30 (CmdScroll) 05 0x00 0x00 06 0x04 (NRowsScroll) 0x04 (NRowsScroll) 07 0x01 (ScrollUp) 0x01 (ScrollUp) 08 0xc2 (CRC) 0xca (CRC) 09 0x03 (ETX) 0x03 (ETX) 26 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 4.1.5 Read I/O command This command requests the terminal to return data on the states of its I/O devices: knob, override/s, and keys. 01 STX STX 02 Node Node 03 CmdDefault CmdDefault StatusBit 04 0x00 D1 05 CRC D0 06 ETX D3 07 D2 08 CRC 09 ETX Meaning of returned data The meaning is determined by the firststatusbit bit according to the following table. First Meaning D0 Meaning D1 Meaning D2 Meaning D3 StatusBit 0 Bit by bit status for Bit by bit status for keys Bit by bit status for Bit by bit status for keys 1 to 8 9 to 16 keys 17 to 24 1 1 st override status 2 nd override status High byte of knob status keys 25 to 32 Low byte of knob status Example: To send the read I/O command to the terminal at node address 0 twice, receiving in response an I/O status showing that key 18 is pressed, override 1 is set to 1, override 2 to 5 and the knob has been turned to a value of 1063 (0x0427). First send: 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x00 (CmdDefault) 0xc (CmdDefault) 0x0 (StatusBit) 04 0x00 0x00 (D1) 05 0x00 (CRC) 0x00 (D0) 06 0x03 (ETX) 0x00 (D3) 07 0x02 (D2; [0x1b 0xfd]=0x02) 08 0x3d (CRC) 09 0x03 (ETX) Second send: 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x00 (CmdDefault) 0xc (CmdDefault) 0x1 (StatusBit) 04 0x00 0x05 (D1) 05 0x00 (CRC) 0x01 (D0) 06 0x03 (ETX) 0x04 (D3) 07 0x27 (D2) 08 0x19 (CRC) 09 0x03 (ETX) 05-10-2007 CNI Engineering S.r.l. 27

RM85x Hand-held Terminals User Manual 4.1.6 Read message This command reads the error message saved in the terminal. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdGetAlarm CmdGetAlarm 05 0x00 0x00 06 0x00 High byte of message code 07 0x00 Low byte of message code 08 CRC CRC 09 ETX ETX Example: To read the message in the terminal at node address 0, encoded 0x4003 (alarm for incorrect command received). 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 StatusBit (0x00) 04 0x48 (CmdGetAlarm) 0x48 (CmdGetAlarm) 05 0x00 0x00 06 0x00 0x40 (High byte of message code) 07 0x00 0x03 (Low byte of message code; [0x1b 0xfc]=0x03) 08 0xbf (CRC) 0xf4 (CRC) 09 0x03 (ETX) 0x03 (ETX) 28 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 4.1.7 Read character This command reads the character currently displayed at the positioncharacterposition. The character is that actually printed to screen when the command is received, so if you wish to read a character that is blinking, you may read either a blank (0x20) or the character itself, depending on the instant the command is sent. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdReadChar CmdReadChar 05 0x00 0x00 06 0x00 0x00 07 CharacterPosition CharacterRead 08 CRC CRC 09 ETX ETX Example: To read the character currently at position 16 on the display of the terminal at node address 0, an a (0x61) that is not blinking. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x00 (StatusBit) 04 CmdReadChar (0x38) 0x38 (CmdReadChar) 05 0x00 0x00 06 0x00 0x00 07 CharacterPosition (0x10) 0x61 (CharacterRead) 08 CRC (0xbf) 0xa6 (CRC) 09 ETX (0x03) 0x03 (ETX) 05-10-2007 CNI Engineering S.r.l. 29

RM85x Hand-held Terminals User Manual 4.1.8 Read version This command reads the version of the terminal s firmware. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdGetVer CmdGetVer 05 0x00 0x00 06 0x00 HighByteVersion 07 0x00 LowByteVersion 08 CRC CRC 09 ETX ETX Example: To read the version of the firmware in the terminal at node address 0, which is 1029 (0x0405) 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x00 (StatusBit) 04 0x50 (CmdGetVer) 0x50 (CmdGetVer) 05 0x00 0x00 06 0x00 0x04 (HighByteVersion) 07 0x00 0x05 (LowByteVersion) 08 CRC (0xbf) 0xae (CRC) 09 ETX (0x03) 0x03 (ETX) 30 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 4.1.9 Read type This command reads the terminal type. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdGetType CmdGetType 05 0x00 0x00 06 0x00 HighByteType 07 0x00 LowByteType 08 CRC CRC 09 ETX ETX Response The following table summarises the possible meanings of the response. Type returned Terminal type Bus type 0x0200 RM85x ENET 0x0201 RM85x RS485 0x0202 RM85x CAN 0x0203 RM85x RS232 VT100 Example: To read the type of the terminal at node address 0, which is type 0x0203 (with an RS232 serial bus and VT100 default protocol). 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x00 (StatusBit) 04 0xb8 (CmdGetType) 0xb8 (CmdGetType) 05 0x00 0x00 06 0x00 0x02 (HighByteType; [0x1b 0xfd] = 0x02) 07 0x00 0x03 (LowByteType; [0x1b 0xfc] = 0x03) 08 0xbf (CRC) 0x46 (CRC) 09 0x03 (ETX) 0x03 (ETX) 05-10-2007 CNI Engineering S.r.l. 31

RM85x Hand-held Terminals User Manual 4.1.10 Change parameter This command changes one of the parameters in the terminal. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdChgPar CmdChgPar 05 0x00 0x00 06 High part of parameter code High part of parameter code 07 Low part of parameter code Low part of parameter code 08 High part of parameter value CRC 09 Low part of parameter value ETX 10 CRC 11 ETX Example: To assign the value 1200 (0x04b0) to the parameter that determines character blinking frequency (code 0x010f) on the terminal at node address 0. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x0 (StatusBit) 04 0x68 (CmdChgPar) 0x68 (CmdChgPar) 05 0x00 0x00 06 0x01 (High part of parameter code) 0x01 (High part of parameter code) 07 0x0f (Low part of parameter code) 0x0f (Low part of parameter code) 08 0x04 (High part of parameter value) 0x99 (CRC) 09 0xb0 (Low part of parameter value) 0x03 (ETX) 10 0x25 (CRC) 11 0x03 (ETX) Example: To assign the value 1100 (0x044c) to the parameter 0x010 and to assign the value 1044 (0x0414) to the parameter 0x010f on the terminal at node address 0. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x00 (StatusBit) 04 0x68 (CmdChgPar) 0x68 (CmdChgPar) 05 0x00 0x00 06 0x01 (High part of parameter code) 0x01 (High part of parameter code) 07 0x0e (Low part of parameter code) 0x0e (Low part of parameter code) 08 0x04 (High part of parameter value) 0x98 (CRC) 09 0x4c (Low part of parameter value) 0x03 (ETX) 10 0x01 (High part of parameter code) 11 0x0f (Low part of parameter code) 12 0x04 (High part of parameter value) 13 0x14 (Low part of parameter value) 14 0xc6 (CRC) 15 0x03 (ETX) 32 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 4.1.11 Read parameter This command reads the terminal s internal parameters. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdGetParN CmdGetParN 05 0x00 0x00 06 High part of parameter code High part of parameter code 07 Low part of parameter code Low part of parameter code 08 0x00 High part of parameter value 09 0x00 Low part of parameter value 10 CRC CRC 11 ETX ETX Example: To read the value of the parameter that determines character blinking frequency (code 0x010f) from the terminal at node address 0, currently set to 500 (0x1f4). 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x0 (StatusBit) 04 0x70 (CmdGetParN) 0x70 (CmdGetParN) 05 0x00 0x00 06 0x01 (High part of parameter code) 0x01 (High part of parameter code) 07 0x0f (Low part of parameter code) 0x0f (Low part of parameter code) 08 0x00 0x01 (High part of parameter value) 09 0x00 0xf4 (Low part of parameter value) 10 0x89 (CRC) 0x74 (CRC) 11 0x03 (ETX) 0x03 (ETX) 05-10-2007 CNI Engineering S.r.l. 33

RM85x Hand-held Terminals User Manual 4.1.12 Restart VT100 This command restores VT100 protocol. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdStartVt100 CmdStartVt100 05 0x00 0x00 06 0x00 0x00 07 0x00 0x00 08 CRC CRC 09 ETX ETX Example: To restore VT100 protocol to the terminal at node address 0. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x00 (StatusBit) 04 0xc0 (CmdStartVt100) 0xc0 (CmdStartVt100) 05 0x00 0x00 06 0x00 0x00 07 0x00 0x00 08 0x37 (CRC) CRC (0x3f) 09 0x03 (ETX) ETX (0x03) 34 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 4.1.13 Save parameters to flash memory When the terminal is switched on, it loads its operating parameters from flash memory. This command saves the terminal s current parameters into its flash memory so that they will be loaded automatically the next time the terminal is switched on. Example 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x00 (StatusBit) 04 0x78 (CmdSaveParFl) 0x78 (CmdSaveParFl) 05 0x00 0x00 06 0x00 0x00 07 0x00 0x00 08 CRC CRC 09 0x03 (ETX) 0x03 (ETX) 4.1.14 Read flash memory This command reads any chosen address in the terminal s flash memory. The address can range from 0x0000 to 0x7fff. Example 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdReadFlash CmdReadFlash 05 0x00 0x00 06 High byte of address 0x00 07 Low byte of address RowsBit 08 CRC CRC 09 ETX ETX Example: To read the contents of the address 0x1007 in the flash memory of the terminal at node address 0, currently containing the value 0x149c. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 StatusBit 04 0xa0 (CmdReadFlash) 0xa0 (CmdReadFlash) 05 0x00 0x00 06 0x10 (High byte of address) 0x14 (High byte of value read) 07 0x07 (Low byte of address) 0x9c (Low byte of value read) 08 0x40 (CRC) 0xd7 (CRC) 09 0x03 (ETX) 0x03 (ETX) 05-10-2007 CNI Engineering S.r.l. 35

RM85x Hand-held Terminals User Manual 4.1.15 Sample variable This command commences sampling two variables in the terminal s firmware. See the appendices for details on the coding of these variables. 01 STX STX 02 Node Node 03 0x08 0x0 StatusBit 04 CmdSampleVar CmdSampleVar 05 0x00 0x00 06 Variable 1 code Variable 1 code 07 Variable 2 code Variable 2 code 08 CRC CRC 09 ETX ETX Example: To sample the two variables coded 0x04 and 0x05 in the terminal at node address 0. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x0 (StatusBit) 04 0xa8 (CmdSampleVar) 0xa8 (CmdSampleVar) 05 0x00 0x00 06 0x04 (Variable 1 code) 0x04 (Variable 1 code) 07 0x05 (Variable 2 code) 0x05 (Variable 2 code) 08 0x5e (CRC) 0x56 (CRC) 09 0x03 (ETX) 0x03 (ETX) 4.1.16 Sample address This command commences sampling two variable addresses in the terminal s firmware at a specified interval. Example 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 0x08 04 0xb0 (CmdSampleMem) 0xb0 (CmdSampleMem) 05 High part of variable address 1 High part of variable address 1 06 Low part of variable address 1 Low part of variable address 1 07 High part of variable address 2 High part of variable address 2 08 Low part of variable address 2 CRC 09 High part of sampling interval 0x03 (ETX) 10 Low part of sampling interval 11 CRC 12 0x03 (ETX) 36 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 4.1.17 Read samples This command downloads sampled values from the terminal. 01 0x02 (STX) 0x02 (STX) 02 0x00 (Node) 0x00 (Node) 03 0x08 0x0 StatusBit 04 0x58 (CmdGetSamp) 0x58 (CmdGetSamp) 05 0x00 0x00 06 0x00 High part of number of samples 07 0x00 Low part of number of samples 08 CRC High part of sample 1, variable 1 09 0x03 (ETX) Low part of sample 1, variable 1 10 High part of sample 1, variable 2 11 Low part of sample 1, variable 2 12 High part of sample 2, variable 1 13 Low part of sample 2, variable 1 14 High part of sample 2, variable 2 15 Low part of sample 2, variable 2 8+4 N High part of sample N, variable 1 8+4 N+1 Low part of sample N, variable 1 8+4 N+2 High part of sample N, variable 2 8+4 N+3 Low part of sample N, variable 2 8+4 N+4 0xXX 8+4 N+5 0xXX 8+4 N+6 CRC 8+4 N+7 0x03 (ETX) The maximum value of N is limited by the maximum length of the buffer (see section 2.2.3). 05-10-2007 CNI Engineering S.r.l. 37

RM85x Hand-held Terminals User Manual A Parameters Parameters can be changed using thecmdchgpar command(0x68). Code Meaning Name Size Unit of measure 0x0100 Reserved parameter(increases cursor display time in msec) 0x0101 0x0102 Reserved parameter(increases the display s character read wait time in msec) Reserved parameter(vt100 only: increases or decreases the default I/O refresh rate of 50 msec) Default value Min/ Max RESERVED1 16 bit 0 0 / 32767 RESERVED2 16 bit 0 0 / 32767 RESERVED3 16 bit 0-50 / 32767 0x0103 Reserved parameter RESERVED4 16 bit 6 0 / 32767 0x0104 Reserved parameter RESERVED5 16 bit 0-32768 / 32767 0x0105 Reserved parameter RESERVED6 16 bit 0-32768 / 32767 0x0106 Reserved parameter RESERVED7 16 bit 0-32768 / 32767 0x0107 Reserved parameter RESERVED8 16 bit 0-32768 / 32767 0x0108 Reserved parameter RESERVED9 16 bit 0-32768 / 32767 0x0109 Reserved parameter RESERVED10 16 bit 0-32768 / 32767 0x010A Reserved parameter RESERVED11 16 bit 0-32768 / 32767 0x010B Reserved parameter RESERVED12 16 bit 0-32768 / 32767 0x010C 0x010D Serial line: minimum delay before terminal responds to a command The time taken, starting from the last message received, to activate the watchdog (and therefore to switch off the key LEDs and reset the encoder count) TIMFB 16 bit msec 5 VT100 50 otherwise 1 / 100 TIMEOUTFB 16 bit msec 100 EnetX 1 / 1000 0x010E The half-period for TIMBLINKCUR 16 bit msec 250 1 / 2000 cursor blinking 0x010F The half-period for TIMBLINKCHAR 16 bit msec 500 1 / 2000 character blinking 0x0110 First row of scroll area INITROWSCROL 16 bit 0 0 / 3 L 0x0111 The number of rows in the scroll area NROWSSCROLL 16 bit 0 0 / 4 38 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 0x0112 0x0113 0x0114 0x0115 0x0116 0x0117 0x0118 0x0119 0x011A 0x011B 0x011C 0x011D 0x011E The frequency at which the filter is run to check key state. Display contrast: the lower the value, the higher the contrast. first row of pixels of the first character. The high byte forms the second row. third row of pixels of the first character. The high byte forms the fourth row. fifth row of pixels of the first character. The high byte forms the sixth row. seventh row of pixels of the first character. The high byte forms the eighth row. first row of pixels of the second character. The high byte forms the second row. third row of pixels of the second character. The high byte forms the fourth row. fifth row of pixels of the second character. The high byte forms the sixth row. seventh row of pixels of the second character. The high byte forms the eighth row. first row of pixels of the third character. The high byte forms the second row. third row of pixels of the third character. The high byte forms the fourth row. fifth row of pixels of the third character. The high byte forms the sixth row. FILTERBUTTON 16 bit msec 20 1 / 1000 CONTRASTON 16 bit 4 0 / 15 FONT0_0 16 bit 0 0 / 7967 FONT0_1 16 bit 0 0 / 7967 FONT0_2 16 bit 0 0 / 7967 FONT0_3 16 bit 0 0 / 7967 FONT1_0 16 bit 0 0 / 7967 FONT1_1 16 bit 0 0 / 7967 FONT1_2 16 bit 0 0 / 7967 FONT1_3 16 bit 0 0 / 7967 FONT2_0 16 bit 0 0 / 7967 FONT2_1 16 bit 0 0 / 7967 FONT2_2 16 bit 0 0 / 7967 05-10-2007 CNI Engineering S.r.l. 39

RM85x Hand-held Terminals User Manual 0x011F 0x0120 0x0121 0x0122 0x0123 0x0124 0x0125 0x0126 0x0127 0x0128 0x0129 0x012A seventh row of pixels of the third character. The high byte forms the eighth row. first row of pixels of the fourth character. The high byte forms the second row. third row of pixels of the fourth character. The high byte forms the fourth row. fifth row of pixels of the fourth character. The high byte forms the sixth row. seventh row of pixels of the fourth character. The high byte forms the eighth row. first row of pixels of the fifth character. The high byte forms the second row. third row of pixels of the fifth character. The high byte forms the fourth row. fifth row of pixels of the fifth character. The high byte forms the sixth row. seventh row of pixels of the fifth character. The high byte forms the eighth row. first row of pixels of the sixth character. The high byte forms the second row. third row of pixels of the sixth character. The high byte forms the fourth row. fifth row of pixels of the sixth character. The high byte forms the sixth row. FONT2_3 16 bit 0 0 / 7967 FONT3_0 16 bit 0 0 / 7967 FONT3_1 16 bit 0 0 / 7967 FONT3_2 16 bit 0 0 / 7967 FONT3_3 16 bit 0 0 / 7967 FONT4_0 16 bit 0 0 / 7967 FONT4_1 16 bit 0 0 / 7967 FONT4_2 16 bit 0 0 / 7967 FONT4_3 16 bit 0 0 / 7967 FONT5_0 16 bit 0 0 / 7967 FONT5_1 16 bit 0 0 / 7967 FONT5_2 16 bit 0 0 / 7967 40 CNI Engineering S.r.l. 05-10-2007

CNI proprietary protocol commands 0x012B 0x012C 0x012D 0x012E 0x012F 0x0130 0x0131 0x0132 0x0133 seventh row of pixels of the sixth character. The high byte forms the eighth row. first row of pixels of the seventh character. The high byte forms the second row. third row of pixels of the seventh character. The high byte forms the fourth row. fifth row of pixels of the seventh character. The high byte forms the sixth row. seventh row of pixels of the seventh character. The high byte forms the eighth row. first row of pixels of the eighth character. The high byte forms the second row. third row of pixels of the eighth character. The high byte forms the fourth row. fifth row of pixels of the eighth character. The high byte forms the sixth row. seventh row of pixels of the eighth character. The high byte forms the eighth row. FONT5_3 16 bit 0 0 / 7967 FONT6_0 16 bit 0 0 / 7967 FONT6_1 16 bit 0 0 / 7967 FONT6_2 16 bit 0 0 / 7967 FONT6_3 16 bit 0 0 / 7967 FONT7_0 16 bit 0 0 / 7967 FONT7_1 16 bit 0 0 / 7967 FONT7_2 16 bit 0 0 / 7967 FONT7_3 16 bit 0 0 / 7967 05-10-2007 CNI Engineering S.r.l. 41

RM85x Hand-held Terminals User Manual B Error messages Error messages can be captured using the Read message (CmdGetAlarm) command (see section 4.1.6). The following table describes the meanings of the various error messages. Code Name Meaning Action required 0x0000 NOALARM The terminal is functioning correctly. No error messages are present. None 0x0008 0x000A 0x000B 0x000C 0x000D ALCOMERROR ALNOPARAMINFL ALNOPRGINFLASH ALERASINGFL ALPRGMINGFL Error in communication between the terminal and the master (1). The parameters saved in flash memory are incorrect. The application saved in flash memory is incorrect. A flash memory delete error occurred while the application was being downloaded. A flash memory write error occurred while the application was being downloaded. Check the cabling. If the TIMEOUTFB parameter (0x010D) is set to a value other than 0, increase this value. Make sure that the master was not switched off while the terminal was on. Re-send the parameters to the terminal. If you wish, save them in flash memory (to avoid the same message appearing the next time you switch the terminal on). Download the application. Download the application again. Download the application again. 0x0021 ALWRONGIRQ Terminal software error. Contact the supplier. 0x4001 ALPARNONCORR A non-existent parameter was sent or read. 0x4003 0x4007 ALWRONGCMD ALFLNOTERASED A non-existent command or one with an incorrect length was sent. A request was made to write to an area of flash memory that has not been deleted. Check the software in the master. Check the software in the master. Contact the supplier. (1) Serial communications error with CNI proprietary protocol. May be caused by: Timeout: the master has not sent any more data A packet of characters received was too long (or the ETX character was missing) Two STX characters were received without an intervening ETX character CRC error An ESC character was received followed by the wrong character (ETX, STX or ESC). 42 CNI Engineering S.r.l. 05-10-2007