43 lines
839 B
C
43 lines
839 B
C
#pragma once
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
enum nsl_message_type {
|
|
NSL_MESSAGE_CONTROL = 1,
|
|
NSL_MESSAGE_TRANSFER,
|
|
};
|
|
|
|
enum nsl_control_message_cmd {
|
|
NSL_CONTROL_MESSAGE_RESET = 0x2,
|
|
NSL_CONTROL_MESSAGE_LED_ON = 0x4,
|
|
NSL_CONTROL_MESSAGE_LED_OFF = 0x8,
|
|
NSL_CONTROL_MESSAGE_SET_MODE = 0x7,
|
|
};
|
|
|
|
struct nsl_control_message {
|
|
enum nsl_control_message_cmd command;
|
|
uint8_t *buf;
|
|
size_t len;
|
|
};
|
|
|
|
struct nsl_transfer_message {
|
|
uint8_t *buf;
|
|
size_t len;
|
|
};
|
|
|
|
struct nsl_message {
|
|
enum nsl_message_type type;
|
|
union {
|
|
struct nsl_control_message ctrl;
|
|
struct nsl_transfer_message xfer;
|
|
} contents;
|
|
};
|
|
|
|
struct nsl_response {
|
|
uint8_t *buf;
|
|
size_t len;
|
|
};
|
|
|
|
|
|
int nsl_message_process(void *arg, const struct nsl_message *msg, struct nsl_response *resp);
|