succd
====

A little daemon for monitoring the SEM. This is a temporary solution that runs on a BeagleBone Enhanced (`succbone.lab`) and *SHOULD* be replaced with a proper PLC/SCADA system and general process control in the future.

Features:

1. Monitors the state of the Pirani gauge via the BBE's builtin ADC.
2. Allows enabling/disabling the diffusion/roughing pumps (builtin controller always keeps them enabled).
3. Allows for simulating vent/pumpdown button presses.

Pins
---

| P9 pin number | Relay number   | Relay board / channel number | GPIO number | Function          |
|---------------|----------------|------------------------------|-------------|-------------------|
| 27            | -KFA1          | 1 / 4                        | 115         | Roughing Pump     |
| 23            | -KFA2          | 1 / 3                        | 49          | Diffusion Pump    |
| n/c           | -KFA3 (broken) | 1 / 2                        | n/c         |                   |
| 12            | -KFA4          | 1 / 1                        | 60          | Vent Button       |
| 15            | -KFA5          | 2 / 4                        | 48          | Pump Down Button  |
| 11            | -KFA6          | 2 / 3                        | 30          | Rough Vacuum Out  |
| 42            | -KFA7          | 2 / 2                        | 7           | High Vacuum Out   |
| n/c           | -KFA8          | 2 / 1                        | n/c         |                   |

Accessing at the lab
---

Go to [succbone.lab.fa-fo.de](http://succbone.lab.fa-fo.de).

Known issues
---

Sometimes the websocket doesn't connect. Refreshing the page a few times should fix it.

Running locally
---

```
$ ./ci.sh # run tests
$ go run . -fake
```

Then point your browser to localhost:8080

Deploying on the succbone
---

```
$ ssh root@succbone systemctl stop succd
$ GOARCH=arm go build .
$ scp succd root@succbone:/usr/bin/succd
$ ssh root@succbone systemctl start succd
```
