| |
1 |
'''II. [wiki:Grasp STARGRASP Software Overview]''' |
| |
2 |
|
| |
3 |
[[TracNav(GraspContents)]] |
| |
4 |
|
| |
5 |
There are five layers of interfaces to the STARGRASP controller system. Each is built on only the next lower layer: |
| |
6 |
|
| |
7 |
A. [wiki:GraspSwDemoScripts Demo Scripts] |
| |
8 |
|
| |
9 |
Our example/template script commands run on the STARGRASP pixel server. |
| |
10 |
They are implemented in Bourne Shell and are primarily for |
| |
11 |
demonstration -- a suggested way to integrate a camera |
| |
12 |
or set of detectors controlled by STARGRASP into a larger system. |
| |
13 |
The scripts use toolkit level commands, described below, |
| |
14 |
to control a group of controller boardsets. |
| |
15 |
|
| |
16 |
B. [wiki:GraspSwToolkit Toolkit Level] |
| |
17 |
|
| |
18 |
The STARGRASP toolkit consists of C programs which a user or |
| |
19 |
script can invoke on the pixel server host. Toolkit programs |
| |
20 |
can be invoked on any host with the ability to connect to the |
| |
21 |
controller using IP over Ethernet. The most important tools |
| |
22 |
in the toolkit are those which receive log messages, boot the |
| |
23 |
controller, send arbitrary commands, and retrieve FITS images. |
| |
24 |
Additional engineering tools exist to visualize and optimize |
| |
25 |
noise performance and generate clocking patterns. |
| |
26 |
|
| |
27 |
C. [wiki:GraspSwClibraries STARGRASP C Libraries] |
| |
28 |
|
| |
29 |
Each of the toolkit tools are built on five main C Libraries. |
| |
30 |
Users wishing to replace the Demo Scripts, or make their own |
| |
31 |
customized tools that work in a similar fashion to the |
| |
32 |
toolkit level can build their own programs by using the |
| |
33 |
APIs at this level and linking with these libraries. Some |
| |
34 |
of the APIs at this level are still evolving, so we recommend |
| |
35 |
using the Toolkit tools instead, if possible. |
| |
36 |
|
| |
37 |
D. [wiki:GraspSwControllerCmd Controller Socket Commands] |
| |
38 |
|
| |
39 |
The STARGRASP C libraries must accomplish all controller |
| |
40 |
communication through a TCP socket on the controller's |
| |
41 |
port 915 (by default.) The majority of these commands are sent |
| |
42 |
by using grasp_cmd() (the C function, or the toolkit tool.) |
| |
43 |
grasp_cmd is a pass-through to the extensive list of commands |
| |
44 |
that the controller supports at the socket level. For diagnostics, |
| |
45 |
many of these commands can also be typed manually if a serial |
| |
46 |
console is connected to the controller, and most can be sent |
| |
47 |
interactively with a tool such as "telnet" or "nc". A command |
| |
48 |
exists to control each analog and digital function of the controller. |
| |
49 |
|
| |
50 |
E. [wiki:GraspSwRegisters Registers and Clocking Instructions] |
| |
51 |
|
| |
52 |
Registers and Clocking Instructions are the lowest level API, |
| |
53 |
used only by someone adding a new controller socket level command. |
| |
54 |
All controller socket level commands are implemented in C code |
| |
55 |
(downloaded as the stage2.srec to the controller) which modifies |
| |
56 |
registers or address space, and/or writes instructions to the |
| |
57 |
clocking engine. |