blob: 2ce5b2211292c5970b71648615ca5a8efe867d51 (
plain)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
/**** POSIXS ******************************************************************/
#include <stdlib.h>
#include <string.h>
/**** RELABSD *****************************************************************/
#include <relabsd/config/parameters.h>
#include <relabsd/device/axis.h>
/******************************************************************************/
/**** LOCAL FUNCTIONS *********************************************************/
/******************************************************************************/
/******************************************************************************/
/**** EXPORTED FUNCTIONS ******************************************************/
/******************************************************************************/
void relabsd_parameters_initialize_options
(
struct relabsd_parameters parameters [const restrict static 1]
)
{
int i;
parameters->run_as_daemon = 0;
parameters->communication_node_name = (const char *) NULL;
parameters->device_name = (const char *) NULL;
parameters->physical_device_file_name = (const char *) NULL;
parameters->configuration_file = (const char *) NULL;
parameters->device_name_was_modified = 0;
for (i = 0; i < RELABSD_AXIS_VALID_AXES_COUNT; ++i)
{
relabsd_axis_initialize(parameters->axes + i);
}
}
int relabsd_parameters_get_run_as_daemon
(
const struct relabsd_parameters parameters [const restrict static 1]
)
{
return parameters->run_as_daemon;
}
const char * relabsd_parameters_get_communication_node_name
(
const struct relabsd_parameters parameters [const restrict static 1]
)
{
return parameters->communication_node_name;
}
const char * relabsd_parameters_get_device_name
(
const struct relabsd_parameters parameters [const restrict static 1]
)
{
return parameters->device_name;
}
const char * relabsd_parameters_get_physical_device_file_name
(
const struct relabsd_parameters parameters [const restrict static 1]
)
{
return parameters->physical_device_file_name;
}
enum relabsd_parameters_run_mode relabsd_parameters_get_execution_mode
(
const struct relabsd_parameters parameters [const restrict static 1]
)
{
return parameters->mode;
}
struct relabsd_axis * relabsd_parameters_get_axis
(
const enum relabsd_axis_name i,
struct relabsd_parameters parameters [const restrict static 1]
)
{
return (parameters->axes + i);
}
void relabsd_parameters_set_timeout
(
const int timeout_msec,
struct relabsd_parameters parameters [const restrict static 1]
)
{
if (timeout_msec == 0)
{
parameters->use_timeout = 0;
return;
}
parameters->use_timeout = 1;
(void) memset((void *) &(parameters->timeout), 0, sizeof(struct timeval));
/* FIXME: Not sure that's correct. */
parameters->timeout.tv_sec = (time_t) (timeout_msec / 1000);
parameters->timeout.tv_usec =
(
((suseconds_t) timeout_msec)
* ((suseconds_t) 1000)
);
return;
}
int relabsd_parameters_use_timeout
(
const struct relabsd_parameters parameters [const restrict static 1]
)
{
return parameters->use_timeout;
}
struct timeval relabsd_parameters_get_timeout
(
const struct relabsd_parameters parameters [const restrict static 1]
)
{
return parameters->timeout;
}
int relabsd_parameters_device_name_is_dirty
(
const struct relabsd_parameters parameters [const restrict static 1]
)
{
return parameters->device_name_was_modified;
}
void relabsd_parameters_clean_device_name
(
struct relabsd_parameters parameters [const restrict static 1]
)
{
if (parameters->device_name_was_modified)
{
free((void *) parameters->device_name);
parameters->device_name = (const char *) NULL;
parameters->device_name_was_modified = 0;
}
}
|