blob: c73e35d6fe371214310e046649c451eed45c9145 [file] [log] [blame]
/*
* Copyright (c) 2022 Rodrigo Peixoto <rodrigopex@gmail.com>
* SPDX-License-Identifier: Apache-2.0
*/
#include "messages.h"
#include <zephyr/logging/log.h>
#include <zephyr/zbus/zbus.h>
LOG_MODULE_DECLARE(zbus, CONFIG_ZBUS_LOG_LEVEL);
ZBUS_CHAN_DEFINE(raw_data_chan, struct sensor_msg, NULL, NULL, ZBUS_OBSERVERS_EMPTY,
ZBUS_MSG_INIT(.x = 0, .y = 0, .z = 0));
ZBUS_CHAN_DEFINE(state_chan, bool, NULL, NULL, ZBUS_OBSERVERS(state_change_sub), false);
static void producer_thread(void)
{
struct sensor_msg acc = {0};
uint32_t count = 0;
while (1) {
if (count == 5) {
bool change_state = true;
zbus_chan_pub(&state_chan, &change_state, K_MSEC(200));
count = 0;
}
++acc.x;
++acc.y;
++acc.z;
LOG_INF(" >-- Raw data fetched");
zbus_chan_pub(&raw_data_chan, &acc, K_MSEC(200));
k_msleep(500);
++count;
}
}
K_THREAD_DEFINE(produce_thread_id, 512, producer_thread, NULL, NULL, NULL, 3, 0, 0);