[~H]: CSX5_GEN_1.4 cfg file (rev 1, 06-2008) \UNIT: CSX5 \OpenFilter: Jsm Config 2 (CSX5GEN1.4) Configuration Files|*.CSX5GEN1.4.jcc \SaveFilter: Jsm Config 2 (CSX5GEN1.4) Configuration Files|*.CSX5GEN1.4.jcc [~S] MCS: Module configuration InMemory: true [c0]: Hexadecimal module address Format: CC Default: 01 Choices: 01;02;03;04;05;06;07;08;09;0A;0B;0C;0D;0E;0F;10;11;12;13;14;15;16;17;18;19;1A;1B;1C;1D;1E;1F Help: Hexadecimal module address (01-1F) SizeX: 70 [c1]: COM1 baud rate____________ Format: CC Default: 08 Choices: 38400 bauds=02;19200 bauds=04;9600 bauds=08;4800 bauds=10;2400 bauds=20;1200 bauds=40;600 bauds=80;300 bauds=FF Help: Baudrate for COM1 port. SizeX: 70 [c2]: Parity, data and stop bits Format: CC Default: 00 Choices: N81 (No parity, 8 data bits, 1 stop bit)=00;E71 (Even parity, 7 data bits, 1 stop bit)=10;O71 (Odd parity, 7 data bits, 1 stop bit)=08 Help: Parity, data bits and stop bits for COM1 port SizeX: 70 [c3]: Hardware handshake________ Format: CC Default: 04 Choices: yes=04;no=00 Help: Hardware handshake SizeX: 70 [c4]: Normal/Skip parity________ Format: CC Default: 00 Choices: normal=00;skip parity (E81 or O81 only)=01 Help: Normal/Skip parity SizeX: 70 [~S] QS: Qualification entries InMemory: true \LOOP: Qualification entries Minimum: 0 Maximum: 24 Variable: @ NoFrame: true [zi]: Index BeforeFrame0: Qualification BeforeFrame0SizeX: 83 BeforeFrame0SizeY: 15 Default: @@ ReadOnly: true InMemory: true SizeX: 15 ContinueSameLine: true [qr]: Use rule # Format: 0 Default: 0 Choices: 0 !RULES.[zr]0!=0;1 !RULES.[zr]1!=1;2 !RULES.[zr]2!=2;3 !RULES.[zr]3!=3;4 !RULES.[zr]4!=4;5 !RULES.[zr]5!=5;6 !RULES.[zr]6!=6;7 !RULES.[zr]7!=7;8 !RULES.[zr]8!=8;9 !RULES.[zr]9!=9 Help: Enter rule number to use (0-9). SizeX: 40 SpacingX: 20 [qq]: qq Format: "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" Default: Help: Enter qualification string, which must be found in captured string! SizeX: 76 [qs]: qs Format: "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" Default: Help: Enter possible substitution string (to be used in rule). SizeX: 76 ApplyOffsetX: -2 ApplyOffsetY: 1 \ENDLOOP [~S] DS: Dictionary entries InMemory: true \LOOP: Dictionary entries Minimum: 0 Maximum: 282 Variable: @ Fold: 1 SpacingX: 10 [dd]: (dd) String to look for :__________ BeforeLabel0: Index BeforeLabel0SizeY: 5 Format: "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" Default: Help: Enter the string to look for.
Use * as a wildcard character. SizeX: 78 [ds]: (ds) Possible substitution string : Format: "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" Default: Help: Enter possible substitution string to use in pager message. SizeX: 78 [dc]: (dc) Call back number if required : Format: "CCCCCCCCCCCCCCCCCCCC" Default: Help: Enter call back number if required. ApplyOffsetY: 2 [d0]: (d0) Pager or team number:_________ BeforeLabel0: Pagers and team numbers : BeforeLabel0ForeColor: Blue Format: "CCCCCCCCCCCCCCCCCCCC" Default: Help: Enter pager or team to call #1.
See 's' section. [d1]: (d1) Pager or team number:_________ Format: "CCCCCCCCCCCCCCCCCCCC" Default: Help: Enter pager or team to call #1.
See 's' section. [d2]: (d2) Pager or team number:_________ Format: "CCCCCCCCCCCCCCCCCCCC" Default: Help: Enter pager or team to call #1.
See 's' section. [d3]: (d3) Pager or team number:_________ Format: "CCCCCCCCCCCCCCCCCCCC" Default: Help: Enter pager or team to call #1.
See 's' section. \ENDLOOP [~S] RULES: Rules InMemory: true \LOOP: Rules Minimum: 0 Maximum: 9 Variable: @ NoFrame: true Fold: 1 SpacingX: 16 SpacingY: 3 ContinueSameLine: true [r@] Visible: false \LOOP: Selected rule Minimum: 0 Maximum: 31 Variable: # NoScroll: true TrapKeys: false Fold: 1 [] BeforeLabel0: Rule to edit : BeforeLabel0ContinueSameLine: true Format: CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC Regex: ((((v[0-9|p|m|c|a]= (fc\([+|-]\d\d,\d\d\)|v[0-9]|vp|vm|vc|qq|qs|dd|ds|dc|d[0-3]|"[^"]*")(\+(fc\([+|-]\d\d,\d\d\)|v[0-9]|vp|vm|vc|qq|qs|dd|ds|dc|d[0-3]|"[^"]*"))*)|(fs\((v[0-9]|vp|vm|vc|qq|qs|dd|ds|dc|d[0-3])\)))\s*;)|PAG|END).* SyntaxRegex1: fc(.*) SyntaxColor1: Blue SyntaxRegex2: fs(.*) SyntaxColor2: NavyBlue SyntaxRegex3: [\d*] SyntaxColor3: Maroon SyntaxRegex4: [+|-] SyntaxColor4: GoldenRod SyntaxRegex5: v[0-9|p|m|c|a] SyntaxColor5: DarkGreen SyntaxRegex6: ; SyntaxColor6: DarkBlue SyntaxRegex7: PAG SyntaxColor7: Purple SyntaxRegex8: END SyntaxColor8: INDIGO SyntaxRegex9: "[^"]*" SyntaxColor9: LightSalmon SyntaxRegex10: ;.* SyntaxColor10: Blue Propositions: Assignation :=; v0-9/vp/vm/vc/va= fc()/v0-9/vp/vm/vc/qq/qs/dd/ds/dc/d0-3/+/""==v?= ; Functions :=; fc(+offset,length) : copy 'length' text bytes from 'Begin' +/- 'offset'=fc(+offset,length); fs(variable) : search in dictionary for variable=fs(variable); Variables (are assignables) :=; v0 to v9 : 10 text variables to use, preserved between captures=v0; vp : pager (team or user) to call, defined by the rule=vp; vm : message string to send, defined by the rule=vm; vc : call back number (if required), defined by the rule=vc; va : proprity, message presentation type and alert type (eg. "KP 002")=va; Variables (are not assignables) :=; qq : validation string itself; qs : substitution string of the matching string found=qs; dd : string found if the rule specifies a search in dictionary=dd; ds : possible substitution string associated to matching string found in dictionary=ds; dc : call back variable associated to matching string found in dictionary=dc; Four possible pager numbers associated to matching string found in dictionary=; d0 : First pager or team number=d0; d1 : Second pager or team number=d1; d2 : Third pager or team number=d2; d3 : Fourth pager or team number=d3; d? : current pager selected according to staff work shifts (NOT implemented)=d0; Commands :=; PAGE : send the page=PAGE; END : ends the rule and process a new capture (very important)=END MultiLine: true FullLine: true SpacingY: 4 SizeX: 80 SizeY: 62 ApplyOffsetX: -2 ApplyOffsetY: 63 Help: Please read documentation manual below for detailed explanations. \ENDLOOP [zr]: Description Format: CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC Help: Enter a quick description for rule @. SpacingX: 26 SpacingY: -69 ApplyOffsetY: -3 \ENDLOOP \HTMLWelcome: JsmConfig - CSX5 GEN 1.4 Programming Template for CSX5 GEN 1.4 software

Jsm Logo
Jsm Micro inc. (C) 2008 \HTMLTemplate: JsmConfig - CSX5 GEN 1.4

%parameter_name% : %parameter_description%
Default value : %parameter_default%

\TXTDocumentation: File name: CSX5 GENERIC_1_4.TXT Date: sep 27, 2005 Title: Doc file for generic serial port v1.4 software Revisions: aug 15, 2003 (first release) mar 28, 2005 (add module programming mode instructions) jun 09, 2005 (add '=' operator description) sep 27, 2005 (add 'PAG' command description) ------------------------------------------------------------------------------- 1- Description ------------------------------------------------------------------------------- The serial text based generic software will permit to send messages to pagers based on a user defined set of rules applied to a captured text string. The text string ends on a or a combination and should be less than 255 characters long. The captured string is then qualified by comparing it against one or more qualification strings (see qualification section). If no match occurs, the string is dropped and a new capture starts. NOTE THAT v0 to v9 VARIABLES ARE PRESERVED BETWEEN CAPTURES AND MAY CONTAIN PREVIOUSLY CAPTURED DATA. This is usefull when you need to capture several lines of data to construct a message. When a match occurs, the following variables are availables: Begin: At wich position the match occurs on the captured string. qq: The validation string that match qs: A substitution string (associated to qq) that may be used. qr: The rule number (associated to qq) to be applied. Notes: The variable 'Begin' is not directly accessible. It is used by the "fc" (copy) function. 'qr' represents the rule number to be applied and is not accessible. The programmed rule is then applied. ------------------------------------------------------------------------------- 2- Rules syntax ------------------------------------------------------------------------------- To write the rules the user will have the following variables and functions: v0 to v9 | 10 text variables to use | Note: these text variables are PRESERVED between captures. | (usefull to work on two strings of data) | | fc(offset,length) | Copy 'length' text bytes from 'Begin' +/- 'offset' | Bytes are copied to a variable. | ex: | capt string: "Hello my friend Charles. How are you?" | qualifier: "my fri**d" (note the wildcard chr *) | | v0= fc(+10,07) will copy 7 chrs from +10 positions offset | (of the beginning of where the matched | string is within the captured string) to v0. | v0 will contain "Charles". | | v0= fc(-06,05) will copy "Hello" to v0. | | syntax: fc(SOO,LL); | ------------------- | S= sign '+' or '-' | OO= offset (two digits: 00-99) | LL= length (two digits: 00-99) | | | fs(variable) | Search in dictionary for variable | If not found, captured string is dropped and a new one | is captured. | ex: fs(v0) search if v0 text is in dictionary | | Note: The search function will define or redefine these | variables: dd, ds, dc, d0, d1, d2, d3 | | qq | The validation string itself: "my fri**d" | qs | Is a substitution string associated to the matching | string found by the "qualifier" program. | see: 'q' section of cfg file | dd | When the rule specifies a search in dictionary | 'dd' will be the string found. | see: 'd' section of cfg file | ds | 'ds' will be a possible substitution string associated | to the matching string found in dictionary. The 'ds' | can be used to build the pager message. | dc | 'dc' will be a call back variable associated to the | matching string found in dictionary. | d0 to d3 | Will be four possible pager numbers associated to the | matching string found in dictionary. | vp | Will be the pager (team or user) to call. | This variable is defined in the rule. | vm | Will be the message string to send. | This variable is defined in the rule. | vc | Will be the call back number (if required) | This variable is defined in the rule. | va | Will be the priority, message presentation type | and alert type. Typical usage: va= "KP 002" | | syntax: va= "KP pma"; | | KP: kirk page command | p: priority (0 or 1) | m: message type (see KIRK_DOC sect: 3) | a: alert type (see KIRK_DOC sect: 3) | | Note: va must be defined in the rule or the page | will fail. | d? | The d? variable represents the current pager (d0-d4) | selected according to staff work shifts. | -- THIS VARIABLE IS NOT IMPLEMENTED YET -- Note: The first letter is used to quickly identify the purpose of the word: --------------------------------------------------------------------------- v: means a variable (v0-v9, vp, vm, vc) f: means a function (fc: copy, fs: search) q: means a qualifier section variable (qq, qs) d: means a dictionary section variable (dd, ds, dc, d0-d3) ------------------------------------------------------------------------------- 3- Assignation (=) and concatenation (+) operators description ------------------------------------------------------------------------------- ??= fc()/v0-9/vp/vm/vc/qq/qs/dd/ds/dc/d0-3/+/"" | --- --------------------------------- | | | | right side allowed variables | Quoted string is copied or | | | concatenated to the left | right side allowed function | side variable. | | left side variable concatenation operator (possible values: v0-9/vp/vm/vc/va) ------------------------------------------------------------------------------- 4- Commands (KEYWORDS) used in rules ------------------------------------------------------------------------------- PAG | This keyword will issue a "page" command. | ie: va, vp, vc and vm variables will be | combined to form a message. This message | will be transmitted over JSMBUSS and will | be handeled by the control module. | | END | This keyword is used to end the rule. Capture | will resume and variables 'v0' to 'v9' will be | preserved. All other variables will be cleared. | | ; | Semicolon denote a comment. | Anything following a semicolon up to end of line | will be considered as a comment. ------------------------------------------------------------------------------- 5- Programming file format ------------------------------------------------------------------------------- As example, take the following Micro-Vox nurse call system output: "[1 000 00 204-1 14h 54.35 ..... may have additionnal data here.." | | | | | | | room number 2 to 3 digits with/without bed identification | | | or 4 digits without bed (jobs dependant) | | | | | type of call: | | 00= call, 01= recall, 02= emergency call' 03= cancelled call | | 04= emergency recall, 06= 'stat' call 08= staff call, 09= blue code | | 10= answered call | | | system number (2,3 or 4 digits, with/without hyphen '-') | "[1" indicates data for pagers Configuration file example: --------------------------- ;[~H] file name: cfg.txt ; customer: JSM Micro inc, example file ; date: APR 26, 2003 ;'c' module configuration section ; baud values: ; 02= 38400, 04= 19200, 08= 9600, 10= 4800, 20= 2400, 40= 1200, 80= 600, FF= 300 ;------------------------------------------------------------------------------------- ;[c0]31 ; hexadecimal module adress (01-1F) | 01 ;[c1]08 ; com1 baud rate | 9600 ;[c2]00 ; parity (00= N81, 10= E71, 08= O71) | N81 ;[c3]04 ; hardware handshake (04= yes, 00= no) | YES ;[c4]00 ; 00= normal, 01= skip parity (E81 or O81) | NORMAL ;'q' qualification section ; qq= (size: 80) qualification string (must be found in captured string) ; qs= (size: 79) possible substitution string (to be used in rule) ; qr= (size: 01) rule number to use (0-9) ; MAXIMUM: 25 qualification entries (25 x (qq, qs, qr)) ;------------------------------------------------------------------------------------- ;[qq]"[1 000 00 " [qs]"CALL " [qr]0 ; normal call, rule 0 ;[qq]"[1 000 01 " [qs]"CALL " [qr]0 ; normal recall, rule 0 ;[qq]"[1 000 02 " [qs]"EMERGENCY " [qr]0 ; emergency call, rule 0 ;[qq]"[1 000 04 " [qs]"EMERGENCY " [qr]0 ; emergency recall, rule 0 ;[qq]"[1 000 06 " [qs]"CALL " [qr]0 ; stat (priority) call, rule 0 ;[qq]"[1 000 08 " [qs]"HELP" [qr]1 ; staff call, rule 1 ;[qq]"[1 000 09 " [qs]"CODE BLUE" [qr]2 ; code blue call, rule 2 ;'d' dictionary section ; dd= (size= 40) string to look for (*= wildcard chr) ; ds= (size= 40) possible substitution string to use in pager message ; dc= (size= 20) call back number if required ; d0= (size= 20) pager or team to call (default if no schedule) ; d1= (size= 20) pager or team to call (see 's' section) ; d2= (size= 20) pager or team to call (see 's' section) ; d3= (size= 20) pager or team to call (see 's' section) ; MAXIMUM: 283 entries with 128k ram ;---------------------------------------------------------------------------------- ;[dd]"201**" [ds] [dc]"81201" [d0]"T01" [d1]"T04" [d2]"T07" ;[dd]"202-1" [ds] [dc]"812021" [d0]"T01" [d1]"T04" [d2]"T07" ;[dd]"202-2" [ds] [dc]"812022" [d0]"T01" [d1]"T04" [d2]"T07" ;[dd]"203**" [ds]"BATH " [dc]"81203" [d0]"T02" [d1]"T04" [d2]"T07" ;[dd]"204**" [ds] [dc]"81204" [d0]"T02" [d1]"T04" [d2]"T07" ;[dd]"205**" [ds] [dc]"81205" [d0]"T02" [d1]"T04" [d2]"T07" ;[dd]"206**" [ds] [dc]"81206" [d0]"T03" [d1]"T05" [d2]"T07" ;[dd]"207-1" [ds] [dc]"812071" [d0]"T03" [d1]"T05" [d2]"T07" ;[dd]"207-2" [ds] [dc]"812072" [d0]"T03" [d1]"T05" [d2]"T07" ;[dd]"staff" [d0]"T06" [d1]"T08" [d2]"T09" ;'r' rules section (size= 256 bytes per rule, excluding spaces and comments) ; vp= pager to use, vm= message formula, vc= call back number ; IMPORTANT: each rule instruction must end with a semicolon ';'. ; MAXIMUM: 10 rules (r0 - r9) ;---------------------------------------------------------------------------------- ;[r0] ; typical call ;v0= fc(+12,05); ; extract room-bed number ;fs(v0); ; search it in dictionary (for pager selection) ;vp= d0; ; select associated pager ;vm= qs+ds+v0; ; select associated message ;vc= dc; ; select call-back number ;va= "KP 002"; ; Kirk Page, priority=0, type= page, alert= 2 ;PAG ; page ;END ; exit from rule ;[r1] ; staff call (page staff team instead of room designed pager) ;v0= fc(+12,05); ; extract room-bed number ;fs(v0); ; search it in dictionary (for pager selection) ;vm= qs+ds+v0; ; select associated message ;vc= dc; ; select call-back number ;v1= "staff"; ; set v1 to find appropriate staff pager ;fs(v1); ; search for this word in dictionary ;vp= d0; ; select associated pager ;va= "KP 002"; ; Kirk Page, priority=0, type= page, alert= 2 ;PAG; ; page command ;vp= d1; ; select a second pager ;PAG; ; page it ;END ; exit from rule ;[r2] ; blue code (page blue code team) ;v0= fc(+12,05); ; extract room-bed number ;fs(v0); ; search it in dictionary (for pager selection) ;vp= "T09"; ; select blue code pager team ;vm= qs+ds+v0; ; select associated message ;vc= dc; ; select call-back number ;va= "KP 104"; ; priority= 1, type= page call, alert type= 4 ;PAG ; page ;END ; exit from rule ;[~P] END ------------------------------------------------------------------------------- 6- Module configuration: ------------------------------------------------------------------------------- Connect the module COM1 serial port to your notebook computer using a standard serial communication program like HyperTerminal or Procomm. Set your communications parameters to: 9600 N 8 1 with no hardware handskake. IMPORTANT: Set your "caps lock" key on. All commands must be typed in CAPITAL LETTERS To access the programming mode, press the CSX5 reset button then type: "CMD" within 3 seconds. You should receive a message showing the bios version followed by a command prompt: "CMD>" Type "H" to display the following menu and command prompt: (H)elp (L)oad cfg file (V)erify cfg file (R)etreive cfg file (E)xit Typing any other key will have the same effect as typing "H" for help. Commands description: --------------------- L Will prompt you to send the configuration file. You must send it as a TEXT file (in plain ASCII) For example, with HyperTerminal use TRANSFER -> TEXT FILE menu. After the file transfer the CSX5 will program it in its flash memory and show you a progress indicator. V Will prompt you to send the configuration file. The file will be compared against the stored file and result shown. R Is used to retreive the stored configuration file. You must setup your communications program to capture text prior to issuing the command. For example, with HyperTerminal, use TRANSFER -> CAPTURE TEXT menu. Enter a name for the captured file and then press "R" key. The stored configuration file will be downloaded from module and captured by your notebook. When the download stop, end the capture. The file will be saved and can be used for modifications. E Will exit from the programmng mode. [~P]