fix: rename uuid property to id
add: WIP discovery stuff
This commit is contained in:
parent
074c5c5750
commit
d679d99a92
6 changed files with 23 additions and 67 deletions
28
discovery.c
28
discovery.c
|
@ -15,6 +15,14 @@
|
|||
#include <helper.h>
|
||||
#include <binn.h>
|
||||
|
||||
enum DISCOVERY_MAPPING
|
||||
{
|
||||
DISCOVERY_MAPPING_ID = 0,
|
||||
DISCOVERY_MAPPING_NAME = 1,
|
||||
DISCOVERY_MAPPING_COMMAND_PORT = 2,
|
||||
DISCOVERY_MAPPING_RELAY_COUNT = 3,
|
||||
};
|
||||
|
||||
int
|
||||
discovery_socket_open(uint16_t discovery_port)
|
||||
{
|
||||
|
@ -84,20 +92,12 @@ discovery_handle_discover(int fd, controller *cntrlr)
|
|||
return;
|
||||
}
|
||||
|
||||
binn *obj;
|
||||
binn *map = binn_map();
|
||||
|
||||
// create a new object
|
||||
obj = binn_object();
|
||||
binn_map_set_blob(map, DISCOVERY_MAPPING_ID, &cntrlr->id, sizeof(uuid_t));
|
||||
|
||||
// add values to it
|
||||
binn_object_set_blob(obj, "uuid", &cntrlr->uuid, sizeof(uuid_t));
|
||||
|
||||
// send over the network or save to a file...
|
||||
|
||||
void *payload = binn_ptr(obj);
|
||||
size_t payload_size = binn_size(obj);
|
||||
|
||||
// release the buffer
|
||||
void *payload = binn_ptr(map);
|
||||
size_t payload_size = binn_size(map);
|
||||
|
||||
char discover_answer_port_str[6];
|
||||
sprintf(discover_answer_port_str, "%d", discovery_answer_port);
|
||||
|
@ -108,13 +108,13 @@ discovery_handle_discover(int fd, controller *cntrlr)
|
|||
if((bytes_transferred = send(fd_answer, &payload_size, sizeof(payload_size), 0)) <= 0)
|
||||
{
|
||||
LOG_ERROR("error during sending");
|
||||
binn_free(obj);
|
||||
binn_free(map);
|
||||
return;
|
||||
}
|
||||
if((bytes_transferred = send(fd_answer, payload, payload_size, 0)) <= 0)
|
||||
{
|
||||
LOG_ERROR("error during sending");
|
||||
binn_free(obj);
|
||||
binn_free(map);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
44
display.c
44
display.c
|
@ -1,44 +0,0 @@
|
|||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <wiringPi.h>
|
||||
|
||||
#ifdef WIRING_PI_DEBUG
|
||||
#include "wiring_debug.h"
|
||||
#endif
|
||||
|
||||
#include "display.h"
|
||||
|
||||
#define INPUT_A 22
|
||||
#define INPUT_B 23
|
||||
#define LOAD 24
|
||||
#define CLOCK 25
|
||||
#define PAUSE 1
|
||||
|
||||
#define BOARD_SIZE_X 64
|
||||
#define BOARD_SIZE_Y 40
|
||||
#define BOARD_PIXEL_COUNT BOARD_SIZE_X * BOARD_SIZE_Y
|
||||
|
||||
#define BLOCK_SIZE_X 4
|
||||
#define BLOCK_SIZE_Y 8
|
||||
#define BLOCK_PIXEL_COUNT BLOCK_SIZE_X * BLOCK_SIZE_Y
|
||||
#define BOARD_BLOCK_COUNT 80
|
||||
|
||||
uint32_t display_block_array[BOARD_BLOCK_COUNT];
|
||||
|
||||
void
|
||||
display_setup(void)
|
||||
{
|
||||
wiringPiSetup();
|
||||
|
||||
pinMode(INPUT_A, OUTPUT);
|
||||
digitalWrite(INPUT_A, LOW);
|
||||
|
||||
pinMode(INPUT_B, OUTPUT);
|
||||
digitalWrite(INPUT_B, LOW);
|
||||
|
||||
pinMode(LOAD, OUTPUT);
|
||||
digitalWrite(LOAD, LOW);
|
||||
|
||||
pinMode(CLOCK, OUTPUT);
|
||||
digitalWrite(CLOCK, LOW);
|
||||
}
|
|
@ -16,7 +16,7 @@ typedef struct controller
|
|||
/**
|
||||
* @brief A unique UUID for this controller
|
||||
*/
|
||||
uuid_t uuid;
|
||||
uuid_t id;
|
||||
/**
|
||||
* @brief The name of this controller
|
||||
*
|
||||
|
@ -44,7 +44,7 @@ typedef struct controller
|
|||
*/
|
||||
typedef enum controller_db_key
|
||||
{
|
||||
KEY_META_UUID = 0,
|
||||
KEY_META_ID = 0,
|
||||
KEY_META_NAME = 1,
|
||||
KEY_META_COMMAND_PORT = 2,
|
||||
KEY_META_DISCOVERY_PORT = 3,
|
||||
|
|
|
@ -11,7 +11,7 @@ controller*
|
|||
controller_create(void)
|
||||
{
|
||||
controller *result = malloc(sizeof(*result));
|
||||
uuid_generate(result->uuid);
|
||||
uuid_generate(result->id);
|
||||
|
||||
strcpy(result->name, "new emgauwa device");
|
||||
result->command_port = 0;
|
||||
|
@ -36,7 +36,7 @@ controller_debug(controller *cntrlr)
|
|||
LOG_DEBUG("controller is NULL");
|
||||
}
|
||||
char uuid_str[37];
|
||||
uuid_unparse(cntrlr->uuid, uuid_str);
|
||||
uuid_unparse(cntrlr->id, uuid_str);
|
||||
LOG_DEBUG("(1/4) %s @ %p", uuid_str, cntrlr);
|
||||
LOG_DEBUG("(2/4) name: %s", cntrlr->name);
|
||||
LOG_DEBUG("(3/4) relays: %3d", cntrlr->relay_count);
|
||||
|
|
|
@ -56,8 +56,8 @@ controller_load(MDB_env *mdb_env)
|
|||
|
||||
MDB_val value;
|
||||
|
||||
controller_load_single(mdb_txn, mdb_dbi, KEY_META_UUID, &value);
|
||||
memmove(new_controller->uuid, (uuid_t*)value.mv_data, sizeof(uuid_t));
|
||||
controller_load_single(mdb_txn, mdb_dbi, KEY_META_ID, &value);
|
||||
memmove(new_controller->id, (uuid_t*)value.mv_data, sizeof(uuid_t));
|
||||
|
||||
controller_load_single(mdb_txn, mdb_dbi, KEY_META_NAME, &value);
|
||||
strncpy(new_controller->name, (char*)value.mv_data, CONTROLLER_NAME_LENGTH);
|
||||
|
|
|
@ -48,9 +48,9 @@ controller_save(controller *cntrlr, MDB_env *mdb_env)
|
|||
exit(1);
|
||||
}
|
||||
|
||||
value.mv_size = sizeof(cntrlr->uuid);
|
||||
value.mv_data = cntrlr->uuid;
|
||||
if(controller_save_single(mdb_txn, mdb_dbi, KEY_META_UUID, value))
|
||||
value.mv_size = sizeof(cntrlr->id);
|
||||
value.mv_data = cntrlr->id;
|
||||
if(controller_save_single(mdb_txn, mdb_dbi, KEY_META_ID, value))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue