Wiicom API Lib
 Tutto Strutture dati File Funzioni Variabili Ridefinizioni di tipo (typedef) Tipi enumerati (enum) Valori del tipo enumerato Definizioni Gruppi
C:/WIICOM-SVN/Sviluppo/Software/library/wiicom_lib/trunk/wiicom_libcommunication.h
Vai alla documentazione di questo file.
1 
19 #ifndef _WIICOM_LIBCOMMUNICATINO_H
20 #define _WIICOM_LIBCOMMUNICATINO_H
21 
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <stdint.h>
25 #include <string.h>
26 #include "wiicom_libutil.h"
27 
28 #define WIICOM_CMD_MAX_BUFFER_DATA 65536
33 typedef enum
34 {
42 
46 typedef enum
47 {
48  // network configuration data
70  // socket configuration data
79  // USDB data
89  // UART config
95  // socket configuration data
186 
190 typedef struct
191 {
192  char head[2];
193  uint8_t msgCnt[2];
194  uint8_t dest;
195  uint8_t dataLength[2];
196  uint8_t action[2];
198  uint8_t crc[2];
199  char term[2];
201  uint8_t step_elab;
202  uint8_t buffer[WIICOM_CMD_MAX_BUFFER_DATA]; // buffer of data to be processed
203  uint16_t idx_buffer; // buffer index of the data that I've processed
204  uint16_t idx_stop_buffer; // indicating how far into the buffer is filled with data
205  uint16_t idx_data; // index of how much data I copied from the buffer to the given structure (which contains the actual data of the command)
207 
211 typedef struct
212 {
213  uint8_t bytes_size;
214  uint8_t max_data_count;
215 } t_dtype_size;
216 
217 
226 extern const t_dtype_size CMD_DTYPE_SIZE[];
232 typedef enum
233 {
238 
242 typedef enum
243 {
253 
257 typedef struct
258 {
259  uint8_t nwtype;
260  uint8_t macaddress[6];
261  uint8_t ipaddress[4];
262  uint8_t netmask[4];
263  uint8_t gateway[4];
264  char ssid[33];
265  uint8_t security_type;
266  char psk[33];
267  uint8_t channel;
272 
276 typedef struct
277 {
278  uint32_t baudrate;
279  uint8_t stopbits;
280  uint8_t parity;
282 
286 typedef struct
287 {
288  char version[33];
289  char type;
291  char alias[33];
293 
294 
298 #define CANBUS_OUTPUT_XML_SIGNALS_FILTER 0
299 #define CANBUS_OUTPUT_XML_MESSAGES_FILTER 1
300 #define CANBUS_OUTPUT_XML_ALL 2
301 #define CANBUS_OUTPUT_CSV_SIGNALS_FILTER 3
302 #define CANBUS_OUTPUT_CSV_MESSAGES_FILTER 4
303 #define CANBUS_OUTPUT_CSV_ALL 5
304 #define CANBUS_OUTPUT_DISABLED 8
305 
309  #define CANBUS_INPUT_CSV_ALL 0
310  #define CANBUS_INPUT_CSV_MESSAGES_FILTER 1
311  #define CANBUS_INPUT_DISABLED 2
312 
313 typedef enum
314 {
319 
320 
328 void wiicom_comm_reset(int8_t b_reset_all,t_wiicom_comm_msg *cmd_msg);
329 
336 void wiicom_comm_print(FILE *fp,t_wiicom_comm_msg *cmd_msg);
337 
347 void wiicom_comm_elab(uint8_t *rxData,uint32_t num_rxData,t_wiicom_comm_msg *cmd_msg,
348  void (*callback)(t_wiicom_comm_msg*), void (*callback_error)(t_wiicom_comm_msg*));
349 
358 void wiicom_comm_createCommand(t_wiicom_comm_msg *cmd_msg,uint16_t par_msg_cnt,
359  uint8_t par_destination,uint16_t par_action);
360 
370 uint8_t wiicom_comm_addToDataBlock(t_wiicom_comm_msg *cmd_msg,uint16_t par_type,
371  uint8_t par_data_cnt,uint8_t par_data_idx,uint8_t *par_data);
372 
379 
389 uint8_t wiicom_comm_getDataBlock(t_wiicom_comm_msg *cmd_msg,uint16_t par_type,
390  uint8_t par_data_cnt,uint8_t par_data_idx,uint8_t *par_data);
391 
399 void wiicom_comm_cmd_msgTOrow(t_wiicom_comm_msg *cmd_msg,uint8_t* rowData,uint16_t *rowData_length);
400 
407 
415 uint8_t wiicom_comm_sendCommand(t_wiicom_comm_msg *cmd_msg,const char *ip,uint16_t port);
416 
423 uint8_t wiicom_comm_sendCommand_socket(t_wiicom_comm_msg *cmd_msg,int socketfd);
424 
432 uint8_t wiicom_comm_get_compact_info(const char *ip,uint16_t port,t_wiicom_comm_compact_info *info_struct);
433 
441 uint8_t wiicom_comm_set_compact_alias(const char *ip,uint16_t port,char *alias);
442 
450 uint8_t wiicom_comm_get_compact_uart(const char *ip,uint16_t port,t_wiicom_comm_compact_uart *uart_struct);
458 uint8_t wiicom_comm_set_compact_uart(const char *ip,uint16_t port,t_wiicom_comm_compact_uart *uart_struct);
459 
467 uint8_t wiicom_comm_get_compact_net(const char *ip,uint16_t port,t_wiicom_comm_compact_net *net_struct);
476 uint8_t wiicom_comm_set_compact_net(const char *ip,uint16_t port,t_wiicom_comm_compact_net *net_struct);
477 
478 
479 
480 
481 
482 
483 //NUOVE FUNZIONI DA COMMENTARE
484 
485 uint8_t wiicom_comm_get_compact_dio(const char *ip,uint16_t port,uint8_t num_dio,uint8_t *b_enabled,uint8_t *type);
486 uint8_t wiicom_comm_set_compact_dio(const char *ip,uint16_t port,uint8_t num_dio,uint8_t b_enabled,uint8_t type);
487 uint8_t wiicom_comm_get_compact_canbus(const char *ip,uint16_t port,uint32_t *speed,uint8_t *output_type,uint8_t *input_type);
488 uint8_t wiicom_comm_set_compact_canbus(const char *ip,uint16_t port,uint32_t speed,uint8_t output_type,uint8_t input_type);
489 uint8_t wiicom_comm_sendMsgCanbus(const char *ip,uint16_t port,uint32_t idmsg,uint8_t b_extendedMsg,uint8_t dlc, uint8_t *data);
490 uint8_t wiicom_comm_sendMsgCanbus_socket(int socketfd,uint32_t idmsg,uint8_t b_extendedMsg,uint8_t dlc, uint8_t *data);
491 uint8_t wiicom_comm_parseMsgCanbus(const char *recivData,uint16_t recivedDataLength,uint32_t *idmsg,uint8_t *b_extendedMsg,uint8_t *dlc, uint8_t *data);
492 
493 
494 
495 
496 
497 #endif
uint8_t wiicom_comm_addToDataBlock(t_wiicom_comm_msg *cmd_msg, uint16_t par_type, uint8_t par_data_cnt, uint8_t par_data_idx, uint8_t *par_data)
Function that adds a datablock to a given communication data structure.
Definition: wiicom_libcommunication.c:440
Definition: wiicom_libcommunication.h:234
Definition: wiicom_libcommunication.h:73
Definition: wiicom_libcommunication.h:64
Definition: wiicom_libcommunication.h:87
Definition: wiicom_libcommunication.h:58
Definition: wiicom_libcommunication.h:85
char type
Definition: wiicom_libcommunication.h:289
Definition: wiicom_libcommunication.h:63
uint8_t wiicom_comm_get_compact_net(const char *ip, uint16_t port, t_wiicom_comm_compact_net *net_struct)
Function that read Compact module network configuration.
Definition: wiicom_libcommunication.c:995
uint8_t max_data_count
Definition: wiicom_libcommunication.h:214
Definition: wiicom_libcommunication.h:251
uint8_t wiicom_comm_sendMsgCanbus(const char *ip, uint16_t port, uint32_t idmsg, uint8_t b_extendedMsg, uint8_t dlc, uint8_t *data)
Definition: wiicom_libcommunication.c:1590
Definition: wiicom_libcommunication.h:39
uint8_t dest
Definition: wiicom_libcommunication.h:194
uint8_t wiicom_comm_sendMsgCanbus_socket(int socketfd, uint32_t idmsg, uint8_t b_extendedMsg, uint8_t dlc, uint8_t *data)
Definition: wiicom_libcommunication.c:1656
Definition: wiicom_libcommunication.h:84
uint8_t wiicom_comm_sendCommand_socket(t_wiicom_comm_msg *cmd_msg, int socketfd)
Function that sends a command to a Compact module on pre-open socket and, if provided, returns the response.
Definition: wiicom_libcommunication.c:669
uint32_t speed
Definition: wiicom_libcommunication.c:143
Definition: wiicom_libcommunication.h:36
Definition: wiicom_libcommunication.h:248
Definition: wiicom_libcommunication.h:56
t_wiicom_cmd_data_type
Types of data that can be read or can be sent to your Compact.
Definition: wiicom_libcommunication.h:46
Definition: wiicom_libcommunication.h:57
Definition: wiicom_libcommunication.h:176
Definition: wiicom_libcommunication.h:117
Definition: wiicom_libcommunication.h:96
Definition: wiicom_libcommunication.h:37
Command/message structure type.
Definition: wiicom_libcommunication.h:190
Definition: wiicom_libcommunication.h:114
Definition: wiicom_libcommunication.h:35
Definition: wiicom_libcommunication.h:74
Definition: wiicom_libcommunication.h:65
uint8_t wiicom_comm_getDataBlock(t_wiicom_comm_msg *cmd_msg, uint16_t par_type, uint8_t par_data_cnt, uint8_t par_data_idx, uint8_t *par_data)
Function that extracts a datablock from communication data structure.
Definition: wiicom_libcommunication.c:506
Definition: wiicom_libcommunication.h:129
Definition: wiicom_libcommunication.h:164
uint16_t idx_stop_buffer
Definition: wiicom_libcommunication.h:204
uint8_t channel
Definition: wiicom_libcommunication.h:267
Definition: wiicom_libcommunication.h:55
Definition: wiicom_libcommunication.h:53
uint16_t internal_buffer_size
Definition: wiicom_libcommunication.h:290
void wiicom_comm_closeCommand(t_wiicom_comm_msg *cmd_msg)
Function which finalizes the communication data structure, the command is ready to be sent to your Co...
Definition: wiicom_libcommunication.c:475
uint8_t bytes_size
Definition: wiicom_libcommunication.h:213
Definition: wiicom_libcommunication.h:54
uint8_t parity
Definition: wiicom_libcommunication.h:280
Definition: wiicom_libcommunication.h:83
Definition: wiicom_libcommunication.h:250
Definition: wiicom_libcommunication.h:180
uint8_t stopbits
Definition: wiicom_libcommunication.h:279
Definition: wiicom_libcommunication.h:93
Definition: wiicom_libcommunication.h:316
uint8_t wiicom_comm_set_compact_alias(const char *ip, uint16_t port, char *alias)
Function that set Compact module alias.
Definition: wiicom_libcommunication.c:788
Definition: wiicom_libcommunication.h:160
uint8_t wiicom_comm_get_compact_info(const char *ip, uint16_t port, t_wiicom_comm_compact_info *info_struct)
Function that read Compact module information.
Definition: wiicom_libcommunication.c:743
Definition: wiicom_libcommunication.h:121
Definition: wiicom_libcommunication.h:75
t_compact_net_rf_power rf_power_level
Definition: wiicom_libcommunication.h:268
Definition: wiicom_libcommunication.h:82
uint8_t wiicom_comm_get_compact_canbus(const char *ip, uint16_t port, uint32_t *speed, uint8_t *output_type, uint8_t *input_type)
Definition: wiicom_libcommunication.c:1462
Definition: wiicom_libcommunication.h:60
uint8_t nwtype
Definition: wiicom_libcommunication.h:259
uint8_t step_elab
Definition: wiicom_libcommunication.h:201
Definition: wiicom_libcommunication.h:147
Definition: wiicom_libcommunication.h:165
uint8_t wiicom_comm_set_compact_net(const char *ip, uint16_t port, t_wiicom_comm_compact_net *net_struct)
Function that set Compact module network configuration.
Definition: wiicom_libcommunication.c:1185
Definition: wiicom_libcommunication.h:72
t_wiicom_cmd_canbus_input
Definition: wiicom_libcommunication.h:313
Definition: wiicom_libcommunication.h:68
Definition: wiicom_libcommunication.h:90
Definition: wiicom_libcommunication.h:66
Definition: wiicom_libcommunication.h:249
Definition: wiicom_libcommunication.h:236
Definition: wiicom_libcommunication.h:128
t_compact_net_datarate
Types of wireless data rate speed.
Definition: wiicom_libcommunication.h:242
Definition: wiicom_libcommunication.h:86
uint8_t wiicom_comm_set_compact_canbus(const char *ip, uint16_t port, uint32_t speed, uint8_t output_type, uint8_t input_type)
Definition: wiicom_libcommunication.c:1524
Definition: wiicom_libcommunication.h:38
Definition: wiicom_libcommunication.h:317
uint16_t idx_buffer
Definition: wiicom_libcommunication.h:203
Definition: wiicom_libcommunication.h:40
Definition: wiicom_libcommunication.h:247
void wiicom_comm_cmd_msgTOrow(t_wiicom_comm_msg *cmd_msg, uint8_t *rowData, uint16_t *rowData_length)
Function that converts the content of a communication data structure in a sequence of bytes...
Definition: wiicom_libcommunication.c:556
uint8_t wiicom_comm_set_compact_dio(const char *ip, uint16_t port, uint8_t num_dio, uint8_t b_enabled, uint8_t type)
Definition: wiicom_libcommunication.c:1387
Definition: wiicom_libcommunication.h:141
Definition: wiicom_libcommunication.h:245
Definition: wiicom_libcommunication.h:235
Definition: wiicom_libcommunication.h:49
Struct definition for the Compact module UART configuration.
Definition: wiicom_libcommunication.h:276
uint8_t wiicom_comm_set_compact_uart(const char *ip, uint16_t port, t_wiicom_comm_compact_uart *uart_struct)
Function that set Compact module UART configuration.
Definition: wiicom_libcommunication.c:919
Struct definition for the Compact module information data.
Definition: wiicom_libcommunication.h:286
uint8_t wiicom_comm_get_compact_uart(const char *ip, uint16_t port, t_wiicom_comm_compact_uart *uart_struct)
Function that read Compact module UART configuration.
Definition: wiicom_libcommunication.c:835
Struct definition for CMD_DTYPE_SIZE.
Definition: wiicom_libcommunication.h:211
t_compact_net_rf_power
Types of RF power level.
Definition: wiicom_libcommunication.h:232
Definition: wiicom_libcommunication.h:246
t_wiicom_comm_action
Types of actions that can be requested by a command to the Compact module.
Definition: wiicom_libcommunication.h:33
uint8_t security_type
Definition: wiicom_libcommunication.h:265
Definition: wiicom_libcommunication.h:62
Definition: wiicom_libcommunication.h:51
uint8_t wiicom_comm_sendCommand(t_wiicom_comm_msg *cmd_msg, const char *ip, uint16_t port)
Function that sends a command to a Compact module and, if provided, returns the response.
Definition: wiicom_libcommunication.c:579
Definition: wiicom_libcommunication.h:50
Definition: wiicom_libcommunication.h:156
#define WIICOM_CMD_MAX_BUFFER_DATA
Definition: wiicom_libcommunication.h:28
Definition: wiicom_libcommunication.h:92
Definition: wiicom_libcommunication.h:315
Definition: wiicom_libcommunication.h:244
void wiicom_comm_print(FILE *fp, t_wiicom_comm_msg *cmd_msg)
Function that prints the contents of the communication data structure.
Definition: wiicom_libcommunication.c:175
Definition: wiicom_libcommunication.h:91
Definition: wiicom_libcommunication.h:130
Definition: wiicom_libcommunication.h:52
const t_dtype_size CMD_DTYPE_SIZE[]
Array containing the length of each data type t_wiicom_cmd_data_type and the max data count The lengt...
Definition: wiicom_libcommunication.c:55
t_compact_net_datarate data_rate
Definition: wiicom_libcommunication.h:269
uint16_t idx_data
Definition: wiicom_libcommunication.h:205
Definition: wiicom_libcommunication.h:59
void wiicom_comm_reset(int8_t b_reset_all, t_wiicom_comm_msg *cmd_msg)
Function that cleans up the data communication structure.
Definition: wiicom_libcommunication.c:157
Definition: wiicom_libcommunication.h:61
void wiicom_comm_createCommand(t_wiicom_comm_msg *cmd_msg, uint16_t par_msg_cnt, uint8_t par_destination, uint16_t par_action)
Function that initializes the communication data structure for send a new command to a Compact module...
Definition: wiicom_libcommunication.c:412
Wiicom Virtucal com port library.
Definition: wiicom_libcommunication.h:108
uint8_t wiicom_comm_recivIScomplete(t_wiicom_comm_msg *cmd_msg)
function that checks if a command/message has been received completely
Definition: wiicom_libcommunication.c:572
Definition: wiicom_libcommunication.h:183
Definition: wiicom_libcommunication.h:67
Definition: wiicom_libcommunication.h:71
uint8_t wiicom_comm_parseMsgCanbus(const char *recivData, uint16_t recivedDataLength, uint32_t *idmsg, uint8_t *b_extendedMsg, uint8_t *dlc, uint8_t *data)
Definition: wiicom_libcommunication.c:1696
Definition: wiicom_libcommunication.h:80
uint32_t baudrate
Definition: wiicom_libcommunication.h:278
Definition: wiicom_libcommunication.h:81
Definition: wiicom_libcommunication.h:169
Struct definition for the Compact module network configuration.
Definition: wiicom_libcommunication.h:257
void wiicom_comm_elab(uint8_t *rxData, uint32_t num_rxData, t_wiicom_comm_msg *cmd_msg, void(*callback)(t_wiicom_comm_msg *), void(*callback_error)(t_wiicom_comm_msg *))
Function that extracts datas from a buffer messages/commands sent by your Compact module...
Definition: wiicom_libcommunication.c:208
uint8_t wiicom_comm_get_compact_dio(const char *ip, uint16_t port, uint8_t num_dio, uint8_t *b_enabled, uint8_t *type)
Definition: wiicom_libcommunication.c:1315