chore: First tests
This commit is contained in:
55
app/src/tasks/sensor_task.c
Normal file
55
app/src/tasks/sensor_task.c
Normal file
@@ -0,0 +1,55 @@
|
||||
#include "sensor_task.h"
|
||||
|
||||
#include "stm32f4xx_hal.h"
|
||||
#include "stm32f4xx_hal_gpio.h"
|
||||
#include "gpio.h"
|
||||
|
||||
#include "incphub/incphub_client.h"
|
||||
|
||||
|
||||
|
||||
StackType_t _sensor_task_stack[SENSOR_TASK_STACK_DEPTH];
|
||||
StaticTask_t _sensor_task;
|
||||
|
||||
|
||||
|
||||
void sensor_task_main(void *params)
|
||||
{
|
||||
(void)params;
|
||||
|
||||
uint8_t *buffer;
|
||||
size_t length;
|
||||
incphub_addr_t source;
|
||||
|
||||
// Init incphub client
|
||||
incphub_cli_t *cli;
|
||||
incphub_init_client(&cli, 69);
|
||||
|
||||
while (1)
|
||||
{
|
||||
// Get a message (assume it is a uint32_t)
|
||||
incphub_await_msg(cli, &buffer, &length, &source, portMAX_DELAY);
|
||||
|
||||
// Ignore messages of different size
|
||||
if (length != sizeof(uint32_t))
|
||||
continue;
|
||||
|
||||
// Read incoming message
|
||||
uint32_t num = *(uint32_t*)buffer;
|
||||
|
||||
// Release buffer once read
|
||||
incphub_release_msg_buffer(cli, buffer);
|
||||
|
||||
// Process message
|
||||
num++;
|
||||
|
||||
// Request buffer for reply
|
||||
incphub_get_msg_buffer(cli, &buffer, sizeof(uint32_t));
|
||||
|
||||
// Prepare reply message
|
||||
*(uint32_t*)buffer = num;
|
||||
|
||||
// Send reply
|
||||
incphub_send_msg(cli, buffer, sizeof(uint32_t), source, portMAX_DELAY);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user