UseAX10420.h
Go to the documentation of this file.
1 
20 #ifndef _hardware_UseAX10420_h_
21 #define _hardware_UseAX10420_h_
22 
23 #include "AX10420_types.h"
24 #include <sys/types.h>
25 #include <sys/stat.h>
26 #include <fcntl.h>
27 #include <unistd.h>
28 #include <string.h>
29 
36 inline int AX10420_OpenDevice(const char *device_name)
37 {
38  int fd;
39  fd = open(device_name, O_RDWR);
40  if (fd < 0)
41  {
42  ROS_ERROR("error opening the ax10420 device: %s\n",strerror(errno));
43  return -1;
44  }
45 
46  return fd;
47 };
48 
56 inline int AX10420_Init(int fd, tAXGroup group,
57  tAXIOConfigure port_a, tAXIOConfigure port_b,
58  tAXIOConfigure port_c_upper, tAXIOConfigure port_c_lower)
59 {
60  int len;
61  if (fd < 0)
62  {
63  ROS_ERROR("AX10420_Init invalid fd:%x\n",fd);
64  return -1;
65  }
66 
67  AX10420_msg_init init;
68  init.group = group;
69  init.port_a = port_a;
70  init.port_b = port_a;
71  init.port_c_upper = port_c_upper;
72  init.port_c_lower = port_c_lower;
73 
74  AX10420_msg msg;
75  msg.type = tInit;
76  msg.msginit = init;
77 
78  len = write(fd, &msg, sizeof(AX10420_msg));
79 
80  if (len>0)
81  {
82  return 0;
83  }
84  else
85  {
86  ROS_ERROR("AX10420_Init write failed: %s\n",strerror(errno));
87  return -errno;
88  }
89 
90  return -1;
91 }
92 
100 inline int AX10420_GetInput(int fd, tAXGroup group, tAXPort port)
101 {
102  int len;
103  if (fd < 0)
104  {
105  ROS_ERROR("AX10420_GetInput invalid fd:%x\n",fd);
106  return -1;
107  }
108 
109  AX10420_msg_state state;
110  len = read(fd, &state, sizeof(AX10420_msg_state));
111 
112  if (len > 0)
113  {
114  switch (group)
115  {
116  case eG1:
117  switch (port)
118  {
119  case ePA:
120  return state.port1_a;
121  break;
122  case ePB:
123  return state.port1_b;
124  break;
125  case ePC:
126  return state.port1_c;
127  break;
128  default:
129  return -1;
130  break;
131  };
132  break;
133  case eG2:
134  switch (port)
135  {
136  case ePA:
137  return state.port2_a;
138  break;
139  case ePB:
140  return state.port2_b;
141  break;
142  case ePC:
143  return state.port2_c;
144  break;
145  default:
146  return -1;
147  break;
148  };
149  break;
150  default:
151  return -1;
152  break;
153  }
154  }
155  else
156  {
157  ROS_ERROR("AX10420_GetInput read failed: %s\n",strerror(errno));
158  return -errno;
159  }
160 
161  return -1;
162 }
163 
172 inline int AX10420_SetOutput(int fd, tAXGroup group, tAXPort port, unsigned value)
173 {
174  int len;
175  if (fd < 0)
176  {
177  ROS_ERROR("AX10420_SetOutput invalid fd:%x\n",fd);
178  return -1;
179  }
180 
182  set.group = group;
183  set.port = port;
184  set.value = value;
185 
186  AX10420_msg msg;
187  msg.type = tSetOutput;
188  msg.msgsetoutput = set;
189 
190  len = write(fd, &msg, sizeof(AX10420_msg));
191 
192  if (len>0)
193  {
194  return 0;
195  }
196  else
197  {
198  ROS_ERROR("AX10420_SetOutput write failed: %s\n",strerror(errno));
199  return -errno;
200  }
201 
202  return -1;
203 
204 }
205 
206 #endif /* _hardware_UseAX10420_h_ */
AX10420_msg_init msginit
Definition: AX10420_types.h:85
int AX10420_OpenDevice(const char *device_name)
Definition: UseAX10420.h:36
int AX10420_GetInput(int fd, tAXGroup group, tAXPort port)
Definition: UseAX10420.h:100
unsigned tAXIOConfigure
Definition: AX10420_types.h:30
int AX10420_Init(int fd, tAXGroup group, tAXIOConfigure port_a, tAXIOConfigure port_b, tAXIOConfigure port_c_upper, tAXIOConfigure port_c_lower)
Definition: UseAX10420.h:56
unsigned tAXPort
Definition: AX10420_types.h:29
tAXIOConfigure port_c_lower
Definition: AX10420_types.h:51
unsigned tAXGroup
Definition: AX10420_types.h:28
tAXIOConfigure port2_b
Definition: AX10420_types.h:73
int AX10420_SetOutput(int fd, tAXGroup group, tAXPort port, unsigned value)
Definition: UseAX10420.h:172
tAXIOConfigure port_c_upper
Definition: AX10420_types.h:50
tAXIOConfigure port2_a
Definition: AX10420_types.h:72
tAXIOConfigure port1_c
Definition: AX10420_types.h:71
tAXIOConfigure port_b
Definition: AX10420_types.h:49
tAXIOConfigure port_a
Definition: AX10420_types.h:48
tAXIOConfigure port2_c
Definition: AX10420_types.h:74
tAXIOConfigure port1_b
Definition: AX10420_types.h:70
tAXIOConfigure port1_a
Definition: AX10420_types.h:69
#define ROS_ERROR(...)
AX10420_msg_setOutput msgsetoutput
Definition: AX10420_types.h:86
tAXMsgType type
Definition: AX10420_types.h:82


asr_mild_base_driving
Author(s): Aumann Florian, Borella Jocelyn, Dehmani Souheil, Marek Felix, Meißner Pascal, Reckling Reno
autogenerated on Mon Jun 10 2019 12:43:40