35 lines
728 B
C
35 lines
728 B
C
/*
|
|
* AUTHOR: Alexander Popov <iiiypuk {at} fastmail.fm>
|
|
* DESC: ...
|
|
*/
|
|
|
|
#include "device.h"
|
|
|
|
json_t *get_serial_ports() {
|
|
struct sp_port **port_list;
|
|
enum sp_return result = sp_list_ports(&port_list);
|
|
|
|
json_t *ports_data = NULL;
|
|
json_t *ports_array = NULL;
|
|
|
|
ports_array = json_array();
|
|
|
|
if (result == SP_OK) {
|
|
/* Get the name of the port. */
|
|
int i;
|
|
for (i = 0; port_list[i] != NULL; i++) {
|
|
struct sp_port *port = port_list[i];
|
|
char *port_name = sp_get_port_name(port);
|
|
|
|
json_array_append(ports_array, json_string(port_name));
|
|
}
|
|
|
|
sp_free_port_list(port_list);
|
|
}
|
|
|
|
ports_data = json_object();
|
|
json_object_set_new(ports_data, "ports", ports_array);
|
|
|
|
return ports_data;
|
|
}
|