Server documentation
Dielectric properties of body tissues in the frequency range 10 Hz - 100 GHz: the Tissue Properties Dæmon (tpd).
Overview
The server program is a standard UNIX dæmon named Tissue Properties Dæmon (tpd in the following). tpd manages the table of the 14 parameters for each of the defined tissues and incorporates the procedures for the calculation of the relative permittivity, the electrical conductivity and other related quantities (the loss tangent, the wavelength and the penetration depth).
tpd is a multitasking application developed according to
the standard model for UNIX concurrent TCP/IP dæmons. It runs on the
Unix system having Internet address niremf.ifac.cnr.it, where
it keeps listening to TCP port 5210 for requests from clients.
The client-server dialog is based on a simple ASCII protocol, consisting in text lines terminated by the carriage return + line feed sequence and organized in a command/response iterative process. You can test your link to the server issuing the following command on your system:
telnet niremf.ifac.cnr.it 5210
If the request is detected, tpd will initiate the dialog replying with the following standard positive message:
+OK Tissue Dielectric Properties Server
and then will dispose itself to accept and execute your commands. From this point on, the dialog goes on with the client sending commands to the server and the server executing the commands and answering with data lines and answers, as described below. The dialog is terminated by the client issuing the QUIT command, causing the server to reply with:
+OK Connection closed
and shut down the connection.
Server responses
Every response begins with one of three markers. A positive response starts
with +OK, an error with -ERR, and a response that is
followed by data lines with +RDY n, where n
is the number
of lines that follow. After those lines the server sends its standard positive
message again, so that a client always knows when a block is over.
Command reference
In the syntax column, angular brackets mark a mandatory parameter and square brackets an optional one. Commands are case insensitive.
| Command | Syntax | Purpose | Parameters and response |
|---|---|---|---|
FORM |
FORM [index] |
Sets or displays the output format index. | index (integer, 0–3). Without the
parameter it shows the current format; a value out of range leaves it unchanged.
Answers +OK index Tissue Dielectric Properties Server. |
GETA |
GETA <frequency> |
Properties of every tissue at one frequency. | frequency (real, Hz) between 10 and
1011. Out of range: -ERR Bad frequency: ### Hz. Otherwise
+RDY n, with nthe number of tissues, then n lines. |
GETS |
GETS <tissue> <frequency> |
Properties of one tissue at one frequency. | tissue (string) among those defined; frequency (real, Hz) from 10 Hz to 100 GHz. |
GLIN |
GLIN <tissue> <start> <stop> <intervals> |
Properties of one tissue over linearly spaced frequencies. | start and stop (real, Hz); intervals (integer). |
GLOG |
GLOG <tissue> <start> <stop> <per decade> |
Properties of one tissue over logarithmically spaced frequencies. | start and stop (real, Hz); values per decade (integer). The frequencies span the whole decades containing the requested range. |
HELP |
HELP |
Prints a summarised help page. | — |
LIST |
LIST |
Lists the defined tissues. | — |
PARM |
PARM <tissue> |
Prints the parameters of one tissue. | tissue (string) among those defined. |
PRMA |
PRMA |
Prints the parameters of every tissue. | — |
QUIT |
QUIT |
Closes the connection. | — |
Output formats
Four output formats are available, numbered 0 to 3, selected with FORM and
written below in the style of the C printf
function format string; each comes with a
worked example of the whole dialogue. The parameters to pass to the format string are, in
order (the expected unit of measurement in brackets):
- Length of the tissue-name string (i.e. length of the next parameter)
- Name of the tissue
- Frequency (Hz)
- Conductivity (S/m)
- Relative permittivity
- Loss tangent
- Wavelength in tissue (m)
- Penetration depth in tissue (m)
| Index | Format string and example dialogue | Values |
|---|---|---|
0 |
%-*s f= %12.4le Hz sig= %12.4le S/m eps= %12.4le tgl= %12.4le wav= %12.4le m dep= %12.4le m\r\n
|
all seven, each with its label |
1 |
%-*s %12.4le %12.4le %12.4le %12.4le %12.4le %12.4le\r\n
|
the same seven without labels: the easiest to read from a program |
2 |
%-*s f= %12.4le Hz sig= %12.4le S/m eps= %12.4le\r\n
|
name, frequency, conductivity and permittivity, with labels |
3 |
%-*s %12.4le %12.4le %12.4le\r\n
|
the same four without labels |
Usage logging and personal data
Every connection to the server is recorded: date and time, the IP address of the client, its reverse DNS name, the country derived from them and the number of commands received. The web application records the same information when a calculation is run; merely opening the page is not recorded. Nothing else is stored: not the commands, not the tissues or the frequencies requested. IFAC-CNR keeps these records for one purpose, to know that the service is still in use and by which communities, since it is offered free of charge and maintained on public funds.
IP address and host name are personal data. They are kept in full for
12 months; after that they are automatically reduced to the
network (the first three octets of an IPv4 address, the /48 prefix of an IPv6
address) and to the registered domain of the host name (for example
tuhh.de or ic.ac.uk), which can no longer be traced
to a person. The records are accessible only to the service administrators and
are never shared with third parties. The log of the previous server
(2001–2026) has been imported in this anonymised form only. For any
question or request concerning these data please contact IFAC-CNR through the
contact details of this site.
Keywords: tpd, Tissue Properties Daemon, TCP, 5210, Server documentation, Protocol