@@ -60,7 +60,7 @@ typedef struct {
60
60
} MDDSerialPort ;
61
61
62
62
void MDD_serialPortDestructor (void * p_udp );
63
- int MDD_serialPortReceivingThread (void * p_serial );
63
+ void * MDD_serialPortReceivingThread (void * p_serial );
64
64
65
65
66
66
int MDD_serialPortGetReceivedBytes (void * p_serial ) {
@@ -78,8 +78,9 @@ int MDD_serialPortGetReceivedBytes(void * p_serial) {
78
78
void MDD_serialPortSetBlocking (int fd , int should_block ) {
79
79
80
80
struct termios ser ;
81
+ int ret ;
81
82
memset (& ser , 0 , sizeof (ser ));
82
- int ret = tcgetattr (fd , & ser );
83
+ ret = tcgetattr (fd , & ser );
83
84
if (ret != 0 ) {
84
85
ModelicaFormatError ("MDDSerialPort.h: Error %d from tcgetattr\n" ,ret );
85
86
return ;
@@ -106,43 +107,44 @@ void MDD_serialPortSetBlocking (int fd, int should_block) {
106
107
void MDD_serialPortSetInterfaceAttributes (int fd , int speed , int parity ) {
107
108
108
109
struct termios ser ;
110
+ int ret ;
109
111
memset (& ser , 0 , sizeof (ser ));
110
- int ret = tcgetattr (fd , & ser );
112
+ ret = tcgetattr (fd , & ser );
111
113
if (ret != 0 ) {
112
114
ModelicaFormatError ("MDDSerialPort.h: Error %d from tcgetattr\n" ,ret );
113
115
return ;
114
116
}
115
117
116
- cfsetospeed (& ser , speed ); // set output speed
117
- cfsetispeed (& ser , speed ); // set input speed
118
+ cfsetospeed (& ser , speed ); /* set output speed */
119
+ cfsetispeed (& ser , speed ); /* set input speed */
118
120
119
- ser .c_cflag = ( ser .c_cflag & ~CSIZE ) | CS8 ; // 8 bit characters shall be used
120
- ser .c_iflag &= ~IGNBRK ; // ignore break signal
121
- // ser.c_iflag |= IGNBRK; // ignore break signal
122
- ser .c_lflag = 0 ; // no signaling characters, no echo
123
- ser .c_oflag = 0 ; // no remapping, no delays
124
- ser .c_cc [VMIN ] = 0 ; // read does not block
125
- ser .c_cc [VTIME ] = 5 ; // 0.5 second read timeout
126
- ser .c_iflag &= ~(IXON | IXOFF | IXANY ); // shut off xon/xoff control
127
- ser .c_cflag |= (CLOCAL | CREAD ); // ignore modem controls, enable reading
121
+ ser .c_cflag = ( ser .c_cflag & ~CSIZE ) | CS8 ; /* 8 bit characters shall be used */
122
+ ser .c_iflag &= ~IGNBRK ; /* ignore break signal */
123
+ /* ser.c_iflag |= IGNBRK; // ignore break signal*/
124
+ ser .c_lflag = 0 ; /* no signaling characters, no echo */
125
+ ser .c_oflag = 0 ; /* no remapping, no delays */
126
+ ser .c_cc [VMIN ] = 0 ; /* read does not block */
127
+ ser .c_cc [VTIME ] = 5 ; /* 0.5 second read timeout */
128
+ ser .c_iflag &= ~(IXON | IXOFF | IXANY ); /* shut off xon/xoff control */
129
+ ser .c_cflag |= (CLOCAL | CREAD ); /* ignore modem controls, enable reading*/
128
130
129
131
switch (parity ) {
130
132
case 1 :
131
133
/* even parity */
132
- ser .c_cflag |= PARENB ; // enable parity
133
- ser .c_cflag &= ~PARODD ; // set even parity
134
+ ser .c_cflag |= PARENB ; /* enable parity */
135
+ ser .c_cflag &= ~PARODD ; /* set even parity */
134
136
ModelicaFormatMessage ("Set even Parity of serial port handle: %d\n" ,fd );
135
137
break ;
136
138
case 2 :
137
139
/* odd parity */
138
- ser .c_cflag |= PARENB ; // enable parity
139
- ser .c_cflag |= PARODD ; // set even parity
140
+ ser .c_cflag |= PARENB ; /* enable parity */
141
+ ser .c_cflag |= PARODD ; /* set even parity */
140
142
ModelicaFormatMessage ("Set odd Parity of serial port handle: %d\n" ,fd );
141
143
break ;
142
144
default :
143
145
/* no parity */
144
- ser .c_cflag &= ~(PARENB | PARODD ); // switch off any parity
145
- ser .c_cflag |= parity ; // set parity
146
+ ser .c_cflag &= ~(PARENB | PARODD ); /* switch off any parity */
147
+ ser .c_cflag |= parity ; /* set parity */
146
148
ModelicaFormatMessage ("Set no Parity of serial port handle: %d\n" ,fd );
147
149
break ;
148
150
}
@@ -167,7 +169,7 @@ void MDD_serialPortSetInterfaceAttributes (int fd, int speed, int parity) {
167
169
void * MDD_serialPortConstructor (const char * deviceName , int bufferSize , int parity , int receiver , int baud ) {
168
170
/* Allocation of data structure memory */
169
171
MDDSerialPort * serial = (MDDSerialPort * ) malloc (sizeof (MDDSerialPort ));
170
- int i , ret ;
172
+ int ret ;
171
173
speed_t speed ;
172
174
serial -> messageLength = bufferSize ;
173
175
serial -> runReceive = 0 ;
@@ -226,7 +228,7 @@ void * MDD_serialPortConstructor(const char * deviceName, int bufferSize, int pa
226
228
if (receiver ) {
227
229
/* Start dedicated receiver thread */
228
230
serial -> runReceive = 1 ;
229
- ret = pthread_create (& serial -> thread , 0 , ( void * ) MDD_serialPortReceivingThread , serial );
231
+ ret = pthread_create (& serial -> thread , 0 , MDD_serialPortReceivingThread , serial );
230
232
if (ret ) {
231
233
ModelicaFormatError ("MDDSerialPort.h: pthread (MDD_serialPortReceivingThread) failed\n" );
232
234
}
@@ -239,7 +241,7 @@ void * MDD_serialPortConstructor(const char * deviceName, int bufferSize, int pa
239
241
*
240
242
* @param p_udp pointer address to the udp socket data structure
241
243
*/
242
- int MDD_serialPortReceivingThread (void * p_serial ) {
244
+ void * MDD_serialPortReceivingThread (void * p_serial ) {
243
245
MDDSerialPort * serial = (MDDSerialPort * ) p_serial ;
244
246
245
247
struct pollfd serial_poll ;
@@ -285,7 +287,7 @@ int MDD_serialPortReceivingThread(void * p_serial) {
285
287
ModelicaFormatError ("MDDSerialPort.h: Poll returned %d. That should not happen.\n" , ret );
286
288
}
287
289
}
288
- return 0 ;
290
+ return NULL ;
289
291
}
290
292
291
293
@@ -311,12 +313,11 @@ const char * MDD_serialPortRead(void * p_serial) {
311
313
* @param data data to be sent
312
314
* @param dataSize size of data
313
315
*/
314
- void MDD_serialPortSend (void * p_serial , const char * data , int * dataSize ) {
316
+ void MDD_serialPortSend (void * p_serial , const char * data , int dataSize ) {
315
317
316
318
MDDSerialPort * serial = (MDDSerialPort * ) p_serial ;
317
319
318
- int ret ;
319
- ret = write (serial -> fd , data , dataSize ); // write to serial port
320
+ int ret = write (serial -> fd , data , dataSize ); /* write to serial port */
320
321
if (ret < dataSize ) {
321
322
MDD_serialPortDestructor ((void * ) serial );
322
323
ModelicaFormatError ("MDDSerialPort.h: Expected to send: %d bytes, but was: %d\n"
0 commit comments