collection
|
The database is the connective link between pdr and pdx.
Normally the user has no need to bother about it's internal
structure. Utilizing pdr and pdx he works almost exclusively
with so called collections (series of
measurements). This is the concept: A collection saves all
values of a concrete series of measuring, each value together
with a unique timestamp:
[...]
2008-12-17 21:45:00 5.9
2008-12-18 05:00:00 6.1
2008-12-18 12:45:00 5.3
2008-12-18 18:45:00 5.3
2008-12-18 21:45:00 4.7
2008-12-19 05:00:00 5.2
2008-12-19 12:45:00 5.4
2008-12-19 18:45:00 4.7
2008-12-19 21:45:00 5.7
[...]
If there are five parameters to get measured there are also five
collections needed. The user can with pdr list, create and
delete such collections at any time.
Every collection has a unique
name. This name is a combination from the following
characters:
A...Z
a...z _ * + ! ? ^ ° § $ / & [ ]
{ } = ~
The name is case sensitive. The number of the collections and
the length of their names are unlimited.
Note: Because of the
use of these names in expressions what happens quite often the
names of collections should be short. There's no argument
against the use of single characters (especially letters).
Two collections have fix names: * and #. The first one is the so
called default
collection which is always numeric. The second one is the
comment collection which is text. These two collections
don't have to be created explicitly, they always do exist. The
reason for this is their special (nameless) use in expressions.
You should use both these collections for the most important use
case.
Collections have each a concrete type for all of their data
values. This type has to be declared during the creation of a
collection. Mixed collections are not thinkable at all. There
are three possible types of collections:
- numeric
(floating point numbers with double precision)
- ratio
(a pair of floating point numbers,
intended for blood pressure)
- text
(an unlimited character string for
comments)
|
expression |
During data input over e-mail mailboxes, the command line or
text files pdr interpretes so called expressions. Every text
line is an expression. An expression can contain several values,
so we have to declare which value should get into which
collection. For doing this we use a simple syntax - the name of
the collection is used as suffix:
[date] [time]
(value[collection])* [; comment]
This definition means:
- the whole line is an expression
- date and time are optional, if there's no or only a
partial specification the current date or time will be used to
complete the input
- date and time are valid for the whole expression, all
following values and comments on this line get the same
timestamp
- we have 0 or more value-collection-pairs, this means a
value and a collection name without any space between, the
collectionname is optional, if there's no collection name the
default collection is used
- optionally the text behind a semicolon until the end of
the line will be interpreted as comment
Note: if there are two
values for the same collection in the same expression only the
latter will be used, there can be only one value per timestamp
in a collection because the timestamp is the unique key.
Date and time have a concrete, not localized syntax:
[CCYY-]MM-DD and
hh:mm[:ss]
ExamplesGiven that we have the following collections in
the database: l,
m, n (all numeric) and anyway
* and #. The following expressions
would be correct:
5.2
(implicit use of default
collection)
5.2*
(explicit use of default collection)
5.2 8l 7n 1m
75/123
(collection /)
"This is a string"z 2009-08-16 12:34 5.3 9n ; this is my
comment
23:45 15l
; comment only
We see that simple data input is a primary design goal even if
these expressions seem to be a bit cryptic on the first view.
They (look at the first three lines) can easily be entered also
with the limited capabilities of mobile phones. They have to be
read again only by a machine. You can also, if there's no other
opportunity to transmit, put these data into a text file or
write them on a sheet of paper and enter them later.
|
.pdrxrc
|
The term "configuration file .pdrxrc" is beeing used as a
synonym. You can have several such files at different places
overriding each other. The search order is as follows:
- You can have a file named .pdrxrc in the actual
directory.
- If not the applications look into the HOME directory of
the user to find a file named .pdrxrc.
- If this file also doesn't exist they look in ~/.config/pdrx
for a file named pdrxrc
(without a dot). This file is the default configuration.
Normally you will have only the last one. The first both
possibilities are legacy but have still their meaning for doing
tests.
|
rejection
|
pdr: it can happen that
expressions can't be
parsed because of incorrect spelling or other errors, for example
in e-mails this leads to the problem that such a message will be
processed again and again which leads to the same problem, for
this reason such incorrect expressions get into the rejections, a special table in the
database containing rejected data, but they can be corrected
later
|
selection |
pdx: a variaty of values of a
collection useable for
further calculations, the selection is based upon timewise
criteria and can contain gaps
|
timespan, time duration
|
a time span with any length, the
smallest unit is 1s
|
timestamp |
a concrete point in history with
the precision of a second, contains always date and time
|