forked from zutshi/S3CAMX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
csim_test_controller.c
51 lines (37 loc) · 1.35 KB
/
csim_test_controller.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//#include<stdio.h>
#define NUM_STATES (3)
#define NUM_OUTPUTS (2)
#define NUM_INPUTS (1)
#define NUM_X (5)
// DO NOT change structure signatures without modifying csim.py and controlifc.py !!!!!!
typedef struct{
int* int_state_arr;
double* float_state_arr;
double* output_arr;
}RETURN_VAL;
typedef struct{
double* input_arr;
int* int_state_arr;
double* float_state_arr;
double* x_arr;
}INPUT_VAL;
void* controller(INPUT_VAL* iv, RETURN_VAL* rv);
void controller_init();
void controller_init(){}
void* controller(INPUT_VAL* input, RETURN_VAL* ret_val)
{
ret_val->int_state_arr[0] = input->int_state_arr[0] + 2000;
ret_val->int_state_arr[1] = input->int_state_arr[1] + 2000;
ret_val->int_state_arr[2] = input->int_state_arr[2] + 2000;
ret_val->float_state_arr[0] = input->float_state_arr[0] + 1000.0;
ret_val->float_state_arr[1] = input->float_state_arr[1] + 1000.0;
ret_val->float_state_arr[2] = input->float_state_arr[2] + 1000.0;
ret_val->float_state_arr[3] = input->float_state_arr[3] + 1000.0;
ret_val->output_arr[0] = input->x_arr[0]
+ input->x_arr[1]
+ input->x_arr[2]
+ input->x_arr[3]
+ input->x_arr[4];
ret_val->output_arr[1] = input->input_arr[0];
return (void*)0;
}