source: hvcontrol/src/HVStatus.h@ 24

Last change on this file since 24 was 14, checked in by lstark, 17 years ago
first version of hvcontrol added
File size: 1.7 KB
Line 
1
2#ifndef HVSTATUS_H_SEEN
3#define HVSTATUS_H_SEEN
4
5#include <stdio.h>
6#include <stdlib.h>
7#include <string.h>
8#include <time.h>
9#include <sys/socket.h>
10#include <unistd.h>
11#include <pthread.h>
12
13#include "Types.h"
14#include "HVConfig.h"
15
16typedef enum stateenum { active, stopped, na } state_enum;
17typedef enum connection { disconnected, connected } connect_enum;
18
19typedef struct status_str {
20
21 pthread_t HVMonitor;
22
23 char Prompt[MAX_COM_SIZE];
24
25 bool Log;
26 bool Verbose;
27
28 char Param[10][MAX_COM_SIZE], *Pc; // For parser
29 int NParam;
30
31 connect_enum cc_state;
32
33 int Socket; // PrintMessage() uses this socket, -1 if not connected
34 pthread_t SocketThread; // exit function sends signal to this thread
35
36 int CCPort;
37 char CCClient[STR_LENGTH];
38
39 char** fUSBDevice;
40 int USBDeviceNumber[MAX_NUM_HVBOARDS];
41 int USBMinDeviceNumber;
42 int USBMaxDeviceNumber;
43
44 int NumHVBoards;
45 int FirstBoard;
46 int LastBoard;
47
48 int FirstChain;
49 int LastChain;
50
51 unsigned int VRef[MAX_NUM_HVBOARDS][MAX_NUM_CHAINS];
52 unsigned int HV[MAX_NUM_HVBOARDS][MAX_NUM_CHAINS][MAX_NUM_CHANNELS];
53
54 float fTimeOut;
55 float fStatusRefreshRate;
56
57 bool OC[MAX_NUM_HVBOARDS][MAX_NUM_CHAINS]; // Overcurrent flag
58 bool MR[MAX_NUM_HVBOARDS]; // Manual reset
59
60 bool isok[MAX_NUM_HVBOARDS];
61 state_enum state;
62
63 bool IsUpdated[MAX_NUM_HVBOARDS];
64
65 int WC[2][MAX_NUM_HVBOARDS];
66
67 int CCCommand;
68 int Exit;
69 int Stop;
70
71} Status;
72
73
74void InitStatus(Status* status, HVConfig* config);
75void ReInitStatus(Status* status);
76void ReInitStatusOneBoard(Status* status, int board);
77void PrintStatus(Status* status, HVConfig* config, FILE* fptr);
78void sPrintStatus(Status* status, char* str, int i);
79char* GetStateStr(Status* status);
80
81#endif
Note: See TracBrowser for help on using the repository browser.