|
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. |