Actions

Difference between revisions of "External Data Input"

From Zenitel Wiki

(Moved description of string and temp macroes to separate pages. Cleaned up the example)
(Additional information)
 
(39 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
{{AI}}
 +
The EDI ports are defined in AlphaPro: [[Exchange_%26_System_%28AlphaPro%29#Serial_Ports|Exchange & System -> Serial Ports]].
 +
* The input message must have a termination character
 +
* Maximum 128 characters. If longer strings, the first 128 characters will be returned, the rest will be ignored.
 +
* Parsing the content is done in the action string in the Event Handler
 +
 
==Event description==
 
==Event description==
 
+
{|
{| border="1" cellpadding="4"
+
|-
! align="left"|[[Event Owner]]:  
+
|width="200pt"|'''Event Owner''':
| EDI Text Config
+
|width="300pt"|EDI Text Config
 
|-
 
|-
! align="left"|[[Event Handler#Events Types - Grouped by Function|Event type]]:  
+
|'''Event type''': || 28 - External Data Input
| External Data Input
 
 
|-
 
|-
! align="left"|[[Sub-Event (Event Handler)|Sub-Event]]:
+
|'''Subevent''': || 1 – 10: specifies which EDI port<br>0: matches all ports
| 1 – 4: specifies which EDI port. 0: matches all ports
 
 
|-
 
|-
! align="left"|[[When Change to (Event Handler)|When Change to ON]]:  
+
|'''When change to ON''': || When valid data is received on EDI port
| When valid data is received on EDI port
 
 
|-
 
|-
! align="left"|[[When Change to (Event Handler)|When Change to OFF]]:  
+
|'''When change to OFF''': || N/A
| N/A
 
 
|-
 
|-
! align="left"|[[When Related to (Event Handler)|When Related to]]:
+
|'''When related to''': || N/A
| N/A
 
 
|-
 
|-
 
|}
 
|}
 +
<br>
  
 
+
==Additional information==
*Input message
 
:- The EDI port is defined in the ‘Serial Ports’ Setup
 
:- The input message must have a termination character. Max 128 char.
 
:- Parsing the content is done in the action string
 
 
 
 
*Context parameters
 
*Context parameters
:- [[Edi (macro)|%edi]] is the input text where termination character is excluded
+
:- [[edi (macro)|%edi]] is the input text where termination character is excluded
 
:- [[%sev]] is the EDI port (sub-event)
 
:- [[%sev]] is the EDI port (sub-event)
  
Line 35: Line 32:
 
:* [[%scutc]] - Extract substring by byte (character) position
 
:* [[%scutc]] - Extract substring by byte (character) position
 
:* [[%scutf]] - Extract field, fields defined by delimiter character
 
:* [[%scutf]] - Extract field, fields defined by delimiter character
 +
:* [[%strlen]] - Return length of string
 
:* [[%sscan]] - Scan for string, extract rest of string after first match
 
:* [[%sscan]] - Scan for string, extract rest of string after first match
 
:* [[%scmp]]  - Compare strings
 
:* [[%scmp]]  - Compare strings
Line 40: Line 38:
 
:* [[%tmp]]  - Read temporary variable
 
:* [[%tmp]]  - Read temporary variable
  
 +
{{note| The NUL character (ASCII 0x00) cannot be used in the EDI string. The processing of the string will be terminated when receiving NUL.}}
  
 
== Example ==
 
== Example ==
 +
When receiving the text string "Start alarm 3", terminated by Line Feed character, play alarm message 3 (8193) to group 85:
  
[[Image:EDI - External Data Input (3).jpg|thumb|right|500px]]
+
[[Image:EDI example.PNG|thumb|left|1200px|Trigger event by text string from external device]]
 
+
<br style="clear:both;" />
The rule below  will allow you to issue commands to EDI port like this: 
 
*connect,101,103
 
:-Generates internal command '''$CALL L101 L103'''
 
  
*disconnect,101,103
 
:-Generates internal commands '''$C L101'''and '''$C L103'''
 
  
evh add edi 0
+
[[Category:Event Handler]]
tmp 0 "%scutf(%edi,\,,0)"
+
[[Category:Event types]]
tmp 1 "%scutf(%edi,\,,1)"
 
tmp 2 "%scutf(%edi,\,,2)"
 
if %scmp(%tmp(0),connect)
 
  $call l%tmp(1) l%tmp(2)
 
  stop
 
endif
 
if %scmp(%tmp(0),disconnect)
 
  $c l%tmp(1)
 
  $c l%tmp(2)
 
  stop
 
endif
 

Latest revision as of 09:39, 10 October 2023

AI.png

The EDI ports are defined in AlphaPro: Exchange & System -> Serial Ports.

  • The input message must have a termination character
  • Maximum 128 characters. If longer strings, the first 128 characters will be returned, the rest will be ignored.
  • Parsing the content is done in the action string in the Event Handler

Event description

Event Owner: EDI Text Config
Event type: 28 - External Data Input
Subevent: 1 – 10: specifies which EDI port
0: matches all ports
When change to ON: When valid data is received on EDI port
When change to OFF: N/A
When related to: N/A


Additional information

  • Context parameters
- %edi is the input text where termination character is excluded
- %sev is the EDI port (sub-event)
  • Useful macros and statements
  • %scutc - Extract substring by byte (character) position
  • %scutf - Extract field, fields defined by delimiter character
  • %strlen - Return length of string
  • %sscan - Scan for string, extract rest of string after first match
  • %scmp - Compare strings
  • TMP - Set temporary variable
  • %tmp - Read temporary variable
Note icon The NUL character (ASCII 0x00) cannot be used in the EDI string. The processing of the string will be terminated when receiving NUL.


Example

When receiving the text string "Start alarm 3", terminated by Line Feed character, play alarm message 3 (8193) to group 85:

Trigger event by text string from external device