Agx format specification

Puac version 3.2
Last modified: January 16, 2004

Since Puac version 3.0, the agx format is used to store alarm groups in files. An agx file is a plain text file in XML format, in which the nodes represent the alarm group properties and alarms. Below follows a description of all the elements.

Version compatibility

Although Puac version 3.0 and 3.1 produce valid XML files, they cannot read all valid XML files. This should not be a problem, as long as you keep to the conventions below.

Puac XML conventions

A few quick conventions that are used in Puac to keep things clear:

Tags

tag One tag should be specified. If not present, the default is used.
tag? Tag doesn't need to be present.
tag* Zero or more tags may be present
tag- Tag isn't used anymore

 

Types

Each node is of one of the following type:

string Any text (with the proper escape codes, of course)
number A number
date A date represented by a string in the format yyyy-mm-dd hh:nn:ss
boolean 0 is false, any other number is true.
date unit A number, corresponding to a date unit. See table below.
node Only contains other xml nodes.

 

Date units

0 Seconds
1 Minutes
2 Hours
3 Days
4 Months
5 Years
6 Weeks

 

The alarm group format

An alarm group consists of one node: <algr>. The table lists the possible elements in the alarm group.

Tag Short descr. Type Default value Explanation
name name string New alarmgroup* The name of the alarm group. *Default value depends on language.
stat state boolean true The state of the alarm group (on = true, off = false)
chsi changed since import boolean false* Indicates if the alarm group has changed since importing or creating it. *When importing an alarm group, the value used in the program is always set to false.
colr color number 0 The color of the alarm group.
tmpl template alarm node   The template alarm for the ag. If not specified or empty, the default template will be used.
sync? synchronization plug-in string   Specifies which synchronization plug-in to use. Empty string, or node not present causes the alarm group to be normal.
sett? synchronization settings node   The settings of the synchronization plug-in.
type- type number 0 The type of alarm group.
tyst- settings for type node The settings for this type of alarm group. For normal ags, the template alarm used to be stored here as a <al> node.
alrm* alarms node   The alarms in the alarm group. See the table below for a specification.

 

The alarm specification

Tag Short descr. Type Default value Explanation
name name string New alarm* The name of the alarm. *Default value depends on language.
stat state boolean true The state of the alarm (on = true, off = false)
datk once, periodically number 0 The sounding scheme of the alarm. 0 for once, 1 for periodically.
perl period length number 1 The length of the period for a periodical alarm.
peru period unit date unit days The unit of the period length.
oncd once date date 9999-12-31 00:00:00 The date on which to sound the alarm if sounding it once.
nexd include date (periodical) date 9999-12-31 00:00:00 The date to include when shounding the alarm periodically.
actp restrictions number 0

The restrictions of the alarm that are effective (only when sounding periodically). Add to get the number:
2 = Only between the specified start and end date.
4 = Only on the specified weekdays.
8 = Only when the 'advanced'-expression is valid.

stad start date date 9999-12-31 00:00:00 Start date of period in which periodical alarm should sound.
endd end date date 9999-12-31 00:00:00 End date of period in which periodical alarm should sound.
wkds weekdays number 0 Specifies the weekdays on which the alarm sounds. Add the numbers to get the weekdays number.
1 = Sunday, 2 = Monday, 4 = Tuesday, 8 = Wednesday, 16 = Thursday, 32 = Friday, 64 = Saturday.
adva advanced expression string   The advanced restriction of a periodical alarm.
adda add amount number 0 Amount of time to add to the sounding time.
addu add unit date unit seconds Unit of the add amount.
acti* action node   The actions of this alarm. See the table below for a specification.
saia sound after inactive boolean true Specifies if the alarm should be sounded if the program has been inactive.
snoz is snoozing boolean false Indicates if the alarm is snoozing.
snod snooze date date 9999-12-31 00:00:00 The date on which the alarm should sound when it is snoozing.

 

The action specification

Tag Short descr. Type Default value Explanation
acid action id number 1 The id of the action. The built-in actions all have an id. There is a separate id for a plug-in action. See the table below for a list of all built-in actions.
plug plug-in name string   This is the name of the plug-in that will be used if this action is a plug-in action. The plug-in name will contain the library name and the plug-in name separated by a '*'. So for example: PuacExtension*ShortPopup
sett action settings node   The settings for this action. The contents of this node depends on the action.

 

The built-in action ids

ID Action Settings
0 empty action  
1 Display message <s> string: message
<i> boolean: display snooze option

2

Speak message <s> string: message
3 Display and speak message <s> string: message
<i> boolean: display snooze option
4 Open file <s> string: file path
5 Start program <s> string: program path
6 Open website <s> string: website url
7 Play sound once

<s> string: sound file path
<i> boolean: display stop button

8 Play sound repeatedly <s> string: sound file path
<i> boolean: display stop button
<i> number: repetition mode (number of times, forever, chiming hours)
<i> number: number of times
<i> number: restart mode (every x seconds, when sound ends)
<i> number: sound period length
9 Tell the time <s> string: message in time teller format
10 Tell how long until an event <s> string: message in time teller format
<d> date: reference date
11 Tell how long since an event <s> string: message in time teller format
<d> date: reference date
12 Start screensaver  
13 Shutdown computer  
14 Reboot computer  
15 Logoff from Windows  

 

www.puac.net
www.kokpeter.dds.nl/Puac3/index.html