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]
Examples
Given 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
|