From c9e0a1671f02447004d0a7ce9cbbd71ed31738eb Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Mon, 2 Dec 2024 15:44:11 -0800 Subject: [PATCH 01/10] [Thread tutorial] Update sensor checkpoint 1 - remove IPC and print to console. --- .../01_sensor_ipc/Makefile | 0 .../01_sensor_final/01_sensor_ipc/main.c | 22 +++++++++++++ .../Makefile | 0 .../main.c | 0 .../thread_network/01_sensor_ipc/main.c | 33 ------------------- 5 files changed, 22 insertions(+), 33 deletions(-) rename examples/tutorials/thread_network/{ => 01_sensor_final}/01_sensor_ipc/Makefile (100%) create mode 100644 examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/main.c rename examples/tutorials/thread_network/{02_sensor_final => 01_sensor_final}/Makefile (100%) rename examples/tutorials/thread_network/{02_sensor_final => 01_sensor_final}/main.c (100%) delete mode 100644 examples/tutorials/thread_network/01_sensor_ipc/main.c diff --git a/examples/tutorials/thread_network/01_sensor_ipc/Makefile b/examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/Makefile similarity index 100% rename from examples/tutorials/thread_network/01_sensor_ipc/Makefile rename to examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/Makefile diff --git a/examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/main.c b/examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/main.c new file mode 100644 index 000000000..f2aec0f7e --- /dev/null +++ b/examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/main.c @@ -0,0 +1,22 @@ +#include + +#include +#include +#include +#include + +static int current_temperature = 0; + +int main(void) { + + // We measure the temperature in the main loop and + //print this value to the console. + while (1) { + // Measure temperature. + libtocksync_temperature_read(¤t_temperature); + printf("Current temperature: %d\r\n", current_temperature); + + // Delay 1000 ms (1 second). + libtocksync_alarm_delay_ms(1000); + } +} diff --git a/examples/tutorials/thread_network/02_sensor_final/Makefile b/examples/tutorials/thread_network/01_sensor_final/Makefile similarity index 100% rename from examples/tutorials/thread_network/02_sensor_final/Makefile rename to examples/tutorials/thread_network/01_sensor_final/Makefile diff --git a/examples/tutorials/thread_network/02_sensor_final/main.c b/examples/tutorials/thread_network/01_sensor_final/main.c similarity index 100% rename from examples/tutorials/thread_network/02_sensor_final/main.c rename to examples/tutorials/thread_network/01_sensor_final/main.c diff --git a/examples/tutorials/thread_network/01_sensor_ipc/main.c b/examples/tutorials/thread_network/01_sensor_ipc/main.c deleted file mode 100644 index 20acf7871..000000000 --- a/examples/tutorials/thread_network/01_sensor_ipc/main.c +++ /dev/null @@ -1,33 +0,0 @@ -#include - -#include -#include -#include -#include - -// Global variable storing the current temperature. This is written to in the -// main loop, and read from in the IPC handler. Because the app is single -// threaded and has no yield point when writing the value, we do not need to -// worry about synchronization -- reads never happen during a write. -static int current_temperature = 0; - -// static void sensor_ipc_callback(int pid, int len, int buf, -// __attribute__((unused)) void *ud) -// { -// } - -int main(void) { - // Measure the temperature once before registering ourselves as an IPC - // service. This ensures that we always return a correct (but potentially - // stale) temperature value. - libtocksync_temperature_read(¤t_temperature); - - // We measure the temperature in the main loop and simply provide the latest - // reading in an IPC. This means that the control app does not have to wait - // for the temperature read system call to complete. - while (1) { - libtocksync_temperature_read(¤t_temperature); - // printf("Current temperature: %d\r\n", current_temperature); - libtocksync_alarm_delay_ms(1000); - } -} From f37de8631e947215454334da76501059b90f7877 Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Mon, 2 Dec 2024 16:10:22 -0800 Subject: [PATCH 02/10] [Thread Tutorial] Add Openthread starter code --- .../{06_openthread => 02_openthread}/Makefile | 0 .../thread_network/02_openthread/main.c | 155 +++++++++++ .../thread_network/06_openthread/main.c | 247 ------------------ 3 files changed, 155 insertions(+), 247 deletions(-) rename examples/tutorials/thread_network/{06_openthread => 02_openthread}/Makefile (100%) create mode 100644 examples/tutorials/thread_network/02_openthread/main.c delete mode 100644 examples/tutorials/thread_network/06_openthread/main.c diff --git a/examples/tutorials/thread_network/06_openthread/Makefile b/examples/tutorials/thread_network/02_openthread/Makefile similarity index 100% rename from examples/tutorials/thread_network/06_openthread/Makefile rename to examples/tutorials/thread_network/02_openthread/Makefile diff --git a/examples/tutorials/thread_network/02_openthread/main.c b/examples/tutorials/thread_network/02_openthread/main.c new file mode 100644 index 000000000..4569da513 --- /dev/null +++ b/examples/tutorials/thread_network/02_openthread/main.c @@ -0,0 +1,155 @@ +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#define UDP_PORT 1212 +static const char UDP_ROUTER_MULTICAST[] = "ff02::2"; + +// helper utility demonstrating network config setup +static void setNetworkConfiguration(otInstance* aInstance); + +// callback for Thread state change events +static void stateChangeCallback(uint32_t flags, void* context); + +// helper utility to print ip address +static void print_ip_addr(otInstance* instance); + +int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) { + // Initialize OpenThread instance. + otSysInit(argc, argv); + otInstance* instance; + instance = otInstanceInitSingle(); + assert(instance); + + // set child timeout to 60 seconds. + otThreadSetChildTimeout(instance, 60); + + // Set callback to be notified when thread state changes. + otSetStateChangedCallback(instance, stateChangeCallback, instance); + + /////////////////////////////////////////////////// + // THREAD NETWORK SETUP HERE + + // TODO: Configure network. + + // TODO: Enable network interface. + + // TODO: Start Thread network. + + // + //////////////////////////////////////////////////// + + // OpenThread main loop. + for (;;) { + // Execute any pending OpenThread related work. + otTaskletsProcess(instance); + + // Execute any platform related work (e.g. check + // radio buffer for new packets). + otSysProcessDrivers(instance); + + // If there is not pending platform or OpenThread + // related work -- yield. + if (!otTaskletsArePending(instance) && + !openthread_platform_pending_work()) + { + yield(); + } + + } + + return 0; +} + +// Helper method that configures the OpenThread network dataset +// for the desired tutorial configuration. +// We set the following dataset parameters: +// -- Channel: 26 +// -- PanId: 0xabcd +// -- Networkkey: 00112233445566778899aabbccddeeff +void setNetworkConfiguration(otInstance* aInstance) { + otOperationalDataset aDataset; + + memset(&aDataset, 0, sizeof(otOperationalDataset)); + + /* Set Channel to 26 */ + aDataset.mChannel = 26; + aDataset.mComponents.mIsChannelPresent = true; + + /* Set Pan ID to abcd */ + aDataset.mPanId = (otPanId)0xabcd; + aDataset.mComponents.mIsPanIdPresent = true; + + /* Set network key to 00112233445566778899aabbccddeeff */ + uint8_t key[OT_NETWORK_KEY_SIZE] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; + memcpy(aDataset.mNetworkKey.m8, key, sizeof(aDataset.mNetworkKey)); + aDataset.mComponents.mIsNetworkKeyPresent = true; + + otError error = otDatasetSetActive(aInstance, &aDataset); + assert(error == 0); + +} + +// Helper method that registers a stateChangeCallback to print +// when state changes occur (useful for debugging). +static void stateChangeCallback(uint32_t flags, void* context) { + otInstance* instance = (otInstance*)context; + if (!(flags & OT_CHANGED_THREAD_ROLE)) { + return; + } + + switch (otThreadGetDeviceRole(instance)) { + case OT_DEVICE_ROLE_DISABLED: + printf("[State Change] - Disabled.\n"); + break; + case OT_DEVICE_ROLE_DETACHED: + printf("[State Change] - Detached.\n"); + break; + case OT_DEVICE_ROLE_CHILD: + network_up = true; + sendUdp(instance); + printf("[State Change] - Child.\n"); + printf("Successfully attached to Thread network as a child.\n"); + break; + case OT_DEVICE_ROLE_ROUTER: + printf("[State Change] - Router.\n"); + break; + case OT_DEVICE_ROLE_LEADER: + printf("[State Change] - Leader.\n"); + break; + default: + break; + } +} + +// Helper method to print the given Thread node's registered +// ipv6 address. +static void print_ip_addr(otInstance* instance) { + char addr_string[64]; + const otNetifAddress* unicastAddrs = otIp6GetUnicastAddresses(instance); + + printf("[THREAD] Device IPv6 Addresses: "); + for (const otNetifAddress* addr = unicastAddrs; addr; addr = addr->mNext) { + const otIp6Address ip6_addr = addr->mAddress; + otIp6AddressToString(&ip6_addr, addr_string, sizeof(addr_string)); + printf("%s\n", addr_string); + } +} + diff --git a/examples/tutorials/thread_network/06_openthread/main.c b/examples/tutorials/thread_network/06_openthread/main.c deleted file mode 100644 index 2398024cc..000000000 --- a/examples/tutorials/thread_network/06_openthread/main.c +++ /dev/null @@ -1,247 +0,0 @@ -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#define UDP_PORT 1212 -static const char UDP_ROUTER_MULTICAST[] = "ff02::2"; - -static otUdpSocket sUdpSocket; -static void initUdp(otInstance* aInstance); -static void sendUdp(otInstance* aInstance); - -uint8_t local_temperature_setpoint = 22; -uint8_t global_temperature_setpoint = 255; -uint8_t prior_global_temperature_setpoint = 255; -bool network_up = false; -bool send_local_temp = false; - -// Callback method for received udp packets. -static void handleUdpReceive(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo); -__attribute__ ((unused)) -static void openthread_ipc_callback(__attribute__ ((unused)) int pid, - __attribute__ ((unused)) int len, - __attribute__ ((unused)) int buf, - __attribute__ ((unused)) void* ud) { - // TODO // - - // error check provided buffer is of length at least equal to 1 - - // copy value in buffer to local_temperature_setpoint - - // copy the value of the global_temperature_setpoint into the - // buffer and notify client only if the network is up -} - -// helper utility demonstrating network config setup -static void setNetworkConfiguration(otInstance* aInstance); - -// callback for Thread state change events -static void stateChangeCallback(uint32_t flags, void* context); - -// helper utility to print ip address -static void print_ip_addr(otInstance* instance); - -int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) { - // Initialize OpenThread instance. - otSysInit(argc, argv); - otInstance* instance; - instance = otInstanceInitSingle(); - assert(instance); - - // TODO: - // Register this application as an IPC service under its name - // "org.tockos.thread-tutorial.openthread". - - /* As part of the initialization, we will: - - Init dataset with the following properties: - - channel: 26 - - network key: 0x00112233445566778899aabbccddeeff - - PAN ID: 0xabcd - - configure ip addr (ifconfig up) - - start thread network (thread start) - */ - - setNetworkConfiguration(instance); - - // set child timeout to 60 seconds. - otThreadSetChildTimeout(instance, 60); - - /* Start the Thread network interface (CLI cmd -> ifconfig up) */ - while (otIp6SetEnabled(instance, true) != OT_ERROR_NONE) { - printf("Failed to start Thread network interface!\n"); - libtocksync_alarm_delay_ms(100); - } - - // Set callback to be notified when thread state changes. - otSetStateChangedCallback(instance, stateChangeCallback, instance); - - // Print to console the device's assigned IPV6 address. - print_ip_addr(instance); - - // Initialize UDP socket (see guide: https://openthread.io/codelabs/openthread-apis#7) - initUdp(instance); - - /* Start the Thread stack (CLI cmd -> thread start) */ - while (otThreadSetEnabled(instance, true) != OT_ERROR_NONE) { - printf("Failed to start Thread stack!\n"); - libtocksync_alarm_delay_ms(100); - } - - for ( ;;) { - otTaskletsProcess(instance); - otSysProcessDrivers(instance); - - if (send_local_temp) { - sendUdp(instance); - send_local_temp = false; - } - - if (!otTaskletsArePending(instance) && !openthread_platform_pending_work()) { - yield(); - } - - } - - return 0; -} - -void setNetworkConfiguration(otInstance* aInstance) { - otOperationalDataset aDataset; - - memset(&aDataset, 0, sizeof(otOperationalDataset)); - - /* Set Channel to 26 */ - aDataset.mChannel = 26; - aDataset.mComponents.mIsChannelPresent = true; - - /* Set Pan ID to abcd */ - aDataset.mPanId = (otPanId)0xabcd; - aDataset.mComponents.mIsPanIdPresent = true; - - /* Set network key to 00112233445566778899aabbccddeeff */ - uint8_t key[OT_NETWORK_KEY_SIZE] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; - memcpy(aDataset.mNetworkKey.m8, key, sizeof(aDataset.mNetworkKey)); - aDataset.mComponents.mIsNetworkKeyPresent = true; - - otError error = otDatasetSetActive(aInstance, &aDataset); - assert(error == 0); - -} - -static void stateChangeCallback(uint32_t flags, void* context) { - otInstance* instance = (otInstance*)context; - if (!(flags & OT_CHANGED_THREAD_ROLE)) { - return; - } - - switch (otThreadGetDeviceRole(instance)) { - case OT_DEVICE_ROLE_DISABLED: - printf("[State Change] - Disabled.\n"); - break; - case OT_DEVICE_ROLE_DETACHED: - printf("[State Change] - Detached.\n"); - break; - case OT_DEVICE_ROLE_CHILD: - network_up = true; - sendUdp(instance); - printf("[State Change] - Child.\n"); - printf("Successfully attached to Thread network as a child.\n"); - break; - case OT_DEVICE_ROLE_ROUTER: - printf("[State Change] - Router.\n"); - break; - case OT_DEVICE_ROLE_LEADER: - printf("[State Change] - Leader.\n"); - break; - default: - break; - } -} - -static void print_ip_addr(otInstance* instance) { - char addr_string[64]; - const otNetifAddress* unicastAddrs = otIp6GetUnicastAddresses(instance); - - printf("[THREAD] Device IPv6 Addresses: "); - for (const otNetifAddress* addr = unicastAddrs; addr; addr = addr->mNext) { - const otIp6Address ip6_addr = addr->mAddress; - otIp6AddressToString(&ip6_addr, addr_string, sizeof(addr_string)); - printf("%s\n", addr_string); - } -} - -void handleUdpReceive(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo) { - OT_UNUSED_VARIABLE(aContext); - OT_UNUSED_VARIABLE(aMessageInfo); - char buf[2]; - - const otIp6Address sender_addr = aMessageInfo->mPeerAddr; - otIp6AddressToString(&sender_addr, buf, sizeof(buf)); - - otMessageRead(aMessage, otMessageGetOffset(aMessage), buf, sizeof(buf) - 1); - global_temperature_setpoint = buf[0]; -} - -void initUdp(otInstance* aInstance) { - otSockAddr listenSockAddr; - - memset(&sUdpSocket, 0, sizeof(sUdpSocket)); - memset(&listenSockAddr, 0, sizeof(listenSockAddr)); - - listenSockAddr.mPort = UDP_PORT; - - otUdpOpen(aInstance, &sUdpSocket, handleUdpReceive, aInstance); - otUdpBind(aInstance, &sUdpSocket, &listenSockAddr, OT_NETIF_THREAD); -} - -void sendUdp(otInstance* aInstance) { - - otError error = OT_ERROR_NONE; - otMessage* message; - otMessageInfo messageInfo; - otIp6Address destinationAddr; - - memset(&messageInfo, 0, sizeof(messageInfo)); - - otIp6AddressFromString(UDP_ROUTER_MULTICAST, &destinationAddr); - messageInfo.mPeerAddr = destinationAddr; - messageInfo.mPeerPort = UDP_PORT; - - message = otUdpNewMessage(aInstance, NULL); - if (message == NULL) { - printf("Error creating udp message\n"); - return; - } - - error = otMessageAppend(message, &local_temperature_setpoint, sizeof(local_temperature_setpoint)); - if (error != OT_ERROR_NONE && message != NULL) { - printf("Error appending to udp message\n"); - otMessageFree(message); - return; - } - - error = otUdpSend(aInstance, &sUdpSocket, message, &messageInfo); - if (error != OT_ERROR_NONE && message != NULL) { - printf("Error sending udp packet\n"); - otMessageFree(message); - } -} From 6fc82313732df15e230d860069856d3babe5ba6f Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Thu, 5 Dec 2024 12:10:36 -0800 Subject: [PATCH 03/10] [Thread Tutorial] Update sensor app checkpoints. --- .../thread_network/01_sensor_final/main.c | 51 ------------------- .../Makefile | 0 .../01_sensor_temperature/main.c | 21 ++++++++ .../Makefile | 0 .../01_sensor_ipc => 02_sensor_final}/main.c | 9 +++- 5 files changed, 28 insertions(+), 53 deletions(-) delete mode 100644 examples/tutorials/thread_network/01_sensor_final/main.c rename examples/tutorials/thread_network/{01_sensor_final/01_sensor_ipc => 01_sensor_temperature}/Makefile (100%) create mode 100644 examples/tutorials/thread_network/01_sensor_temperature/main.c rename examples/tutorials/thread_network/{01_sensor_final => 02_sensor_final}/Makefile (100%) rename examples/tutorials/thread_network/{01_sensor_final/01_sensor_ipc => 02_sensor_final}/main.c (62%) diff --git a/examples/tutorials/thread_network/01_sensor_final/main.c b/examples/tutorials/thread_network/01_sensor_final/main.c deleted file mode 100644 index 374489d16..000000000 --- a/examples/tutorials/thread_network/01_sensor_final/main.c +++ /dev/null @@ -1,51 +0,0 @@ -#include - -#include -#include -#include -#include - -// Global variable storing the current temperature. This is written to in the -// main loop, and read from in the IPC handler. Because the app is single -// threaded and has no yield point when writing the value, we do not need to -// worry about synchronization -- reads never happen during a write. -static int current_temperature = 0; - -static void sensor_ipc_callback(int pid, int len, int buf, - __attribute__((unused)) void* ud) { - // A client has requested us to provide them the current temperature value. - // We must make sure that it provides us with a buffer sufficiently large to - // store a single integer: - if (len < ((int) sizeof(current_temperature))) { - // We do not inform the caller and simply return. We do print a log message: - puts("[thread-sensor] ERROR: sensor IPC invoked with too small buffer.\r\n"); - return; - } - - // The buffer is large enough, copy the current temperature into it: - memcpy((void*) buf, ¤t_temperature, sizeof(current_temperature)); - - // Let the client know: - ipc_notify_client(pid); -} - -int main(void) { - // Measure the temperature once before registering ourselves as an IPC - // service. This ensures that we always return a correct (but potentially - // stale) temperature value. - libtocksync_temperature_read(¤t_temperature); - - // Register this application as an IPC service under its name: - ipc_register_service_callback("org.tockos.thread-tutorial.sensor", - sensor_ipc_callback, - NULL); - - // We measure the temperature in the main loop and simply provide the latest - // reading in an IPC. This means that the control app does not have to wait - // for the temperature read system call to complete. - while (1) { - libtocksync_temperature_read(¤t_temperature); - // printf("Current temperature: %d\r\n", current_temperature); - libtocksync_alarm_delay_ms(1000); - } -} diff --git a/examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/Makefile b/examples/tutorials/thread_network/01_sensor_temperature/Makefile similarity index 100% rename from examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/Makefile rename to examples/tutorials/thread_network/01_sensor_temperature/Makefile diff --git a/examples/tutorials/thread_network/01_sensor_temperature/main.c b/examples/tutorials/thread_network/01_sensor_temperature/main.c new file mode 100644 index 000000000..4c5a162c0 --- /dev/null +++ b/examples/tutorials/thread_network/01_sensor_temperature/main.c @@ -0,0 +1,21 @@ +#include + +#include +#include +#include +#include + +static int current_temperature = 0; + +int main(void) { + // Measure temperature -- returned in the form 2200 => 22C + libtocksync_temperature_read(¤t_temperature); + + // Convert temperature + int whole_degree = current_temperature / 100; + int decimal_degree = current_temperature % 100; + + printf("Hello World, the temperature is: %i.%i\r\n", whole_degree, decimal_degree); + + return 0; +} diff --git a/examples/tutorials/thread_network/01_sensor_final/Makefile b/examples/tutorials/thread_network/02_sensor_final/Makefile similarity index 100% rename from examples/tutorials/thread_network/01_sensor_final/Makefile rename to examples/tutorials/thread_network/02_sensor_final/Makefile diff --git a/examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/main.c b/examples/tutorials/thread_network/02_sensor_final/main.c similarity index 62% rename from examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/main.c rename to examples/tutorials/thread_network/02_sensor_final/main.c index f2aec0f7e..22f235e13 100644 --- a/examples/tutorials/thread_network/01_sensor_final/01_sensor_ipc/main.c +++ b/examples/tutorials/thread_network/02_sensor_final/main.c @@ -12,9 +12,14 @@ int main(void) { // We measure the temperature in the main loop and //print this value to the console. while (1) { - // Measure temperature. + // Measure temperature -- returned in the form 2200 => 22C libtocksync_temperature_read(¤t_temperature); - printf("Current temperature: %d\r\n", current_temperature); + + // Convert temperature + int whole_degree = current_temperature / 100; + int decimal_degree = current_temperature % 100; + + printf("Current temperature: %i.%i\r\n", whole_degree, decimal_degree); // Delay 1000 ms (1 second). libtocksync_alarm_delay_ms(1000); From 1b4cedb94f5202581a6d02bc8b9f6ea46da30e42 Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Thu, 5 Dec 2024 15:13:25 -0800 Subject: [PATCH 04/10] [Thread Tutorial] Update OpenThread - Remove IPC from communication app - Break into steps of join Thread network and add UDP interface --- .../{02_openthread => 03_openthread}/Makefile | 0 .../{02_openthread => 03_openthread}/main.c | 5 - .../04_openthread_attach/Makefile | 20 ++ .../04_openthread_attach/main.c | 162 ++++++++++++ .../thread_network/05_openthread_udp/Makefile | 20 ++ .../thread_network/05_openthread_udp/main.c | 234 ++++++++++++++++++ 6 files changed, 436 insertions(+), 5 deletions(-) rename examples/tutorials/thread_network/{02_openthread => 03_openthread}/Makefile (100%) rename examples/tutorials/thread_network/{02_openthread => 03_openthread}/main.c (97%) create mode 100644 examples/tutorials/thread_network/04_openthread_attach/Makefile create mode 100644 examples/tutorials/thread_network/04_openthread_attach/main.c create mode 100644 examples/tutorials/thread_network/05_openthread_udp/Makefile create mode 100644 examples/tutorials/thread_network/05_openthread_udp/main.c diff --git a/examples/tutorials/thread_network/02_openthread/Makefile b/examples/tutorials/thread_network/03_openthread/Makefile similarity index 100% rename from examples/tutorials/thread_network/02_openthread/Makefile rename to examples/tutorials/thread_network/03_openthread/Makefile diff --git a/examples/tutorials/thread_network/02_openthread/main.c b/examples/tutorials/thread_network/03_openthread/main.c similarity index 97% rename from examples/tutorials/thread_network/02_openthread/main.c rename to examples/tutorials/thread_network/03_openthread/main.c index 4569da513..d8df90324 100644 --- a/examples/tutorials/thread_network/02_openthread/main.c +++ b/examples/tutorials/thread_network/03_openthread/main.c @@ -18,9 +18,6 @@ #include #include -#define UDP_PORT 1212 -static const char UDP_ROUTER_MULTICAST[] = "ff02::2"; - // helper utility demonstrating network config setup static void setNetworkConfiguration(otInstance* aInstance); @@ -123,8 +120,6 @@ static void stateChangeCallback(uint32_t flags, void* context) { printf("[State Change] - Detached.\n"); break; case OT_DEVICE_ROLE_CHILD: - network_up = true; - sendUdp(instance); printf("[State Change] - Child.\n"); printf("Successfully attached to Thread network as a child.\n"); break; diff --git a/examples/tutorials/thread_network/04_openthread_attach/Makefile b/examples/tutorials/thread_network/04_openthread_attach/Makefile new file mode 100644 index 000000000..5c487ec99 --- /dev/null +++ b/examples/tutorials/thread_network/04_openthread_attach/Makefile @@ -0,0 +1,20 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../.. + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +# Specify this app depends on the MTD OpenThread library. +include $(TOCK_USERLAND_BASE_DIR)/libopenthread/libopenthread-mtd.mk + +# set stack size to 8000 to support openthread app +STACK_SIZE:=8000 +APP_HEAP_SIZE:=5000 + +PACKAGE_NAME = org.tockos.thread-tutorial.openthread + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/04_openthread_attach/main.c b/examples/tutorials/thread_network/04_openthread_attach/main.c new file mode 100644 index 000000000..53a35c17d --- /dev/null +++ b/examples/tutorials/thread_network/04_openthread_attach/main.c @@ -0,0 +1,162 @@ +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +// helper utility demonstrating network config setup +static void setNetworkConfiguration(otInstance* aInstance); + +// callback for Thread state change events +static void stateChangeCallback(uint32_t flags, void* context); + +// helper utility to print ip address +static void print_ip_addr(otInstance* instance); + +int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) { + // Initialize OpenThread instance. + otSysInit(argc, argv); + otInstance* instance; + instance = otInstanceInitSingle(); + assert(instance); + + // set child timeout to 60 seconds. + otThreadSetChildTimeout(instance, 60); + + // Set callback to be notified when thread state changes. + otSetStateChangedCallback(instance, stateChangeCallback, instance); + + /////////////////////////////////////////////////// + // THREAD NETWORK SETUP HERE + + // Configure network. + setNetworkConfiguration(instance); + + // Enable network interface. + while (otIp6SetEnabled(instance, true) != OT_ERROR_NONE) { + printf("Failed to start Thread network interface!\n"); + libtocksync_alarm_delay_ms(100); + } + + // Print IPv6 address. + print_ip_addr(instance); + + // Start Thread network. + while (otThreadSetEnabled(instance, true) != OT_ERROR_NONE) { + printf("Failed to start Thread stack!\n"); + libtocksync_alarm_delay_ms(100); + } + + // + //////////////////////////////////////////////////// + + // OpenThread main loop. + for (;;) { + // Execute any pending OpenThread related work. + otTaskletsProcess(instance); + + // Execute any platform related work (e.g. check + // radio buffer for new packets). + otSysProcessDrivers(instance); + + // If there is not pending platform or OpenThread + // related work -- yield. + if (!otTaskletsArePending(instance) && + !openthread_platform_pending_work()) + { + yield(); + } + + } + + return 0; +} + +// Helper method that configures the OpenThread network dataset +// for the desired tutorial configuration. +// We set the following dataset parameters: +// -- Channel: 26 +// -- PanId: 0xabcd +// -- Networkkey: 00112233445566778899aabbccddeeff +void setNetworkConfiguration(otInstance* aInstance) { + otOperationalDataset aDataset; + + memset(&aDataset, 0, sizeof(otOperationalDataset)); + + /* Set Channel to 26 */ + aDataset.mChannel = 26; + aDataset.mComponents.mIsChannelPresent = true; + + /* Set Pan ID to abcd */ + aDataset.mPanId = (otPanId)0xabcd; + aDataset.mComponents.mIsPanIdPresent = true; + + /* Set network key to 00112233445566778899aabbccddeeff */ + uint8_t key[OT_NETWORK_KEY_SIZE] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; + memcpy(aDataset.mNetworkKey.m8, key, sizeof(aDataset.mNetworkKey)); + aDataset.mComponents.mIsNetworkKeyPresent = true; + + otError error = otDatasetSetActive(aInstance, &aDataset); + assert(error == 0); + +} + +// Helper method that registers a stateChangeCallback to print +// when state changes occur (useful for debugging). +static void stateChangeCallback(uint32_t flags, void* context) { + otInstance* instance = (otInstance*)context; + if (!(flags & OT_CHANGED_THREAD_ROLE)) { + return; + } + + switch (otThreadGetDeviceRole(instance)) { + case OT_DEVICE_ROLE_DISABLED: + printf("[State Change] - Disabled.\n"); + break; + case OT_DEVICE_ROLE_DETACHED: + printf("[State Change] - Detached.\n"); + break; + case OT_DEVICE_ROLE_CHILD: + printf("[State Change] - Child.\n"); + printf("Successfully attached to Thread network as a child.\n"); + break; + case OT_DEVICE_ROLE_ROUTER: + printf("[State Change] - Router.\n"); + break; + case OT_DEVICE_ROLE_LEADER: + printf("[State Change] - Leader.\n"); + break; + default: + break; + } +} + +// Helper method to print the given Thread node's registered +// ipv6 address. +static void print_ip_addr(otInstance* instance) { + char addr_string[64]; + const otNetifAddress* unicastAddrs = otIp6GetUnicastAddresses(instance); + + printf("[THREAD] Device IPv6 Addresses: "); + for (const otNetifAddress* addr = unicastAddrs; addr; addr = addr->mNext) { + const otIp6Address ip6_addr = addr->mAddress; + otIp6AddressToString(&ip6_addr, addr_string, sizeof(addr_string)); + printf("%s\n", addr_string); + } +} + diff --git a/examples/tutorials/thread_network/05_openthread_udp/Makefile b/examples/tutorials/thread_network/05_openthread_udp/Makefile new file mode 100644 index 000000000..5c487ec99 --- /dev/null +++ b/examples/tutorials/thread_network/05_openthread_udp/Makefile @@ -0,0 +1,20 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../.. + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +# Specify this app depends on the MTD OpenThread library. +include $(TOCK_USERLAND_BASE_DIR)/libopenthread/libopenthread-mtd.mk + +# set stack size to 8000 to support openthread app +STACK_SIZE:=8000 +APP_HEAP_SIZE:=5000 + +PACKAGE_NAME = org.tockos.thread-tutorial.openthread + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/05_openthread_udp/main.c b/examples/tutorials/thread_network/05_openthread_udp/main.c new file mode 100644 index 000000000..dc5e556a8 --- /dev/null +++ b/examples/tutorials/thread_network/05_openthread_udp/main.c @@ -0,0 +1,234 @@ +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +// helper utility demonstrating network config setup +static void setNetworkConfiguration(otInstance* aInstance); + +static otUdpSocket sUdpSocket; + +void initUdp(otInstance* aInstance); + +void handleUdpRecvTemperature(void* aContext, otMessage* aMessage, + const otMessageInfo* aMessageInfo); + +void sendUdpTemperature(otInstance* aInstance, uint8_t temperature); + +// callback for Thread state change events +static void stateChangeCallback(uint32_t flags, void* context); + +// helper utility to print ip address +static void print_ip_addr(otInstance* instance); + +int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) { + // Initialize OpenThread instance. + otSysInit(argc, argv); + otInstance* instance; + instance = otInstanceInitSingle(); + assert(instance); + + // set child timeout to 60 seconds. + otThreadSetChildTimeout(instance, 60); + + // Set callback to be notified when thread state changes. + otSetStateChangedCallback(instance, stateChangeCallback, instance); + + /////////////////////////////////////////////////// + // THREAD NETWORK SETUP HERE + + // Configure network. + setNetworkConfiguration(instance); + + // Init UDP interface. + initUdp(instance); + + // Enable network interface. + while (otIp6SetEnabled(instance, true) != OT_ERROR_NONE) { + printf("Failed to start Thread network interface!\n"); + libtocksync_alarm_delay_ms(100); + } + + // Print IPv6 address. + print_ip_addr(instance); + + // Start Thread network. + while (otThreadSetEnabled(instance, true) != OT_ERROR_NONE) { + printf("Failed to start Thread stack!\n"); + libtocksync_alarm_delay_ms(100); + } + + // + //////////////////////////////////////////////////// + + // OpenThread main loop. + for (;;) { + // Execute any pending OpenThread related work. + otTaskletsProcess(instance); + + // Execute any platform related work (e.g. check + // radio buffer for new packets). + otSysProcessDrivers(instance); + + // If there is not pending platform or OpenThread + // related work -- yield. + if (!otTaskletsArePending(instance) && + !openthread_platform_pending_work()) + { + yield(); + } + + } + + return 0; +} + +// Helper method that configures the OpenThread network dataset +// for the desired tutorial configuration. +// We set the following dataset parameters: +// -- Channel: 26 +// -- PanId: 0xabcd +// -- Networkkey: 00112233445566778899aabbccddeeff +void setNetworkConfiguration(otInstance* aInstance) { + otOperationalDataset aDataset; + + memset(&aDataset, 0, sizeof(otOperationalDataset)); + + /* Set Channel to 26 */ + aDataset.mChannel = 26; + aDataset.mComponents.mIsChannelPresent = true; + + /* Set Pan ID to abcd */ + aDataset.mPanId = (otPanId)0xabcd; + aDataset.mComponents.mIsPanIdPresent = true; + + /* Set network key to 00112233445566778899aabbccddeeff */ + uint8_t key[OT_NETWORK_KEY_SIZE] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; + memcpy(aDataset.mNetworkKey.m8, key, sizeof(aDataset.mNetworkKey)); + aDataset.mComponents.mIsNetworkKeyPresent = true; + + otError error = otDatasetSetActive(aInstance, &aDataset); + assert(error == 0); + +} + +// Helper method that registers a stateChangeCallback to print +// when state changes occur (useful for debugging). +static void stateChangeCallback(uint32_t flags, void* context) { + otInstance* instance = (otInstance*)context; + if (!(flags & OT_CHANGED_THREAD_ROLE)) { + return; + } + + switch (otThreadGetDeviceRole(instance)) { + case OT_DEVICE_ROLE_DISABLED: + printf("[State Change] - Disabled.\n"); + break; + case OT_DEVICE_ROLE_DETACHED: + printf("[State Change] - Detached.\n"); + break; + case OT_DEVICE_ROLE_CHILD: + printf("[State Change] - Child.\n"); + printf("Successfully attached to Thread network as a child.\n"); + sendUdpTemperature(instance, 22); + break; + case OT_DEVICE_ROLE_ROUTER: + printf("[State Change] - Router.\n"); + break; + case OT_DEVICE_ROLE_LEADER: + printf("[State Change] - Leader.\n"); + break; + default: + break; + } +} + +// Helper method to print the given Thread node's registered +// ipv6 address. +static void print_ip_addr(otInstance* instance) { + char addr_string[64]; + const otNetifAddress* unicastAddrs = otIp6GetUnicastAddresses(instance); + + printf("[THREAD] Device IPv6 Addresses: "); + for (const otNetifAddress* addr = unicastAddrs; addr; addr = addr->mNext) { + const otIp6Address ip6_addr = addr->mAddress; + otIp6AddressToString(&ip6_addr, addr_string, sizeof(addr_string)); + printf("%s\n", addr_string); + } +} + + +void handleUdpRecvTemperature(void* aContext, otMessage* aMessage, + const otMessageInfo* aMessageInfo) { + OT_UNUSED_VARIABLE(aContext); + OT_UNUSED_VARIABLE(aMessageInfo); + char buf[2]; + + const otIp6Address sender_addr = aMessageInfo->mPeerAddr; + otIp6AddressToString(&sender_addr, buf, sizeof(buf)); + + otMessageRead(aMessage, otMessageGetOffset(aMessage), buf, sizeof(buf) - 1); + printf("Received UDP Packet: %d\r\n", buf[0]); +} + +void initUdp(otInstance* aInstance) { + otSockAddr listenSockAddr; + + memset(&sUdpSocket, 0, sizeof(sUdpSocket)); + memset(&listenSockAddr, 0, sizeof(listenSockAddr)); + + listenSockAddr.mPort = 1212; + + otUdpOpen(aInstance, &sUdpSocket, handleUdpRecvTemperature, aInstance); + otUdpBind(aInstance, &sUdpSocket, &listenSockAddr, OT_NETIF_THREAD); +} + +void sendUdpTemperature(otInstance* aInstance, uint8_t temperature) { + + otError error = OT_ERROR_NONE; + otMessage* message; + otMessageInfo messageInfo; + otIp6Address destinationAddr; + + memset(&messageInfo, 0, sizeof(messageInfo)); + + otIp6AddressFromString("ff02::02", &destinationAddr); + messageInfo.mPeerAddr = destinationAddr; + messageInfo.mPeerPort = 1212; + + message = otUdpNewMessage(aInstance, NULL); + if (message == NULL) { + printf("Error creating udp message\n"); + return; + } + + error = otMessageAppend(message, &temperature, 1); + if (error != OT_ERROR_NONE && message != NULL) { + printf("Error appending to udp message\n"); + otMessageFree(message); + return; + } + + error = otUdpSend(aInstance, &sUdpSocket, message, &messageInfo); + if (error != OT_ERROR_NONE && message != NULL) { + printf("Error sending udp packet\n"); + otMessageFree(message); + } +} + From d03ed9b0b818207f03e139702c7ff912506bd963 Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Thu, 5 Dec 2024 17:00:56 -0800 Subject: [PATCH 05/10] [Thread tutorial] Screen start and checkpoint 6 --- .../thread_network/05_screen/Makefile | 13 +++++++++ .../tutorials/thread_network/05_screen/main.c | 8 ++++++ .../thread_network/06_screen_button/.tab | Bin 0 -> 202240 bytes .../thread_network/06_screen_button/Makefile | 13 +++++++++ .../thread_network/06_screen_button/main.c | 25 ++++++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 examples/tutorials/thread_network/05_screen/Makefile create mode 100644 examples/tutorials/thread_network/05_screen/main.c create mode 100644 examples/tutorials/thread_network/06_screen_button/.tab create mode 100644 examples/tutorials/thread_network/06_screen_button/Makefile create mode 100644 examples/tutorials/thread_network/06_screen_button/main.c diff --git a/examples/tutorials/thread_network/05_screen/Makefile b/examples/tutorials/thread_network/05_screen/Makefile new file mode 100644 index 000000000..0748e329c --- /dev/null +++ b/examples/tutorials/thread_network/05_screen/Makefile @@ -0,0 +1,13 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../../ + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +PACKAGE_NAME = screen + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/05_screen/main.c b/examples/tutorials/thread_network/05_screen/main.c new file mode 100644 index 000000000..e1396b0d8 --- /dev/null +++ b/examples/tutorials/thread_network/05_screen/main.c @@ -0,0 +1,8 @@ +#include +#include +#include +#include + +int main(void) { + +} diff --git a/examples/tutorials/thread_network/06_screen_button/.tab b/examples/tutorials/thread_network/06_screen_button/.tab new file mode 100644 index 0000000000000000000000000000000000000000..12ecd7e7d66c88097f08b0195ff7dc8b746d937f GIT binary patch literal 202240 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�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 HDhT|43KxDV literal 0 HcmV?d00001 diff --git a/examples/tutorials/thread_network/06_screen_button/Makefile b/examples/tutorials/thread_network/06_screen_button/Makefile new file mode 100644 index 000000000..0748e329c --- /dev/null +++ b/examples/tutorials/thread_network/06_screen_button/Makefile @@ -0,0 +1,13 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../../ + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +PACKAGE_NAME = screen + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/06_screen_button/main.c b/examples/tutorials/thread_network/06_screen_button/main.c new file mode 100644 index 000000000..f80a24975 --- /dev/null +++ b/examples/tutorials/thread_network/06_screen_button/main.c @@ -0,0 +1,25 @@ +#include +#include +#include +#include + +#include + +static void button_callback(returncode_t ret, + int btn_num, + bool pressed) { + + if (pressed) { + printf("Button %i pressed!\r\n", btn_num); + } +} + +int main(void) { + for (int i = 0; i < 4; i++){ + libtock_button_notify_on_press(i, button_callback); + } + + for(;;) { + yield(); + } +} From 759fba59243c3a76188a9516fb1cfd00509e4dad Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Fri, 6 Dec 2024 11:02:58 -0800 Subject: [PATCH 06/10] [Thread Tutorial] Update Screen application - Remove IPC - Add more substeps --- .../{05_screen => 08_screen}/Makefile | 0 .../{05_screen => 08_screen}/main.c | 0 .../.tab | Bin .../Makefile | 0 .../main.c | 0 .../thread_network/10_screen_u8g2/.tab | Bin 0 -> 202240 bytes .../thread_network/10_screen_u8g2/Makefile | 13 ++++ .../thread_network/10_screen_u8g2/main.c | 60 +++++++++++++++ .../thread_network/11_screen_final/.tab | Bin 0 -> 202240 bytes .../thread_network/11_screen_final/Makefile | 13 ++++ .../thread_network/11_screen_final/main.c | 70 ++++++++++++++++++ 11 files changed, 156 insertions(+) rename examples/tutorials/thread_network/{05_screen => 08_screen}/Makefile (100%) rename examples/tutorials/thread_network/{05_screen => 08_screen}/main.c (100%) rename examples/tutorials/thread_network/{06_screen_button => 09_screen_button}/.tab (100%) rename examples/tutorials/thread_network/{06_screen_button => 09_screen_button}/Makefile (100%) rename examples/tutorials/thread_network/{06_screen_button => 09_screen_button}/main.c (100%) create mode 100644 examples/tutorials/thread_network/10_screen_u8g2/.tab create mode 100644 examples/tutorials/thread_network/10_screen_u8g2/Makefile create mode 100644 examples/tutorials/thread_network/10_screen_u8g2/main.c create mode 100644 examples/tutorials/thread_network/11_screen_final/.tab create mode 100644 examples/tutorials/thread_network/11_screen_final/Makefile create mode 100644 examples/tutorials/thread_network/11_screen_final/main.c diff --git a/examples/tutorials/thread_network/05_screen/Makefile b/examples/tutorials/thread_network/08_screen/Makefile similarity index 100% rename from examples/tutorials/thread_network/05_screen/Makefile rename to examples/tutorials/thread_network/08_screen/Makefile diff --git a/examples/tutorials/thread_network/05_screen/main.c b/examples/tutorials/thread_network/08_screen/main.c similarity index 100% rename from examples/tutorials/thread_network/05_screen/main.c rename to examples/tutorials/thread_network/08_screen/main.c diff --git a/examples/tutorials/thread_network/06_screen_button/.tab b/examples/tutorials/thread_network/09_screen_button/.tab similarity index 100% rename from examples/tutorials/thread_network/06_screen_button/.tab rename to examples/tutorials/thread_network/09_screen_button/.tab diff --git a/examples/tutorials/thread_network/06_screen_button/Makefile b/examples/tutorials/thread_network/09_screen_button/Makefile similarity index 100% rename from examples/tutorials/thread_network/06_screen_button/Makefile rename to examples/tutorials/thread_network/09_screen_button/Makefile diff --git a/examples/tutorials/thread_network/06_screen_button/main.c b/examples/tutorials/thread_network/09_screen_button/main.c similarity index 100% rename from examples/tutorials/thread_network/06_screen_button/main.c rename to examples/tutorials/thread_network/09_screen_button/main.c diff --git a/examples/tutorials/thread_network/10_screen_u8g2/.tab b/examples/tutorials/thread_network/10_screen_u8g2/.tab new file mode 100644 index 0000000000000000000000000000000000000000..12ecd7e7d66c88097f08b0195ff7dc8b746d937f GIT binary patch literal 202240 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�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 HDhT|43KxDV literal 0 HcmV?d00001 diff --git a/examples/tutorials/thread_network/10_screen_u8g2/Makefile b/examples/tutorials/thread_network/10_screen_u8g2/Makefile new file mode 100644 index 000000000..0748e329c --- /dev/null +++ b/examples/tutorials/thread_network/10_screen_u8g2/Makefile @@ -0,0 +1,13 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../../ + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +PACKAGE_NAME = screen + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/10_screen_u8g2/main.c b/examples/tutorials/thread_network/10_screen_u8g2/main.c new file mode 100644 index 000000000..bd35e5492 --- /dev/null +++ b/examples/tutorials/thread_network/10_screen_u8g2/main.c @@ -0,0 +1,60 @@ +#include +#include +#include +#include + +#include + +uint8_t global_temperature_setpoint = 0; +uint8_t local_temperature_setpoint = 22; +uint8_t measured_temperature = 0; + + +static void button_callback(returncode_t ret, + int btn_num, + bool pressed) { + + if (pressed) { + printf("Button %i pressed!\r\n", btn_num); + } +} + +int main(void) { + for (int i = 0; i < 4; i++){ + libtock_button_notify_on_press(i, button_callback); + } + + update_screen(); + + for(;;) { + yield(); + } +} + +static void update_screen(void) { + char temperature_set_point_str[35]; + char temperature_global_set_point_str[35]; + char temperature_current_measure_str[35]; + + // Format the buffers to be written. + sprintf(temperature_set_point_str, + "Set Point: %d", + local_temperature_setpoint); + + sprintf(temperature_global_set_point_str, + "Global Set Point: %d", + global_temperature_setpoint); + + sprintf(temperature_current_measure_str, + "Measured Temp: %d", + measured_temperature); + + // Use u8g2 library to draw each string. + u8g2_ClearBuffer(&u8g2); + u8g2_SetDrawColor(&u8g2, 1); + u8g2_DrawStr(&u8g2, 0, 0, temperature_set_point_str); + u8g2_DrawStr(&u8g2, 0, 25, temperature_global_set_point_str); + u8g2_DrawStr(&u8g2, 0, 50, temperature_current_measure_str); + u8g2_SendBuffer(&u8g2); +} + diff --git a/examples/tutorials/thread_network/11_screen_final/.tab b/examples/tutorials/thread_network/11_screen_final/.tab new file mode 100644 index 0000000000000000000000000000000000000000..12ecd7e7d66c88097f08b0195ff7dc8b746d937f GIT binary patch literal 202240 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�Rfp0qvlin>k%=J96YElAae^!l#Rp~gx^RJUQdUaO?n zSKtIO9rKFgG4Ze?=3#&kb2?t}NrxR-JECdx9K{!vYB5~J7vsuAJ+Q2w&9iK+YtbKF zb8gc)*(Ey5c79khyJk~lu0;!k#nH+0AH3$nHJ80YIl0i<`F+<=Tzp5nWA|md94|cP z7R04{B3FdU+-zLADveraV2b_r`G6`;Vpr@_yA{FRrc&?R`$UQfN>BgApF-t`9;`Gt z^xFNdBZ1lB>hhfO3(K5nDJo^)7o|`CkNuwJ=P%p+%oFDL*XR#*u~1_j6Jq9@XyTEs z4?~SRS>H2*eebv};gUXFa@BM5^5?Ig@42qG@}FkEF?;s6pZj+Hob_`&R~-HR6~KZd zCV!(Uqt;Ejujrv)vYiiH)}B@OwQVy3Q8~aSmd@ItS1OKg?&kebIvjd>x9kjL0J`Y$ zdEJh!0k^2u23URRH+SgGisQ0f|L{bS(xF8=^Vm0cU)H`a)>OOMQ4o%lKey)6Sl>0< zW0L6DRb5^kIAN4`?3WK7A<8+YT#YO@VHkf>crjYLeBIaX13ty3HJjPxWs>;)`|{iA z%SnLti|dBxC}`L;{Y8C^$8mXJYd~GBq`QB=O1W&ugV($Q{0YAq?9F##KUelWvO)P{ z>?eqpI_Lh}nlzV*b<7Ts0Lv2NlgEg{xXt;`mG{P8_5I(R@NKYa49U?eU#PGA=CZYA zS$lF{nY;VyUGl55Um}^hr4DiD!p|<#|Io>vtF4ba12e@*EfJ+Yo~fZ;M|E4hR);4i z+}yN2vNl=M{6z>^$#Wpdc>8j22&YQj7$aY^*PFm8wS-S5zuv=RBWT zlGai@wN%qzQ@}?rIhvG1+GD~yqUx$xe_>!l1HKgLo7>-dUTLmSZ!Z(>_?27GIZm zcG;xe&n_!E+Ue+ahoU`}-z0)m&YY(LT3!SIuo~Bh7|fQ>l6bvNf~poD=axSfYLzw$T;q)3r1{hWe6K zlJsI)i@JC`6WY{UWJh|uB(UL=bWOecXkU7KU97$&+Nn6|n*n)+*TAix?|o#+HoyR5 zzUO5?CDa_761b2<=7mc2C$dWgY;@VhT!7As7U2n33qh#9^sYC2D`SXyEV5^p)x|PP zUn;3CBkW|fgtjQ`YI7VN{~~NJlCCPLh%eAG+X;G;wq;aYT|@K!(sc=;?4wMrZuxzk zTLTsT#P^biE{h1Du)*IK9+o@{{4)aU9!Qk+_8;6P%#M0i3roJ2=k*kBC!QlHg3dG}nd zW6iK;(L)0Rox!RrQnTmkwKQ6h>&>;tLOqnl-;<-WpbUf3liF9(MCaaY+Pw2Se>h}6M zTrcNPVc$wYWkQ!Du7xJFGIfn2M32_8lF;KHM(dOLCp#WPPnK+(*9^ZOrE(0EoYU)Q!k19e@yuH{?we}3A${F>@=NP#sb z#eXfyR%^+CzJITa;*>`eic%g~{><+)D+pql@yMbj4@_!9AF-;d*H$Hd&_3r{UqiOg z{6`DcDe0L9R=0+T7Bk{H5(R%Hf|9e+Jk94x@0{TP9w}8@5#tiry7#`GE zNnceL(c5=O20SSViJ<$4^GS)_x7^oosZiwpMu`wum3XakVr$~N-ou#~(XN`gH8di9 zb_3^(C0ALLvoN-0U6K1q?e%T-mA`BweuW+#HdgQjJB*wR9b>narD*ceB%7m!)@*0@ z{Vpp)62y`kk9DRfaCMTU`412B(YoZZIsU^j8iT+iY8ZP@L-Bn)4`~;D8qTk~eb-9` zbtGjr?%DK8&8suQ&xZ9kk;`JjPO^<79my5xgpQ_tt)bA&Y|(IjqD1PS5%|rbo(Jw( z{M?!-42tXHhqsX?_w2mPc<%g%=gZd#WeWjYi>Bn=w6dsMUJ$PPeN?$q%#3HYM*<7l zEldy|?!-=Zew`sy1)eda9=+}*?e`_GpLK52IEp5E8lPH1en853BUe(HWuJDat%^unoO(xIHe^}4J zOknOHChm*%Ln_9W2A2k3+!@-ueZat~8s0vj{{dNeS6e$XT7NO5Q7EtWkr`#*tf~Gp zU*}J&T|X47zGM1-bg>MLbT9qkPPVr6&C*$GCdL=U$!_xXZI{))S-P$zv81a%qm)}q zUQol*wXF|lv~WAgN7{NK_)yD6rQERyly&f(H zj;9Oe`82vXzT8j=(jlE%si9?<DF=ag#yj!Qf4I@!BdN0(~`_CF?*nifZ#QqcSZ2Qm4B1?nrfIjhEoOZ+RwPkhN3vF~Ni@jLWBJqo{ z|0H@lo9sXRr)&QSYWv&TfBJEbV%UGuonimU-*Nj-x;x(f6YstR`%nKc`%nMh(Eihp zlL6cQ^Cb44VRk0if7aRdpJau4cG`cEeEGcgpMKbX`eFZxD--pcmG+-}{KM=&`5W8* zQ+&!{T6Np@pI=G)Pygq%|MZWb{U@|d<&aGFqi2@=r~kC=KT*S1!~PRGhHd|8_-A~& z{iivL{*CQF&ABXP|7p%-f7$+%!y$>u+KIY0~6p+JBl9n6m#gDe$xHKTpa-UuFAGg31|U{|RYy#@c_L zlrB!e{?jZs)RyxU>_1PCI%kair?IPha{Ev0AQX?MU7pWv|B2dpG$ z&;HX7`%gb?H-}#*d-v*SKkPsKu>TzVRzBCbr}tJJTk$*liDm!khyAA?_Mdn+(tl{s+kbuuL`wFb4VM`4KVP5ngN1*|{_}v(=+p`EKfP7n zAS?9#wedd@LNFEo)4IPIudMi=H=DnIQSm!iT}yYJ)QWU-cO1DN%S^S z_McU5c&&q1{+jroUfC*R#s3@_puA5M1JsvY&2vY=Vu|N}((hFe(~TK%0?(XsuJP|c&QIn?W$8^`e>P1kwI1Y=z!`}Su`?^CC1DBi-L^tZ#;-G zg*c(s?}^FgZ-VfNFYB-v1BIe54$47AyUxfJN;jecxclG|)1fIn6AT6G5c35~nI77G=T9)^GnD@-{o1RKFldyiXXvHFj$A zRN{;xA}EK=V64&jk=TSna8~VikuS_)+_zop%eL-oZ}jC__kl&|1M_*q4&T%+>I*|( z1nNsH2X#cY|JIO5&TO8Oi}G;|i9qV}P7%~P^wYvuDiW!7DfM4>NPrQ3&&mdAo>O z6;;v^_cLkG1!$%-sJVPuXrJiBcvg6S2A^eLZX z#ou-2wBnr?@4SK;v+5mclf!db7axxWOAEKuUmsu?YDAv_JIXy4+8h>WT&f%JS_?Xk zSp5qgqKK!?#xTC|vuJJifc^&Ma1)unRB?qGMask0@0@_RB;yr1rVI>35o;1rQHDi9 z1+IB?F+}p=aZm^8rByQe9sfN=`577u^|Nq7kx|iZH^E1h+$KDNZ}}PkTi`sAAsvk> zanMu``uB@Z0E0e^4|Fia=_{Bn_@N^6BUtNX^5mcjY@aHJN zd(@$UP&USoNUG6gy#xAN9?+-=9v1u2N6tH-83$;_;mofVLir_v^CCeAT?CqnxLN4J zW&!Ox3H}t1Q2%!`&g!zoLKJYO{&zADv!bmc|6LE!8sVdOW|fy>u7>geH{i^|R}^C; znkPQzbj)LmvKF7W5zmN0h_ zRC&$Fn)9v5tt#ZEK2}UK;NY?FcqpnI8ZdcCrYNqe8}ydp9!qgtX}nZllY6FM)E8{h z>z_;y<>0sQOx}J|_-T#$Nd3{fx)}9icpKV#)P~NIqY1W6;WdEmYIZ9N%8A#+E`xS@ z(JpZ2Z5Eu_z$?ZJTr%L8;|%yFygE2ud9K5UHT?xyMr2T?|7@>F_3=2c57y%TAmp+i zZR`aeyLtc3zL%a557yQ5ago@_C?c%S+Xec);A7v$PWpe$i8}O$5nT-RflfX#-rw*^ zR3X{r$GaQeS4B7ES0#P_L24X;m)YL8@cyGvUJd7EU-nU^zlBh%c{PH*gCZF=pnk-T zRT*2vLa|Vu3|a!M5l?&f!#gC#OgYle@eX>haBtBA@lX`BsfseAxU#ATa7NrE6?nUq zF$YEdRBM3KLB8!)#SE4>zpQU4tO>p;c$;tryp!My4|u@?UKj;lc7uOC;Ac1Z*A1S= z^X+bY&( zsn(V4jMkh3+3hyy5^}?oX01J@<6MIWvh>sMyrTstIHHqlcnO>8qdc?v|YA8 zEtCh@h5kn|7pd|})Y-szELkhI?N9fo>r3S{U%_GEHa^OP;WYhWBf>3c^nLT))Wq7Z z_bA3Kf~#YaZ~L2l)2@|8DS`8#2`mnd*j2bvdV1yF$}S zT+WLHSLotq1vD{=(bb=oE*bre?cPXed zfUzA0PY}%oIL%=!drln7FOt#P#fTSIi+P@MuwqOK!F0t|wT5If`eM;C^czmE;I%|X zvNsirw_fRR=9D-ftM+|r*nM08*^k(F4$|#Or-6-;@g3$F9?$oD@Dk$r zavdPA742iLsO{AB%X?f_T;Eh3E1@GIwr?~7o(BwQPUmxsD=E`As;u$y(QZiA+*Zs< z47!#X?{^Q{#&aky4BCXOxw@OT(-iLFbC4=F3M%vvePy=WlA}alsyqtvW3WAa@?B1o zkA~?bq=SHuhU+GRp_8cYNxS(D2sS}=WMw28hBX*1zk*kjgll;g|7 zkJr?-2tTB65w3tEE1oddVN97EtplEh#udiBzQQ$?#}!`sai$el_*SNgR%BtwI3aN} z#TJH~U6Th`l+S3YZR32p2y3wrc-)FI%z2mQUPKxu{TQ+;4>Scm8*=)k#NcVAs&|)t6*-I-hPQ5JTRWxpxC<3T<8ng&=)JPhRgxXlg|wJyia3(rf~sY zqU@mm6swr@(jvK?S@DY18inzQ#XsKP4;Vss>c-emNB0D#-w!^@^Aqh0dOPt3b5itT zs)OPe`=;)Jyd#-U^9Xob0_{eu^?=sK=ktuRai>COpa-t^5 zL?dMkFyb(wc*lG$Ld0XAx0U87A+cWhkjhZxV|oWV{E(MJ{9|7Ot+6NqGV13R@UH35 zZ+a;PvH@eM*Tjv0a=j{Gf&cGWI0`*pCZysbdtAWNW<$<5#0bv_5sd^$Cq<0>{LCI(FWuc%8;B& z%;`NwdZS7a^$}~CWC))7ffr+qk2MA9*)dvYK+l6Lh5QrijlOsM50_sPjp)m?$3gli zbhOku8TIgWx>X;^U5YYF^%!*oH|d%L+Ve}8OEC9!iB@^5EXC<8?#8~0(ml}B-N~bM zVvKzhQxxBvsApo$0hyhCg8Wzko=4kJtcPjsY_5m@<@oxoNY2nR1kyL7q>F;qxvoh% zJ@5eigX{KYZ0GY%IzGOB58gsBa$*enSnLI09JEHZ#&P^u5ki$UE$ZfD^yN1~re4rL z82hvQ#ql85FbRT^im7mPX6SP#5|^*}N72$Wp`zTs^_z67C9 z&^jWs=lJ?6^>j%lm~+^h>nU0Xkgkuh^R-k;heT{w+IIlIew5N7GrEpA8%YLSaAbI2 z<1%!}Bed4VZ@m`2um%`L-%$zr|InQ9T>sQo{WWyX_v276#iNEU0-l&cItb=zL+{X6 zfPS!_lG;b%IAU+6aCAQQxCloRT2nEq)oY-W*CTd4;#BJo%A%^QM7@Kts!7&D9-VU{ zY~KDP1)GUoy#{Q4(W@>FVDC|JgmU~&{eH+;ieG&%?L%4X3~d4Jw-C;JLn2rcjc^_( zT$)j=Io&*ny6_J2*bCm9sxQO5L9~*pFYX^4&jiND6NKE%^@9$LnAW~&d!Y9~-eDc6 zKMXt|wsj(1Ib!h$cy8Ff8%4S%KGs*u409ps;dm#V@UvwX=S%Ocr;5`P*G$)N0mSkkEvchPjfn=xZ8Z*Nbx=K zJIPy%=Pln1F83)qci8I@Exf}LS9%XZHgTA7U4`Vh2{V0; z5wn~4#){gFv3%TA_avjp-RRpf=nw+%;X)sbIR<#Axp4R%`cuq^s>>Qe*h5e8@aiP- z7NeNnz_F-GBD3Zb8j~?^w7ikxSL~^Tuz!m_^riUqLF6aFypAz{V#!3JrxZ+ZZ|=36 zl-^H}Wt{G-v{R*fw9^CGrO>>>=j`li8S)bQ&tqhoXQH%E@)mv@5+huHlw>>8K=U|9 zsJ8YjE>6squr~$xbYp(Q9A4ZxFhFZxiWyGpE{yRQ%F*19ePPITv;}^bK?kxqW`)K& zj2DRy^H*_RjCMm7K)1j;4ej3v-H!H?u{NRo_52fQ%YtDP`YZL5WV1on>~JWj+TdxD zU0gQDw_;v$SdqsQla=0RcN^#?&(uXO=!q$`H>6;{--ti%^ERUWM#?3?V~~gPFb_~a z00Zbr4$?6OWh0xy=WOByUN2xmbK6y|tmz%pgS|1(MHfXSFOoq|9X+IdB+ zpXOhzE%=!cz1PE1Iz=hRI0tE$VwLYvSdj?W{rV(5ALV6b=v3>W zPg`YpU3-l7vuN+(hOWP!KN?2=75wq3d`I&=*ONKVHMmZ<&f)bj=PB3s*-_OyC}W5= zDHT>(cT{!bto-C&HQ3#!l{k6T>>m?7E~c&^2hL#CtS!Jqv2FnbIt8SE$ zhnCSUu*!HpI(y@)zc8lI`zKs$kGoFx?toh8^^Yy|K7s$%_k|h8J-xTyJ&oVl)G9C7 zi9L~3=xxV!FD`l>(Lb{d+plIsp=wuVL%@cB4FMYhHUw-4*buNGU_-!$fDHi~0yYHB HDhT|43KxDV literal 0 HcmV?d00001 diff --git a/examples/tutorials/thread_network/11_screen_final/Makefile b/examples/tutorials/thread_network/11_screen_final/Makefile new file mode 100644 index 000000000..0748e329c --- /dev/null +++ b/examples/tutorials/thread_network/11_screen_final/Makefile @@ -0,0 +1,13 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../../ + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +PACKAGE_NAME = screen + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/11_screen_final/main.c b/examples/tutorials/thread_network/11_screen_final/main.c new file mode 100644 index 000000000..f4777a8aa --- /dev/null +++ b/examples/tutorials/thread_network/11_screen_final/main.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include + +#include + +uint8_t global_temperature_setpoint = 0; +uint8_t local_temperature_setpoint = 22; +uint8_t measured_temperature = 0; + +bool callback_event = false; + +static void button_callback(returncode_t ret, + int btn_num, + bool pressed) { + if (ret != RETURNCODE_SUCCESS) return; + + if (pressed) { + if (btn_num == 0 && local_temperature_setpoint < 35) { + local_temperature_setpoint++; + } else if (btn_num == 1 && local_temperature_setpoint > 0) { + local_temperature_setpoint--; + } else if (btn_num == 2) { + local_temperature_setpoint = 22; + } + } + + // Indicate that we have received a callback. + callback_event = true; +} + +int main(void) { + for (int i = 0; i < 4; i++){ + libtock_button_notify_on_press(i, button_callback); + } + + for(;;) { + yield_for(&callback_event); + update_screen(); + } +} + +static void update_screen(void) { + char temperature_set_point_str[35]; + char temperature_global_set_point_str[35]; + char temperature_current_measure_str[35]; + + // Format the buffers to be written. + sprintf(temperature_set_point_str, + "Set Point: %d", + local_temperature_setpoint); + + sprintf(temperature_global_set_point_str, + "Global Set Point: %d", + global_temperature_setpoint); + + sprintf(temperature_current_measure_str, + "Measured Temp: %d", + measured_temperature); + + // Use u8g2 library to draw each string. + u8g2_ClearBuffer(&u8g2); + u8g2_SetDrawColor(&u8g2, 1); + u8g2_DrawStr(&u8g2, 0, 0, temperature_set_point_str); + u8g2_DrawStr(&u8g2, 0, 25, temperature_global_set_point_str); + u8g2_DrawStr(&u8g2, 0, 50, temperature_current_measure_str); + u8g2_SendBuffer(&u8g2); +} + From d6be2779fefb5118797f171683c57da23b6db53d Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Fri, 6 Dec 2024 20:37:36 -0800 Subject: [PATCH 07/10] [Thred Tutorial] Add IPC module. --- .../thread_network/10_screen_ipc/.tab | Bin 0 -> 402432 bytes .../thread_network/10_screen_ipc/Makefile | 16 + .../thread_network/10_screen_ipc/main.c | 215 +++++++++++++ .../thread_network/11_sensor_ipc/Makefile | 13 + .../thread_network/11_sensor_ipc/main.c | 48 +++ .../thread_network/12_openthread_ipc/Makefile | 20 ++ .../thread_network/12_openthread_ipc/main.c | 284 ++++++++++++++++++ 7 files changed, 596 insertions(+) create mode 100644 examples/tutorials/thread_network/10_screen_ipc/.tab create mode 100644 examples/tutorials/thread_network/10_screen_ipc/Makefile create mode 100644 examples/tutorials/thread_network/10_screen_ipc/main.c create mode 100644 examples/tutorials/thread_network/11_sensor_ipc/Makefile create mode 100644 examples/tutorials/thread_network/11_sensor_ipc/main.c create mode 100644 examples/tutorials/thread_network/12_openthread_ipc/Makefile create mode 100644 examples/tutorials/thread_network/12_openthread_ipc/main.c diff --git a/examples/tutorials/thread_network/10_screen_ipc/.tab b/examples/tutorials/thread_network/10_screen_ipc/.tab new file mode 100644 index 0000000000000000000000000000000000000000..730cde421bf740e379c6dbf0024df0c746113faf GIT binary patch literal 402432 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 XA)q0kA)q0kA)q0kA)q1fUm)-|f&8nH literal 0 HcmV?d00001 diff --git a/examples/tutorials/thread_network/10_screen_ipc/Makefile b/examples/tutorials/thread_network/10_screen_ipc/Makefile new file mode 100644 index 000000000..2d56ef7d2 --- /dev/null +++ b/examples/tutorials/thread_network/10_screen_ipc/Makefile @@ -0,0 +1,16 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../../ + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +PACKAGE_NAME = screen + +STACK_SIZE = 4096 +EXTERN_LIBS += $(TOCK_USERLAND_BASE_DIR)/u8g2 + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/10_screen_ipc/main.c b/examples/tutorials/thread_network/10_screen_ipc/main.c new file mode 100644 index 000000000..1ad429823 --- /dev/null +++ b/examples/tutorials/thread_network/10_screen_ipc/main.c @@ -0,0 +1,215 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +// Global reference to the u8g2 context. +u8g2_t u8g2; + +// Helper method to update and format u8g2 screen. +static void update_screen(void); + +uint8_t global_temperature_setpoint = 0; +uint8_t local_temperature_setpoint = 22; +int measured_temperature = 0; + +uint8_t prior_global_temperature_setpoint = 255; +uint8_t prior_local_temperature_setpoint = 255; +int prior_measured_temperature = 0; + +bool network_up = false; + +bool callback_event = false; + +libtock_alarm_t read_temperature_timer; +libtock_alarm_t network_timer; + +// Helper method to initialize the screen. +static int init_controller_ipc(void); +size_t sensor_svc_num = 0; +size_t openthread_svc_num = 0; + +// We use this variable as a buffer that is naturally aligned to the int +// alignment, and has an alignment >= its size. +uint8_t temperature_buffer[64] __attribute__((aligned(64))); +uint8_t openthread_buffer[64] __attribute__((aligned(64))); + + +static void button_callback(returncode_t ret, + int btn_num, + bool pressed) { + if (ret != RETURNCODE_SUCCESS) return; + + if (pressed) { + if (btn_num == 0 && local_temperature_setpoint < 35) { + local_temperature_setpoint++; + } else if (btn_num == 1 && local_temperature_setpoint > 0) { + local_temperature_setpoint--; + } else if (btn_num == 2) { + local_temperature_setpoint = 22; + } + } + + // Indicate that we have received a callback. + callback_event = true; +} + +static void read_temperature_timer_callback(__attribute__ ((unused)) uint32_t now, + __attribute__ ((unused)) uint32_t scheduled, + __attribute__ ((unused)) void* opaque) { + // Request a new temperature reading from the sensor: + ipc_notify_service(sensor_svc_num); +} + +static void update_network_timer_callback(__attribute__ ((unused)) uint32_t now, + __attribute__ ((unused)) uint32_t scheduled, + __attribute__ ((unused)) void* opaque) { + openthread_buffer[0] = local_temperature_setpoint; + ipc_notify_service(openthread_svc_num); + libtock_alarm_in_ms(500, update_network_timer_callback, NULL, &network_timer); + +} + +static void sensor_callback(__attribute__ ((unused)) int pid, + __attribute__ ((unused)) int len, + __attribute__ ((unused)) int arg2, + __attribute__ ((unused)) void* ud) { + // update measured temperature + measured_temperature = *((int*) &temperature_buffer[0]); + + // Indicate that we have received a callback. + callback_event = true; + + // Request a new temperature reading in 250ms: + libtock_alarm_in_ms(250, read_temperature_timer_callback, NULL, &read_temperature_timer); +} + +static void openthread_callback(__attribute__ ((unused)) int pid, + __attribute__ ((unused)) int len, + __attribute__ ((unused)) int arg2, + __attribute__ ((unused)) void* ud) { + network_up = true; + + // update setpoint temperature + global_temperature_setpoint = *((int*) &openthread_buffer[0]); + + // Indicate that we have received a callback. + callback_event = true; + +} + + +int main(void) { + // Init u8g2 + u8g2_tock_init(&u8g2); + u8g2_SetFont(&u8g2, u8g2_font_profont12_tr); + u8g2_SetFontPosTop(&u8g2); + + init_controller_ipc(); + + // Enable buttons + for (int i = 0; i < 4; i++){ + libtock_button_notify_on_press(i, button_callback); + } + + ipc_notify_service(sensor_svc_num); + libtock_alarm_in_ms(500, update_network_timer_callback, NULL, &network_timer); + + for(;;) { + callback_event = false; + yield_for(&callback_event); + + if (measured_temperature != prior_measured_temperature + || global_temperature_setpoint != prior_global_temperature_setpoint + || local_temperature_setpoint != prior_local_temperature_setpoint) + { + prior_measured_temperature = measured_temperature; + prior_global_temperature_setpoint = global_temperature_setpoint; + prior_local_temperature_setpoint = local_temperature_setpoint; + update_screen(); + } + + } +} + +static void update_screen(void) { + char temperature_set_point_str[35]; + char temperature_global_set_point_str[35]; + char temperature_current_measure_str[35]; + + // Format the buffers to be written. + sprintf(temperature_set_point_str, + "Set Point: %d", + local_temperature_setpoint); + + if(network_up) { + sprintf(temperature_global_set_point_str, + "Global Set Point: %d", + global_temperature_setpoint); + } else { + sprintf(temperature_global_set_point_str, + "Global Set Point: N/A"); + } + + uint8_t whole_temp = measured_temperature / 100; + uint8_t decimal_temp = measured_temperature % 100; + + sprintf(temperature_current_measure_str, + "Measured Temp: %d.%d", + whole_temp, + decimal_temp ); + + // Use u8g2 library to draw each string. + u8g2_ClearBuffer(&u8g2); + u8g2_SetDrawColor(&u8g2, 1); + u8g2_DrawStr(&u8g2, 0, 0, temperature_set_point_str); + u8g2_DrawStr(&u8g2, 0, 25, temperature_global_set_point_str); + u8g2_DrawStr(&u8g2, 0, 50, temperature_current_measure_str); + u8g2_SendBuffer(&u8g2); +} + +static int init_controller_ipc(void) { + int err = -1; + int discover_retry_count = 0; + int err_sensor = -1; + int err_openthread = -1; + + while (err_sensor < 0 && err_openthread < 0 && discover_retry_count < 100) { + err_sensor = ipc_discover("org.tockos.thread-tutorial.sensor", &sensor_svc_num); + err_openthread = ipc_discover("org.tockos.thread-tutorial.openthread", &openthread_svc_num); + discover_retry_count++; + if (err < 0) { + libtocksync_alarm_delay_ms(10); + } + } + + if (err_sensor < 0) { + printf("No sensor service\r\n"); + return -1; + } + + if (err_openthread < 0) { + printf("No openthread service\r\n"); + return -1; + } + + printf("[controller] Discovered sensor service: %d\r\n", sensor_svc_num); + printf("[controller] Discovered openthread service: %d\r\n", openthread_svc_num); + + ipc_register_client_callback(sensor_svc_num, sensor_callback, NULL); + ipc_register_client_callback(openthread_svc_num, openthread_callback, NULL); + + ipc_share(sensor_svc_num, &temperature_buffer, sizeof(temperature_buffer)); + ipc_share(openthread_svc_num, &openthread_buffer, sizeof(openthread_buffer)); + + return err; +} + diff --git a/examples/tutorials/thread_network/11_sensor_ipc/Makefile b/examples/tutorials/thread_network/11_sensor_ipc/Makefile new file mode 100644 index 000000000..2a2f63413 --- /dev/null +++ b/examples/tutorials/thread_network/11_sensor_ipc/Makefile @@ -0,0 +1,13 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../../ + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +PACKAGE_NAME = org.tockos.thread-tutorial.sensor + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/11_sensor_ipc/main.c b/examples/tutorials/thread_network/11_sensor_ipc/main.c new file mode 100644 index 000000000..0d06b6dfa --- /dev/null +++ b/examples/tutorials/thread_network/11_sensor_ipc/main.c @@ -0,0 +1,48 @@ +#include + +#include +#include +#include +#include + +static int current_temperature = 0; + +static void sensor_ipc_callback(int pid, int len, int buf, + __attribute__((unused)) void* ud) { + // A client has requested us to provide them the current temperature value. + // We must make sure that it provides us with a buffer sufficiently large to + // store a single integer: + if (len < ((int) sizeof(current_temperature))) { + // We do not inform the caller and simply return. We do print a log message: + puts("[thread-sensor] ERROR: sensor IPC invoked with too small buffer.\r\n"); + } + + // The buffer is large enough, copy the current temperature into it: + memcpy((void*) buf, ¤t_temperature, sizeof(current_temperature)); + + // Let the client know: + ipc_notify_client(pid); +} + + +int main(void) { + // Measure the temperature once before registering ourselves as an IPC + // service. This ensures that we always return a correct (but potentially + // stale) temperature value. + libtocksync_temperature_read(¤t_temperature); + + // Register this application as an IPC service under its name: + ipc_register_service_callback("org.tockos.thread-tutorial.sensor", + sensor_ipc_callback, + NULL); + + // We measure the temperature in the main loop and + //print this value to the console. + while (1) { + // Measure temperature -- returned in the form 2200 => 22C + libtocksync_temperature_read(¤t_temperature); + + // Delay 1000 ms (1 second). + libtocksync_alarm_delay_ms(1000); + } +} diff --git a/examples/tutorials/thread_network/12_openthread_ipc/Makefile b/examples/tutorials/thread_network/12_openthread_ipc/Makefile new file mode 100644 index 000000000..5c487ec99 --- /dev/null +++ b/examples/tutorials/thread_network/12_openthread_ipc/Makefile @@ -0,0 +1,20 @@ +# Makefile for user application + +# Specify this directory relative to the current application. +TOCK_USERLAND_BASE_DIR = ../../../.. + +# Which files to compile. +C_SRCS := $(wildcard *.c) + +# Specify this app depends on the MTD OpenThread library. +include $(TOCK_USERLAND_BASE_DIR)/libopenthread/libopenthread-mtd.mk + +# set stack size to 8000 to support openthread app +STACK_SIZE:=8000 +APP_HEAP_SIZE:=5000 + +PACKAGE_NAME = org.tockos.thread-tutorial.openthread + +# Include userland master makefile. Contains rules and flags for actually +# building the application. +include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/12_openthread_ipc/main.c b/examples/tutorials/thread_network/12_openthread_ipc/main.c new file mode 100644 index 000000000..7427e2de2 --- /dev/null +++ b/examples/tutorials/thread_network/12_openthread_ipc/main.c @@ -0,0 +1,284 @@ +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +// helper utility demonstrating network config setup +static void setNetworkConfiguration(otInstance* aInstance); + +static otUdpSocket sUdpSocket; + +void initUdp(otInstance* aInstance); + +void handleUdpRecvTemperature(void* aContext, otMessage* aMessage, + const otMessageInfo* aMessageInfo); + +void sendUdpTemperature(otInstance* aInstance, uint8_t temperature); + +// callback for Thread state change events +static void stateChangeCallback(uint32_t flags, void* context); + +// helper utility to print ip address +static void print_ip_addr(otInstance* instance); + +uint8_t local_temperature_setpoint = 22; +uint8_t global_temperature_setpoint = 255; +uint8_t prior_global_temperature_setpoint = 255; +bool network_up = false; +bool send_local_temp = false; + +static void openthread_ipc_callback(int pid, int len, int buf, + __attribute__((unused)) void* ud) { + // A client has requested us to provide them the current temperature value. + // We must make sure that it provides us with a buffer sufficiently large to + // store a single integer: + if (len < ((int) sizeof(prior_global_temperature_setpoint))) { + // We do not inform the caller and simply return. We do print a log message: + puts("[thread] ERROR: sensor IPC invoked with too small buffer.\r\n"); + } + + // copy value in buffer to local_temperature_setpoint + uint8_t passed_local_setpoint = *((uint8_t*) buf); + if (passed_local_setpoint != local_temperature_setpoint) { + // The local setpoint has changed, update it. + local_temperature_setpoint = passed_local_setpoint; + send_local_temp = true; + } + + if (network_up) { + if (prior_global_temperature_setpoint != global_temperature_setpoint) { + prior_global_temperature_setpoint = global_temperature_setpoint; + + // The buffer is large enough, copy the current temperature into it. + memcpy((void*) buf, &global_temperature_setpoint, sizeof(global_temperature_setpoint)); + + // Notify the client that the temperature has changed. + ipc_notify_client(pid); + } + } +} + +int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) { + // Initialize OpenThread instance. + otSysInit(argc, argv); + otInstance* instance; + instance = otInstanceInitSingle(); + assert(instance); + + // Register this application as an IPC service under its name: + ipc_register_service_callback("org.tockos.thread-tutorial.openthread", + openthread_ipc_callback, + NULL); + + + // set child timeout to 60 seconds. + otThreadSetChildTimeout(instance, 60); + + // Set callback to be notified when thread state changes. + otSetStateChangedCallback(instance, stateChangeCallback, instance); + + /////////////////////////////////////////////////// + // THREAD NETWORK SETUP HERE + + // Configure network. + setNetworkConfiguration(instance); + + // Init UDP interface. + initUdp(instance); + + // Enable network interface. + while (otIp6SetEnabled(instance, true) != OT_ERROR_NONE) { + printf("Failed to start Thread network interface!\n"); + libtocksync_alarm_delay_ms(100); + } + + // Print IPv6 address. + print_ip_addr(instance); + + // Start Thread network. + while (otThreadSetEnabled(instance, true) != OT_ERROR_NONE) { + printf("Failed to start Thread stack!\n"); + libtocksync_alarm_delay_ms(100); + } + + // + //////////////////////////////////////////////////// + + // OpenThread main loop. + for (;;) { + // Execute any pending OpenThread related work. + otTaskletsProcess(instance); + + // Execute any platform related work (e.g. check + // radio buffer for new packets). + otSysProcessDrivers(instance); + + // Send udp packet if pending temperature update. + if(send_local_temp) { + sendUdpTemperature(instance, local_temperature_setpoint); + send_local_temp = false; + } + + // If there is not pending platform or OpenThread + // related work -- yield. + if (!otTaskletsArePending(instance) && + !openthread_platform_pending_work()) + { + yield(); + } + + } + + return 0; +} + +// Helper method that configures the OpenThread network dataset +// for the desired tutorial configuration. +// We set the following dataset parameters: +// -- Channel: 26 +// -- PanId: 0xabcd +// -- Networkkey: 00112233445566778899aabbccddeeff +void setNetworkConfiguration(otInstance* aInstance) { + otOperationalDataset aDataset; + + memset(&aDataset, 0, sizeof(otOperationalDataset)); + + /* Set Channel to 26 */ + aDataset.mChannel = 26; + aDataset.mComponents.mIsChannelPresent = true; + + /* Set Pan ID to abcd */ + aDataset.mPanId = (otPanId)0xabcd; + aDataset.mComponents.mIsPanIdPresent = true; + + /* Set network key to 00112233445566778899aabbccddeeff */ + uint8_t key[OT_NETWORK_KEY_SIZE] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; + memcpy(aDataset.mNetworkKey.m8, key, sizeof(aDataset.mNetworkKey)); + aDataset.mComponents.mIsNetworkKeyPresent = true; + + otError error = otDatasetSetActive(aInstance, &aDataset); + assert(error == 0); + +} + +// Helper method that registers a stateChangeCallback to print +// when state changes occur (useful for debugging). +static void stateChangeCallback(uint32_t flags, void* context) { + otInstance* instance = (otInstance*)context; + if (!(flags & OT_CHANGED_THREAD_ROLE)) { + return; + } + + switch (otThreadGetDeviceRole(instance)) { + case OT_DEVICE_ROLE_DISABLED: + printf("[State Change] - Disabled.\n"); + break; + case OT_DEVICE_ROLE_DETACHED: + printf("[State Change] - Detached.\n"); + break; + case OT_DEVICE_ROLE_CHILD: + printf("[State Change] - Child.\n"); + printf("Successfully attached to Thread network as a child.\n"); + sendUdpTemperature(instance, local_temperature_setpoint); + network_up = true; + break; + case OT_DEVICE_ROLE_ROUTER: + printf("[State Change] - Router.\n"); + break; + case OT_DEVICE_ROLE_LEADER: + printf("[State Change] - Leader.\n"); + break; + default: + break; + } +} + +// Helper method to print the given Thread node's registered +// ipv6 address. +static void print_ip_addr(otInstance* instance) { + char addr_string[64]; + const otNetifAddress* unicastAddrs = otIp6GetUnicastAddresses(instance); + + printf("[THREAD] Device IPv6 Addresses: "); + for (const otNetifAddress* addr = unicastAddrs; addr; addr = addr->mNext) { + const otIp6Address ip6_addr = addr->mAddress; + otIp6AddressToString(&ip6_addr, addr_string, sizeof(addr_string)); + printf("%s\n", addr_string); + } +} + + +void handleUdpRecvTemperature(void* aContext, otMessage* aMessage, + const otMessageInfo* aMessageInfo) { + OT_UNUSED_VARIABLE(aContext); + OT_UNUSED_VARIABLE(aMessageInfo); + char buf[2]; + + const otIp6Address sender_addr = aMessageInfo->mPeerAddr; + otIp6AddressToString(&sender_addr, buf, sizeof(buf)); + + otMessageRead(aMessage, otMessageGetOffset(aMessage), buf, sizeof(buf) - 1); + global_temperature_setpoint = buf[0]; +} + +void initUdp(otInstance* aInstance) { + otSockAddr listenSockAddr; + + memset(&sUdpSocket, 0, sizeof(sUdpSocket)); + memset(&listenSockAddr, 0, sizeof(listenSockAddr)); + + listenSockAddr.mPort = 1212; + + otUdpOpen(aInstance, &sUdpSocket, handleUdpRecvTemperature, aInstance); + otUdpBind(aInstance, &sUdpSocket, &listenSockAddr, OT_NETIF_THREAD); +} + +void sendUdpTemperature(otInstance* aInstance, uint8_t temperature) { + + otError error = OT_ERROR_NONE; + otMessage* message; + otMessageInfo messageInfo; + otIp6Address destinationAddr; + + memset(&messageInfo, 0, sizeof(messageInfo)); + + otIp6AddressFromString("ff02::02", &destinationAddr); + messageInfo.mPeerAddr = destinationAddr; + messageInfo.mPeerPort = 1212; + + message = otUdpNewMessage(aInstance, NULL); + if (message == NULL) { + printf("Error creating udp message\n"); + return; + } + + error = otMessageAppend(message, &temperature, 1); + if (error != OT_ERROR_NONE && message != NULL) { + printf("Error appending to udp message\n"); + otMessageFree(message); + return; + } + + error = otUdpSend(aInstance, &sUdpSocket, message, &messageInfo); + if (error != OT_ERROR_NONE && message != NULL) { + printf("Error sending udp packet\n"); + otMessageFree(message); + } +} + From 75706b25c76b5da622fa3c7153912f81848ac66f Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Fri, 6 Dec 2024 20:38:34 -0800 Subject: [PATCH 08/10] [Thread Tutorial] Update module naming. --- .../03_controller_screen/Makefile | 13 - .../03_controller_screen/main.c | 138 --------- .../04_controller_thread/main.c | 207 -------------- .../thread_network/05_controller_final/main.c | 206 -------------- .../Makefile | 0 .../main.c | 0 .../{08_screen => 06_screen}/Makefile | 0 .../{08_screen => 06_screen}/main.c | 0 .../07_openthread_final/Makefile | 20 -- .../thread_network/07_openthread_final/main.c | 263 ------------------ .../.tab | Bin 202240 -> 202240 bytes .../Makefile | 0 .../main.c | 1 + .../thread_network/08_screen_u8g2/.tab | Bin 0 -> 258048 bytes .../Makefile | 4 +- .../{10_screen_u8g2 => 08_screen_u8g2}/main.c | 26 +- .../thread_network/09_screen_final/.tab | Bin 0 -> 297472 bytes .../Makefile | 4 +- .../main.c | 14 + .../thread_network/10_screen_u8g2/.tab | Bin 202240 -> 0 bytes .../thread_network/10_screen_u8g2/Makefile | 13 - .../thread_network/11_screen_final/.tab | Bin 202240 -> 0 bytes .../thread_network/11_screen_final/Makefile | 13 - .../screen/openthread_app/Makefile | 20 -- .../screen/openthread_app/main.c | 263 ------------------ .../screen/temperature_controller/Makefile | 16 -- .../screen/temperature_controller/main.c | 208 -------------- .../screen/temperature_sensor_app/Makefile | 11 - .../screen/temperature_sensor_app/main.c | 50 ---- 29 files changed, 41 insertions(+), 1449 deletions(-) delete mode 100644 examples/tutorials/thread_network/03_controller_screen/Makefile delete mode 100644 examples/tutorials/thread_network/03_controller_screen/main.c delete mode 100644 examples/tutorials/thread_network/04_controller_thread/main.c delete mode 100644 examples/tutorials/thread_network/05_controller_final/main.c rename examples/tutorials/thread_network/{05_openthread_udp => 05_openthread_final}/Makefile (100%) rename examples/tutorials/thread_network/{05_openthread_udp => 05_openthread_final}/main.c (100%) rename examples/tutorials/thread_network/{08_screen => 06_screen}/Makefile (100%) rename examples/tutorials/thread_network/{08_screen => 06_screen}/main.c (100%) delete mode 100644 examples/tutorials/thread_network/07_openthread_final/Makefile delete mode 100644 examples/tutorials/thread_network/07_openthread_final/main.c rename examples/tutorials/thread_network/{09_screen_button => 07_screen_button}/.tab (88%) rename examples/tutorials/thread_network/{09_screen_button => 07_screen_button}/Makefile (100%) rename examples/tutorials/thread_network/{09_screen_button => 07_screen_button}/main.c (91%) create mode 100644 examples/tutorials/thread_network/08_screen_u8g2/.tab rename examples/tutorials/thread_network/{05_controller_final => 08_screen_u8g2}/Makefile (88%) rename examples/tutorials/thread_network/{10_screen_u8g2 => 08_screen_u8g2}/main.c (70%) create mode 100644 examples/tutorials/thread_network/09_screen_final/.tab rename examples/tutorials/thread_network/{04_controller_thread => 09_screen_final}/Makefile (88%) rename examples/tutorials/thread_network/{11_screen_final => 09_screen_final}/main.c (86%) delete mode 100644 examples/tutorials/thread_network/10_screen_u8g2/.tab delete mode 100644 examples/tutorials/thread_network/10_screen_u8g2/Makefile delete mode 100644 examples/tutorials/thread_network/11_screen_final/.tab delete mode 100644 examples/tutorials/thread_network/11_screen_final/Makefile delete mode 100644 examples/tutorials/thread_network/screen/openthread_app/Makefile delete mode 100644 examples/tutorials/thread_network/screen/openthread_app/main.c delete mode 100644 examples/tutorials/thread_network/screen/temperature_controller/Makefile delete mode 100644 examples/tutorials/thread_network/screen/temperature_controller/main.c delete mode 100644 examples/tutorials/thread_network/screen/temperature_sensor_app/Makefile delete mode 100644 examples/tutorials/thread_network/screen/temperature_sensor_app/main.c diff --git a/examples/tutorials/thread_network/03_controller_screen/Makefile b/examples/tutorials/thread_network/03_controller_screen/Makefile deleted file mode 100644 index 87ec7c58d..000000000 --- a/examples/tutorials/thread_network/03_controller_screen/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Makefile for user application - -# Specify this directory relative to the current application. -TOCK_USERLAND_BASE_DIR = ../../../../ - -# Which files to compile. -C_SRCS := $(wildcard *.c) - -PACKAGE_NAME = thread_controller - -# Include userland master makefile. Contains rules and flags for actually -# building the application. -include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/03_controller_screen/main.c b/examples/tutorials/thread_network/03_controller_screen/main.c deleted file mode 100644 index c9cbb155a..000000000 --- a/examples/tutorials/thread_network/03_controller_screen/main.c +++ /dev/null @@ -1,138 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -size_t sensor_svc_num = 0; - -uint8_t global_temperature_setpoint = 0; -uint8_t prior_global_temperature_setpoint = 255; - -uint8_t local_temperature_setpoint = 22; -uint8_t prior_local_temperature_setpoint = 255; - -int measured_temperature = 0; -int prior_measured_temperature = 0; - -// Callback event indicator -bool callback_event = false; - -libtock_alarm_t read_temperature_timer; - -// We use this variable as a buffer that is naturally aligned to the int -// alignment, and has an alignment >= its size. -uint8_t temperature_buffer[64] __attribute__((aligned(64))); - -static void update_screen(void); -static int init_controller_ipc(void); - - -static void read_temperature_timer_callback(__attribute__ ((unused)) uint32_t now, - __attribute__ ((unused)) uint32_t scheduled, - __attribute__ ((unused)) void* opaque) { - // Request a new temperature reading from the sensor: - ipc_notify_service(sensor_svc_num); -} - - -static void sensor_callback(__attribute__ ((unused)) int pid, - __attribute__ ((unused)) int len, - __attribute__ ((unused)) int arg2, - __attribute__ ((unused)) void* ud) { - // update measured temperature - measured_temperature = *((int*) &temperature_buffer[0]); - - // Indicate that we have received a callback. - callback_event = true; - - // Request a new temperature reading in 250ms: - libtock_alarm_in_ms(250, read_temperature_timer_callback, NULL, &read_temperature_timer); -} - -static void button_callback(returncode_t ret, - int btn_num, - bool pressed) { - if (ret != RETURNCODE_SUCCESS) return; - - if (pressed) { - if (btn_num == 0 && local_temperature_setpoint < 35) { - local_temperature_setpoint++; - } else if (btn_num == 1 && local_temperature_setpoint > 0) { - local_temperature_setpoint--; - } else if (btn_num == 2) { - local_temperature_setpoint = 22; - } - } - - // Indicate that we have received a callback. - callback_event = true; - - return; -} - -int main(void) { - int err; - int i; - - init_controller_ipc(); - - // Enable buttons - for (i = 0; i < 3; i++) { - err = libtock_button_notify_on_press(i, button_callback); - if (err < 0) return err; - } - - ipc_notify_service(sensor_svc_num); - - for ( ;;) { - callback_event = false; - yield_for(&callback_event); - - if (measured_temperature != prior_measured_temperature - || global_temperature_setpoint != prior_global_temperature_setpoint - || local_temperature_setpoint != prior_local_temperature_setpoint) { - prior_measured_temperature = measured_temperature; - prior_global_temperature_setpoint = global_temperature_setpoint; - prior_local_temperature_setpoint = local_temperature_setpoint; - update_screen(); - } - } -} - -static int init_controller_ipc(void) { - int err = -1; - int discover_retry_count = 0; - int err_sensor = -1; - - while (err_sensor < 0 && discover_retry_count < 100) { - err_sensor = ipc_discover("org.tockos.thread-tutorial.sensor", &sensor_svc_num); - discover_retry_count++; - if (err < 0) { - libtocksync_alarm_delay_ms(10); - } - } - - if (err_sensor < 0) { - printf("No sensor service\r\n"); - return -1; - } - - printf("[controller] Discovered sensor service: %d\r\n", sensor_svc_num); - - ipc_register_client_callback(sensor_svc_num, sensor_callback, NULL); - ipc_share(sensor_svc_num, &temperature_buffer, sizeof(temperature_buffer)); - - return err; -} - -static void update_screen(void) { - printf("[controller] TODO: update screen! Measured temperature: %d.%02d\r\n", - measured_temperature / 100, measured_temperature % 100); -} diff --git a/examples/tutorials/thread_network/04_controller_thread/main.c b/examples/tutorials/thread_network/04_controller_thread/main.c deleted file mode 100644 index 440b58a26..000000000 --- a/examples/tutorials/thread_network/04_controller_thread/main.c +++ /dev/null @@ -1,207 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include - -u8g2_t u8g2; - -size_t sensor_svc_num = 0; -// size_t openthread_svc_num = 0; - -uint8_t global_temperature_setpoint = 0; -uint8_t prior_global_temperature_setpoint = 255; - -uint8_t local_temperature_setpoint = 22; -uint8_t prior_local_temperature_setpoint = 255; - -int measured_temperature = 0; -int prior_measured_temperature = 0; - -bool network_up = false; - -// Callback event indicator -bool callback_event = false; - -libtock_alarm_t read_temperature_timer; -// libtock_alarm_t network_timer; - -// We use this variable as a buffer that is naturally aligned to the int -// alignment, and has an alignment >= its size. -uint8_t temperature_buffer[64] __attribute__((aligned(64))); -// uint8_t openthread_buffer[64] __attribute__((aligned(64))); - -static void update_screen(void); -static int init_controller_ipc(void); - - -static void read_temperature_timer_callback(__attribute__ ((unused)) uint32_t now, - __attribute__ ((unused)) uint32_t scheduled, - __attribute__ ((unused)) void* opaque) { - // Request a new temperature reading from the sensor: - ipc_notify_service(sensor_svc_num); -} - - -// static void update_network_timer_callback(__attribute__ ((unused)) uint32_t now, -// __attribute__ ((unused)) uint32_t scheduled, -// __attribute__ ((unused)) void* opaque) { -// openthread_buffer[0] = local_temperature_setpoint; -// ipc_notify_service(openthread_svc_num); -// libtock_alarm_in_ms(250, update_network_timer_callback, NULL, &network_timer); -// -// } - -static void sensor_callback(__attribute__ ((unused)) int pid, - __attribute__ ((unused)) int len, - __attribute__ ((unused)) int arg2, - __attribute__ ((unused)) void* ud) { - // update measured temperature - measured_temperature = *((int*) &temperature_buffer[0]); - - // Indicate that we have received a callback. - callback_event = true; - - // Request a new temperature reading in 250ms: - libtock_alarm_in_ms(250, read_temperature_timer_callback, NULL, &read_temperature_timer); -} - -// static void openthread_callback( __attribute__ ((unused)) int pid, -// __attribute__ ((unused)) int len, -// __attribute__ ((unused)) int arg2, -// __attribute__ ((unused)) void* ud) { -// network_up = true; -// -// // update setpoint temperature -// global_temperature_setpoint = *((int*) &openthread_buffer[0]); -// -// // Indicate that we have received a callback. -// callback_event = true; -// -// } - -static void button_callback(returncode_t ret, - int btn_num, - bool pressed) { - if (ret != RETURNCODE_SUCCESS) return; - - if (pressed) { - if (btn_num == 0 && local_temperature_setpoint < 35) { - local_temperature_setpoint++; - } else if (btn_num == 1 && local_temperature_setpoint > 0) { - local_temperature_setpoint--; - } else if (btn_num == 2) { - local_temperature_setpoint = 22; - } - } - - // Indicate that we have received a callback. - callback_event = true; - - return; -} - -int main(void) { - int err; - int i; - - u8g2_tock_init(&u8g2); - u8g2_SetFont(&u8g2, u8g2_font_profont12_tr); - u8g2_SetFontPosTop(&u8g2); - - init_controller_ipc(); - - // Enable buttons - for (i = 0; i < 3; i++) { - err = libtock_button_notify_on_press(i, button_callback); - if (err < 0) return err; - } - - ipc_notify_service(sensor_svc_num); - // libtock_alarm_in_ms(500, update_network_timer_callback, NULL, &network_timer); - - for ( ;;) { - callback_event = false; - yield_for(&callback_event); - - if (measured_temperature != prior_measured_temperature - || global_temperature_setpoint != prior_global_temperature_setpoint - || local_temperature_setpoint != prior_local_temperature_setpoint) { - prior_measured_temperature = measured_temperature; - prior_global_temperature_setpoint = global_temperature_setpoint; - prior_local_temperature_setpoint = local_temperature_setpoint; - update_screen(); - } - } -} - -static int init_controller_ipc(void) { - int err = -1; - int discover_retry_count = 0; - int err_sensor = -1; - // int err_openthread = -1; - - // while (err_sensor < 0 && err_openthread < 0 && discover_retry_count < 100) { - while (err_sensor < 0 && discover_retry_count < 100) { - err_sensor = ipc_discover("org.tockos.thread-tutorial.sensor", &sensor_svc_num); - // err_openthread = ipc_discover("org.tockos.thread-tutorial.openthread", &openthread_svc_num); - discover_retry_count++; - if (err < 0) { - libtocksync_alarm_delay_ms(10); - } - } - - if (err_sensor < 0) { - printf("No sensor service\r\n"); - return -1; - } - - // if (err_openthread < 0) { - // printf("No openthread service\r\n"); - // return -1; - // } - - printf("[controller] Discovered sensor service: %d\r\n", sensor_svc_num); - // printf("[controller] Discovered openthread service: %d\r\n", openthread_svc_num); - - ipc_register_client_callback(sensor_svc_num, sensor_callback, NULL); - // ipc_register_client_callback(openthread_svc_num, openthread_callback, NULL); - - ipc_share(sensor_svc_num, &temperature_buffer, sizeof(temperature_buffer)); - // ipc_share(openthread_svc_num, &openthread_buffer, sizeof(openthread_buffer)); - - return err; -} - -static void update_screen(void) { - char temperature_set_point_str[35]; - char temperature_global_set_point_str[35]; - char temperature_current_measure_str[35]; - sprintf(temperature_set_point_str, "Set Point: %d", local_temperature_setpoint); - - if (network_up) { - sprintf(temperature_global_set_point_str, "Global Set Point: %d", global_temperature_setpoint); - } else { - sprintf(temperature_global_set_point_str, "Global Set Point: N/A"); - } - - // print measured temperature as value XX.25 - sprintf(temperature_current_measure_str, "Measured Temp: %d.%02d", measured_temperature / 100, - measured_temperature % 100); - - u8g2_ClearBuffer(&u8g2); - u8g2_SetDrawColor(&u8g2, 1); - u8g2_DrawStr(&u8g2, 0, 0, temperature_set_point_str); - u8g2_DrawStr(&u8g2, 0, 25, temperature_global_set_point_str); - u8g2_DrawStr(&u8g2, 0, 50, temperature_current_measure_str); - u8g2_SendBuffer(&u8g2); -} diff --git a/examples/tutorials/thread_network/05_controller_final/main.c b/examples/tutorials/thread_network/05_controller_final/main.c deleted file mode 100644 index ed129b012..000000000 --- a/examples/tutorials/thread_network/05_controller_final/main.c +++ /dev/null @@ -1,206 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include - -u8g2_t u8g2; - -size_t sensor_svc_num = 0; -size_t openthread_svc_num = 0; - -uint8_t global_temperature_setpoint = 0; -uint8_t prior_global_temperature_setpoint = 255; - -uint8_t local_temperature_setpoint = 22; -uint8_t prior_local_temperature_setpoint = 255; - -int measured_temperature = 0; -int prior_measured_temperature = 0; - -bool network_up = false; - -// Callback event indicator -bool callback_event = false; - -libtock_alarm_t read_temperature_timer; -libtock_alarm_t network_timer; - -// We use this variable as a buffer that is naturally aligned to the int -// alignment, and has an alignment >= its size. -uint8_t temperature_buffer[64] __attribute__((aligned(64))); -uint8_t openthread_buffer[64] __attribute__((aligned(64))); - -static void update_screen(void); -static int init_controller_ipc(void); - - -static void read_temperature_timer_callback(__attribute__ ((unused)) uint32_t now, - __attribute__ ((unused)) uint32_t scheduled, - __attribute__ ((unused)) void* opaque) { - // Request a new temperature reading from the sensor: - ipc_notify_service(sensor_svc_num); -} - - -static void update_network_timer_callback(__attribute__ ((unused)) uint32_t now, - __attribute__ ((unused)) uint32_t scheduled, - __attribute__ ((unused)) void* opaque) { - openthread_buffer[0] = local_temperature_setpoint; - ipc_notify_service(openthread_svc_num); - libtock_alarm_in_ms(500, update_network_timer_callback, NULL, &network_timer); - -} - -static void sensor_callback(__attribute__ ((unused)) int pid, - __attribute__ ((unused)) int len, - __attribute__ ((unused)) int arg2, - __attribute__ ((unused)) void* ud) { - // update measured temperature - measured_temperature = *((int*) &temperature_buffer[0]); - - // Indicate that we have received a callback. - callback_event = true; - - // Request a new temperature reading in 250ms: - libtock_alarm_in_ms(250, read_temperature_timer_callback, NULL, &read_temperature_timer); -} - -static void openthread_callback(__attribute__ ((unused)) int pid, - __attribute__ ((unused)) int len, - __attribute__ ((unused)) int arg2, - __attribute__ ((unused)) void* ud) { - network_up = true; - - // update setpoint temperature - global_temperature_setpoint = *((int*) &openthread_buffer[0]); - - // Indicate that we have received a callback. - callback_event = true; - -} - -static void button_callback(returncode_t ret, - int btn_num, - bool pressed) { - if (ret != RETURNCODE_SUCCESS) return; - - if (pressed) { - if (btn_num == 0 && local_temperature_setpoint < 35) { - local_temperature_setpoint++; - } else if (btn_num == 1 && local_temperature_setpoint > 0) { - local_temperature_setpoint--; - } else if (btn_num == 2) { - local_temperature_setpoint = 22; - } - } - - // Indicate that we have received a callback. - callback_event = true; - - return; -} - -int main(void) { - int err; - int i; - - u8g2_tock_init(&u8g2); - u8g2_SetFont(&u8g2, u8g2_font_profont12_tr); - u8g2_SetFontPosTop(&u8g2); - - init_controller_ipc(); - - // Enable buttons - for (i = 0; i < 3; i++) { - err = libtock_button_notify_on_press(i, button_callback); - if (err < 0) return err; - } - - ipc_notify_service(sensor_svc_num); - libtock_alarm_in_ms(500, update_network_timer_callback, NULL, &network_timer); - - for ( ;;) { - callback_event = false; - yield_for(&callback_event); - - if (measured_temperature != prior_measured_temperature - || global_temperature_setpoint != prior_global_temperature_setpoint - || local_temperature_setpoint != prior_local_temperature_setpoint) { - prior_measured_temperature = measured_temperature; - prior_global_temperature_setpoint = global_temperature_setpoint; - prior_local_temperature_setpoint = local_temperature_setpoint; - update_screen(); - } - } -} - -static int init_controller_ipc(void) { - int err = -1; - int discover_retry_count = 0; - int err_sensor = -1; - int err_openthread = -1; - - while (err_sensor < 0 && err_openthread < 0 && discover_retry_count < 100) { - err_sensor = ipc_discover("org.tockos.thread-tutorial.sensor", &sensor_svc_num); - err_openthread = ipc_discover("org.tockos.thread-tutorial.openthread", &openthread_svc_num); - discover_retry_count++; - if (err < 0) { - libtocksync_alarm_delay_ms(10); - } - } - - if (err_sensor < 0) { - printf("No sensor service\r\n"); - return -1; - } - - if (err_openthread < 0) { - printf("No openthread service\r\n"); - return -1; - } - - printf("[controller] Discovered sensor service: %d\r\n", sensor_svc_num); - printf("[controller] Discovered openthread service: %d\r\n", openthread_svc_num); - - ipc_register_client_callback(sensor_svc_num, sensor_callback, NULL); - ipc_register_client_callback(openthread_svc_num, openthread_callback, NULL); - - ipc_share(sensor_svc_num, &temperature_buffer, sizeof(temperature_buffer)); - ipc_share(openthread_svc_num, &openthread_buffer, sizeof(openthread_buffer)); - - return err; -} - -static void update_screen(void) { - char temperature_set_point_str[35]; - char temperature_global_set_point_str[35]; - char temperature_current_measure_str[35]; - sprintf(temperature_set_point_str, "Set Point: %d", local_temperature_setpoint); - - if (network_up) { - sprintf(temperature_global_set_point_str, "Global Set Point: %d", global_temperature_setpoint); - } else { - sprintf(temperature_global_set_point_str, "Global Set Point: N/A"); - } - - // print measured temperature as value XX.25 - sprintf(temperature_current_measure_str, "Measured Temp: %d.%02d", measured_temperature / 100, - measured_temperature % 100); - - u8g2_ClearBuffer(&u8g2); - u8g2_SetDrawColor(&u8g2, 1); - u8g2_DrawStr(&u8g2, 0, 0, temperature_set_point_str); - u8g2_DrawStr(&u8g2, 0, 25, temperature_global_set_point_str); - u8g2_DrawStr(&u8g2, 0, 50, temperature_current_measure_str); - u8g2_SendBuffer(&u8g2); -} diff --git a/examples/tutorials/thread_network/05_openthread_udp/Makefile b/examples/tutorials/thread_network/05_openthread_final/Makefile similarity index 100% rename from examples/tutorials/thread_network/05_openthread_udp/Makefile rename to examples/tutorials/thread_network/05_openthread_final/Makefile diff --git a/examples/tutorials/thread_network/05_openthread_udp/main.c b/examples/tutorials/thread_network/05_openthread_final/main.c similarity index 100% rename from examples/tutorials/thread_network/05_openthread_udp/main.c rename to examples/tutorials/thread_network/05_openthread_final/main.c diff --git a/examples/tutorials/thread_network/08_screen/Makefile b/examples/tutorials/thread_network/06_screen/Makefile similarity index 100% rename from examples/tutorials/thread_network/08_screen/Makefile rename to examples/tutorials/thread_network/06_screen/Makefile diff --git a/examples/tutorials/thread_network/08_screen/main.c b/examples/tutorials/thread_network/06_screen/main.c similarity index 100% rename from examples/tutorials/thread_network/08_screen/main.c rename to examples/tutorials/thread_network/06_screen/main.c diff --git a/examples/tutorials/thread_network/07_openthread_final/Makefile b/examples/tutorials/thread_network/07_openthread_final/Makefile deleted file mode 100644 index faacede32..000000000 --- a/examples/tutorials/thread_network/07_openthread_final/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Makefile for user application - -# Specify this directory relative to the current application. -TOCK_USERLAND_BASE_DIR = ../../../../ - -# Which files to compile. -C_SRCS := $(wildcard *.c) - -# Specify this app depends on the MTD OpenThread library. -include $(TOCK_USERLAND_BASE_DIR)/libopenthread/libopenthread-mtd.mk - -# set stack size to 8000 to support openthread app -STACK_SIZE:=8000 -APP_HEAP_SIZE:=5000 - -PACKAGE_NAME = org.tockos.thread-tutorial.openthread - -# Include userland master makefile. Contains rules and flags for actually -# building the application. -include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/07_openthread_final/main.c b/examples/tutorials/thread_network/07_openthread_final/main.c deleted file mode 100644 index 82ec813a9..000000000 --- a/examples/tutorials/thread_network/07_openthread_final/main.c +++ /dev/null @@ -1,263 +0,0 @@ -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#define UDP_PORT 1212 -static const char UDP_ROUTER_MULTICAST[] = "ff02::2"; - -static otUdpSocket sUdpSocket; -static void initUdp(otInstance* aInstance); -static void sendUdp(otInstance* aInstance); - -uint8_t local_temperature_setpoint = 22; -uint8_t global_temperature_setpoint = 255; -uint8_t prior_global_temperature_setpoint = 255; -bool network_up = false; -bool send_local_temp = false; - -// Callback method for received udp packets. -static void handleUdpReceive(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo); - -static void openthread_ipc_callback(int pid, int len, int buf, - __attribute__((unused)) void* ud) { - // A client has requested us to provide them the current temperature value. - // We must make sure that it provides us with a buffer sufficiently large to - // store a single integer: - if (len < ((int) sizeof(prior_global_temperature_setpoint))) { - // We do not inform the caller and simply return. We do print a log message: - puts("[thread] ERROR: sensor IPC invoked with too small buffer.\r\n"); - } - - // copy value in buffer to local_temperature_setpoint - uint8_t passed_local_setpoint = *((uint8_t*) buf); - if (passed_local_setpoint != local_temperature_setpoint) { - // The local setpoint has changed, update it. - local_temperature_setpoint = passed_local_setpoint; - send_local_temp = true; - } - - if (network_up) { - if (prior_global_temperature_setpoint != global_temperature_setpoint) { - prior_global_temperature_setpoint = global_temperature_setpoint; - - // The buffer is large enough, copy the current temperature into it. - memcpy((void*) buf, &global_temperature_setpoint, sizeof(global_temperature_setpoint)); - - // Notify the client that the temperature has changed. - ipc_notify_client(pid); - } - } -} - -// helper utility demonstrating network config setup -static void setNetworkConfiguration(otInstance* aInstance); - -// callback for Thread state change events -static void stateChangeCallback(uint32_t flags, void* context); - -// helper utility to print ip address -static void print_ip_addr(otInstance* instance); - -int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) { - // Initialize OpenThread instance. - otSysInit(argc, argv); - otInstance* instance; - instance = otInstanceInitSingle(); - assert(instance); - - // Register this application as an IPC service under its name: - ipc_register_service_callback("org.tockos.thread-tutorial.openthread", - openthread_ipc_callback, - NULL); - - /* As part of the initialization, we will: - - Init dataset with the following properties: - - channel: 26 - - network key: 0x00112233445566778899aabbccddeeff - - PAN ID: 0xabcd - - configure ip addr (ifconfig up) - - start thread network (thread start) - */ - - setNetworkConfiguration(instance); - - // set child timeout to 60 seconds - otThreadSetChildTimeout(instance, 60); - - /* Start the Thread network interface (CLI cmd -> ifconfig up) */ - while (otIp6SetEnabled(instance, true) != OT_ERROR_NONE) { - printf("Failed to start Thread network interface!\n"); - libtocksync_alarm_delay_ms(100); - } - - otSetStateChangedCallback(instance, stateChangeCallback, instance); - - print_ip_addr(instance); - - // Initialize UDP socket (see guide: https://openthread.io/codelabs/openthread-apis#7) - initUdp(instance); - - /* Start the Thread stack (CLI cmd -> thread start) */ - while (otThreadSetEnabled(instance, true) != OT_ERROR_NONE) { - printf("Failed to start Thread stack!\n"); - libtocksync_alarm_delay_ms(100); - } - - for ( ;;) { - otTaskletsProcess(instance); - otSysProcessDrivers(instance); - - if (send_local_temp) { - sendUdp(instance); - send_local_temp = false; - } - - if (!otTaskletsArePending(instance) && !openthread_platform_pending_work()) { - yield(); - } - - } - - return 0; -} - -void setNetworkConfiguration(otInstance* aInstance) { - otOperationalDataset aDataset; - - memset(&aDataset, 0, sizeof(otOperationalDataset)); - - /* Set Channel to 26 */ - aDataset.mChannel = 26; - aDataset.mComponents.mIsChannelPresent = true; - - /* Set Pan ID to abcd */ - aDataset.mPanId = (otPanId)0xabcd; - aDataset.mComponents.mIsPanIdPresent = true; - - /* Set network key to 00112233445566778899aabbccddeeff */ - uint8_t key[OT_NETWORK_KEY_SIZE] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; - memcpy(aDataset.mNetworkKey.m8, key, sizeof(aDataset.mNetworkKey)); - aDataset.mComponents.mIsNetworkKeyPresent = true; - - otError error = otDatasetSetActive(aInstance, &aDataset); - assert(error == 0); - -} - -static void stateChangeCallback(uint32_t flags, void* context) { - otInstance* instance = (otInstance*)context; - if (!(flags & OT_CHANGED_THREAD_ROLE)) { - return; - } - - switch (otThreadGetDeviceRole(instance)) { - case OT_DEVICE_ROLE_DISABLED: - printf("[State Change] - Disabled.\n"); - break; - case OT_DEVICE_ROLE_DETACHED: - printf("[State Change] - Detached.\n"); - break; - case OT_DEVICE_ROLE_CHILD: - network_up = true; - sendUdp(instance); - printf("[State Change] - Child.\n"); - printf("Successfully attached to Thread network as a child.\n"); - break; - case OT_DEVICE_ROLE_ROUTER: - printf("[State Change] - Router.\n"); - break; - case OT_DEVICE_ROLE_LEADER: - printf("[State Change] - Leader.\n"); - break; - default: - break; - } -} - -static void print_ip_addr(otInstance* instance) { - char addr_string[64]; - const otNetifAddress* unicastAddrs = otIp6GetUnicastAddresses(instance); - - printf("[THREAD] Device IPv6 Addresses: "); - for (const otNetifAddress* addr = unicastAddrs; addr; addr = addr->mNext) { - const otIp6Address ip6_addr = addr->mAddress; - otIp6AddressToString(&ip6_addr, addr_string, sizeof(addr_string)); - printf("%s\n", addr_string); - } -} - -void handleUdpReceive(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo) { - OT_UNUSED_VARIABLE(aContext); - OT_UNUSED_VARIABLE(aMessageInfo); - char buf[2]; - - const otIp6Address sender_addr = aMessageInfo->mPeerAddr; - otIp6AddressToString(&sender_addr, buf, sizeof(buf)); - - otMessageRead(aMessage, otMessageGetOffset(aMessage), buf, sizeof(buf) - 1); - global_temperature_setpoint = buf[0]; -} - -void initUdp(otInstance* aInstance) { - otSockAddr listenSockAddr; - - memset(&sUdpSocket, 0, sizeof(sUdpSocket)); - memset(&listenSockAddr, 0, sizeof(listenSockAddr)); - - listenSockAddr.mPort = UDP_PORT; - - otUdpOpen(aInstance, &sUdpSocket, handleUdpReceive, aInstance); - otUdpBind(aInstance, &sUdpSocket, &listenSockAddr, OT_NETIF_THREAD); -} - -void sendUdp(otInstance* aInstance) { - - otError error = OT_ERROR_NONE; - otMessage* message; - otMessageInfo messageInfo; - otIp6Address destinationAddr; - - memset(&messageInfo, 0, sizeof(messageInfo)); - - otIp6AddressFromString(UDP_ROUTER_MULTICAST, &destinationAddr); - messageInfo.mPeerAddr = destinationAddr; - messageInfo.mPeerPort = UDP_PORT; - - message = otUdpNewMessage(aInstance, NULL); - if (message == NULL) { - printf("Error creating udp message\n"); - return; - } - - error = otMessageAppend(message, &local_temperature_setpoint, sizeof(local_temperature_setpoint)); - if (error != OT_ERROR_NONE && message != NULL) { - printf("Error appending to udp message\n"); - otMessageFree(message); - return; - } - - error = otUdpSend(aInstance, &sUdpSocket, message, &messageInfo); - if (error != OT_ERROR_NONE && message != NULL) { - printf("Error sending udp packet\n"); - otMessageFree(message); - } -} diff --git a/examples/tutorials/thread_network/09_screen_button/.tab b/examples/tutorials/thread_network/07_screen_button/.tab similarity index 88% rename from examples/tutorials/thread_network/09_screen_button/.tab rename to examples/tutorials/thread_network/07_screen_button/.tab index 12ecd7e7d66c88097f08b0195ff7dc8b746d937f..98cc810c11abd05b5962d840545e0a68940f2561 100644 GIT binary patch delta 4388 zcmb`Kdr(w$6vuz(w+~hx3o9_V0=a^Vnx)G_Ov&73A7J1BjZIlNQetL9BNn|z$xBE? z6Pc~_^Hq>#n9)?cu8c~OgQB9+Q>Lkr#xZoJKXgWC)E;#1{q0>~-56+gXU_Z%=lu5G z-M0YLWQQ#FAHgKO7f!Av_&bF$AVib3U@)XI+TLL9i~l$e0Q=ocKX#QLWqu# zw{Y1MjVtDbm|w=VffCa1epYJ_O}sfYl;hI1ky+YrTMlZ4sLlJMh_H?jLE85R##M~( zDG`of{TRjxjK713VAc`gEan$5Dk6!nDTI(4xEc*acpCFE3`;N}A!;JvZRJ--1QDWx ziQvRNJMg;FnSR6C9$ZUse`yGDUwHgE_v|<`ZJLd`nr1h<4$_EO9SL92oE0}!c%0gf z(yW%A?3=bbt9@@?^;hj}UlNl>k}YZJ$(9sLN~(oeEXk?q(&{!qu?S(H0?1_=JQVU_6!dQu1QVi?LP=gha3p^{^tWL2bA)>C^(V+7zkj7B%6poDVuh+T1T1@KIt-33(!JWSMeA~-(( zS~-es8f?aH*EE>#?Ost1Dh8Qg8O8R)36LnYx8ES4j%&)B#hL_&#%qi9iBLe{6L!rE zd0=L?BsfophFIwqXf1grOl=Y{GJV2dtzWM;b>hAzT$TO0aGpzbrPhjlV&T{>H>yo# z7-<;W3xip4^j(8BNdvPLZ6FWt=W4^Q8-G5?zbEbY)m&x)yV~9`Mj*<8)=-L6>}=fYD`F=yGzpoSZHv zr_06Za(U>=_MwX(#kQ2wwbX|$xhn=e=%Fjuhc4c($@S2+%tKe6Ke{rkLRf}1(V?sDQ!p^UTUs-De z9A>3!K+PXbS=2g-bs8XLGSLQC@%NLToAaGd;1fvw6!gVSE;54QK$XU+JuWUH*I%Mf| z8dsH5`xAf904u;PU=`PGfo&09!8$TZaNWcN*LelA@d@5Brrd&S-+KXC%KKvPV!x< zI7z#A)=L?m^-|_L>#-)ydN);^q@B-tHy#$9?G^yXeTLm#h?bto#b9R+DYp^3c`mLlcV+0)s<_sVxPRM z(B(k797vag)Ab$F)jmK+I7!QBpK);l&*Vp0|3&(X$4OqI<8qR}|MxR_5i_Y&F3Cx% MRDqqkY85m53x5lc^#A|> delta 4278 zcmb`Je@s(X6vywmEp7Q#sD(fUwLk!k(G^hKtj=~VP_zcvKO2)p7I13fGUk?z#a|Br z*@i#HD!cw5^T#AkqnShDX~c;miV~ds;mERO8H<@{;vbs1MBFlV-n)Ip);6Oul9PKl z=l0(BO+S6-E1ZZCPQ;w5pivgf!ufd%bMs$|I&JuEA9Sc=D7@;4)ntI%lcPyVyO%%+ z(Gjv8m)b;JF|WY<4z33&AvZm5X&kz=M`L5l3U!^QyEQ_>mLmy7SWAc??YW0>AL9lk z!a1y8#OTEs)e<31M}&UNf5zBkB*MmMLLT6nXduEG%-_SXL=mD@69KQ3|2pG|V2C1u z9rx_PbEW6`1#4}%uEYH`(ZuuXiuIm3shRZDEYx&rR!8Ak8lV1+YFYUs6+X<)b2UZe z;_0idNA{0wHZqv{W4hB0TLm!@_ccba6eFyS&Mr&+ zLCjX0>yH+(T}IdhMPh6Ml&e6?Rwuy$h-TVkSZUOaA!L}|OHNy|P=20Ql8 zC&R9|=DjSQkP)Hh7+m)>HM4RPq|obo+50ANf}5Q;p<=fgu@qQ> z%iR=UxYVWMc^`?rsc;wY`jgY4(SY|RJS2ki$8lBmYvOn=)syjeI7|f`ra}%=p%*4s08IQ=M=^(~ zH~=QOD@HE$!sHHsiMN~GUYM49VJZm$lhw94)@ri_M6lYB-fHW{eaCTC_G{vJF4dJ< z2lk0>V2SkBC^cDaH5e8Q8K##xOkI`mm>T(ugV>D`5!p%jVp~nBSX>p9WK=$tqhMD5o~jH?oxMML6-M_fz?%k5d^Wd3eo^7nHUeND2Zd!4X_BzY{e=_;jf`0 zS{ccD43L{()lxJ!|}$50?qeqcx-G$7|vj~w}OBN zt*(bU(?MN~&R&S0mYY49N+vL9zyv8eA%ysMI~7q@LkYJ0~l(Yh0=d$H5cdYG0UA`+`foHc_elp`_mCQb#5$^^Q;K zd|B#IAHbtwN*xU@^)DP!?VYUF0EPcS@ZX`dCR3SU6P+Z%Q>j95LBQ8Kn}+ve4WV@o zo#2mkE)DTxUCN~{o2*o~PwJ`wsjvS(Qddq?YGo*?8@bd?la;!ePSXb&==r&MPg=t9 zf&R{hcHcnXNyBu94nEL#QSJ^~sO%0uql!Cp_y)R^@qsR7fdd_D(m?l6#T`2MK=)AD z9qy*w9WpAr!#y<69ZF|D(?H)#z3y;7mEGZfD!aq|RCb4LRCb4Ll)J+(sJ}bpw>l0` z*&QCB{_arjijfB?cZY|mzdPjZ=EIb`!!Id!hwU`DJ9OYcci=Ggk6^VSy#oij0|)x} zUQHa&rMhxP2lk0eafc2Z=nfp{4r!o+OWZjV*315|i*5sp*t8wLiE(J`8^@tJ8!j|X z4$V0)H0L=q-9BiXK4_$jLnCE@&|po1=7J9zCx_+&hvr)^G?zFu-#rD5bmlWb)2l#p znL~4#Lvxu!bA>~5#S6{V0BHEFj%ys6YXQ*6T`{uX3(Y_PG`!tB;DzS87n&O(pm8EJ zPW;0CBUo)n??h;v2+jCjO&rgqx^hMb_DQV*jT519A~a4Jnpz(;UBlGp11l2cTzVupVKMpZtu diff --git a/examples/tutorials/thread_network/09_screen_button/Makefile b/examples/tutorials/thread_network/07_screen_button/Makefile similarity index 100% rename from examples/tutorials/thread_network/09_screen_button/Makefile rename to examples/tutorials/thread_network/07_screen_button/Makefile diff --git a/examples/tutorials/thread_network/09_screen_button/main.c b/examples/tutorials/thread_network/07_screen_button/main.c similarity index 91% rename from examples/tutorials/thread_network/09_screen_button/main.c rename to examples/tutorials/thread_network/07_screen_button/main.c index f80a24975..2d2edf5eb 100644 --- a/examples/tutorials/thread_network/09_screen_button/main.c +++ b/examples/tutorials/thread_network/07_screen_button/main.c @@ -8,6 +8,7 @@ static void button_callback(returncode_t ret, int btn_num, bool pressed) { + if (ret != RETURNCODE_SUCCESS) return; if (pressed) { printf("Button %i pressed!\r\n", btn_num); diff --git a/examples/tutorials/thread_network/08_screen_u8g2/.tab b/examples/tutorials/thread_network/08_screen_u8g2/.tab new file mode 100644 index 0000000000000000000000000000000000000000..3a175e3f1c1d932bdda2b0c52c82927df1f38a92 GIT binary patch literal 258048 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

4fkngT7mK2i=Jc@nq>6V`fTj@Ef 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 R3M43ypg@8Ge~%RS{{hFzp4$Kb literal 0 HcmV?d00001 diff --git a/examples/tutorials/thread_network/05_controller_final/Makefile b/examples/tutorials/thread_network/08_screen_u8g2/Makefile similarity index 88% rename from examples/tutorials/thread_network/05_controller_final/Makefile rename to examples/tutorials/thread_network/08_screen_u8g2/Makefile index bf65c96b6..2d56ef7d2 100644 --- a/examples/tutorials/thread_network/05_controller_final/Makefile +++ b/examples/tutorials/thread_network/08_screen_u8g2/Makefile @@ -6,9 +6,9 @@ TOCK_USERLAND_BASE_DIR = ../../../../ # Which files to compile. C_SRCS := $(wildcard *.c) -PACKAGE_NAME = thread_controller +PACKAGE_NAME = screen -STACK_SIZE = 4096 +STACK_SIZE = 4096 EXTERN_LIBS += $(TOCK_USERLAND_BASE_DIR)/u8g2 # Include userland master makefile. Contains rules and flags for actually diff --git a/examples/tutorials/thread_network/10_screen_u8g2/main.c b/examples/tutorials/thread_network/08_screen_u8g2/main.c similarity index 70% rename from examples/tutorials/thread_network/10_screen_u8g2/main.c rename to examples/tutorials/thread_network/08_screen_u8g2/main.c index bd35e5492..3d5f22940 100644 --- a/examples/tutorials/thread_network/10_screen_u8g2/main.c +++ b/examples/tutorials/thread_network/08_screen_u8g2/main.c @@ -5,14 +5,23 @@ #include +#include +#include + +// Global reference to the u8g2 context: +u8g2_t u8g2; + +// Helper method to update and format u8g2 screen. +static void update_screen(void); + uint8_t global_temperature_setpoint = 0; uint8_t local_temperature_setpoint = 22; uint8_t measured_temperature = 0; - static void button_callback(returncode_t ret, int btn_num, bool pressed) { + if (ret != RETURNCODE_SUCCESS) return; if (pressed) { printf("Button %i pressed!\r\n", btn_num); @@ -20,6 +29,11 @@ static void button_callback(returncode_t ret, } int main(void) { + // Init u8g2 + u8g2_tock_init(&u8g2); + u8g2_SetFont(&u8g2, u8g2_font_profont12_tr); + u8g2_SetFontPosTop(&u8g2); + for (int i = 0; i < 4; i++){ libtock_button_notify_on_press(i, button_callback); } @@ -45,9 +59,13 @@ static void update_screen(void) { "Global Set Point: %d", global_temperature_setpoint); - sprintf(temperature_current_measure_str, - "Measured Temp: %d", - measured_temperature); + uint8_t whole_temp = measured_temperature / 100; + uint8_t decimal_temp = measured_temperature % 100; + + sprintf(temperature_current_measure_str, + "Measured Temp: %d.%d", + whole_temp, + decimal_temp ); // Use u8g2 library to draw each string. u8g2_ClearBuffer(&u8g2); diff --git a/examples/tutorials/thread_network/09_screen_final/.tab b/examples/tutorials/thread_network/09_screen_final/.tab new file mode 100644 index 0000000000000000000000000000000000000000..720bc31d6aa3516625c8c46bfa8030c7a6c71496 GIT binary patch literal 297472 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 literal 0 HcmV?d00001 diff --git a/examples/tutorials/thread_network/04_controller_thread/Makefile b/examples/tutorials/thread_network/09_screen_final/Makefile similarity index 88% rename from examples/tutorials/thread_network/04_controller_thread/Makefile rename to examples/tutorials/thread_network/09_screen_final/Makefile index bf65c96b6..2d56ef7d2 100644 --- a/examples/tutorials/thread_network/04_controller_thread/Makefile +++ b/examples/tutorials/thread_network/09_screen_final/Makefile @@ -6,9 +6,9 @@ TOCK_USERLAND_BASE_DIR = ../../../../ # Which files to compile. C_SRCS := $(wildcard *.c) -PACKAGE_NAME = thread_controller +PACKAGE_NAME = screen -STACK_SIZE = 4096 +STACK_SIZE = 4096 EXTERN_LIBS += $(TOCK_USERLAND_BASE_DIR)/u8g2 # Include userland master makefile. Contains rules and flags for actually diff --git a/examples/tutorials/thread_network/11_screen_final/main.c b/examples/tutorials/thread_network/09_screen_final/main.c similarity index 86% rename from examples/tutorials/thread_network/11_screen_final/main.c rename to examples/tutorials/thread_network/09_screen_final/main.c index f4777a8aa..4f162f80b 100644 --- a/examples/tutorials/thread_network/11_screen_final/main.c +++ b/examples/tutorials/thread_network/09_screen_final/main.c @@ -5,6 +5,15 @@ #include +#include +#include + +// Global reference to the u8g2 context. +u8g2_t u8g2; + +// Helper method to update and format u8g2 screen. +static void update_screen(void); + uint8_t global_temperature_setpoint = 0; uint8_t local_temperature_setpoint = 22; uint8_t measured_temperature = 0; @@ -31,6 +40,11 @@ static void button_callback(returncode_t ret, } int main(void) { + // Init u8g2 + u8g2_tock_init(&u8g2); + u8g2_SetFont(&u8g2, u8g2_font_profont12_tr); + u8g2_SetFontPosTop(&u8g2); + for (int i = 0; i < 4; i++){ libtock_button_notify_on_press(i, button_callback); } diff --git a/examples/tutorials/thread_network/10_screen_u8g2/.tab b/examples/tutorials/thread_network/10_screen_u8g2/.tab deleted file mode 100644 index 12ecd7e7d66c88097f08b0195ff7dc8b746d937f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202240 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�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 HDhT|43KxDV diff --git a/examples/tutorials/thread_network/10_screen_u8g2/Makefile b/examples/tutorials/thread_network/10_screen_u8g2/Makefile deleted file mode 100644 index 0748e329c..000000000 --- a/examples/tutorials/thread_network/10_screen_u8g2/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Makefile for user application - -# Specify this directory relative to the current application. -TOCK_USERLAND_BASE_DIR = ../../../../ - -# Which files to compile. -C_SRCS := $(wildcard *.c) - -PACKAGE_NAME = screen - -# Include userland master makefile. Contains rules and flags for actually -# building the application. -include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/11_screen_final/.tab b/examples/tutorials/thread_network/11_screen_final/.tab deleted file mode 100644 index 12ecd7e7d66c88097f08b0195ff7dc8b746d937f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202240 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�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 HDhT|43KxDV diff --git a/examples/tutorials/thread_network/11_screen_final/Makefile b/examples/tutorials/thread_network/11_screen_final/Makefile deleted file mode 100644 index 0748e329c..000000000 --- a/examples/tutorials/thread_network/11_screen_final/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Makefile for user application - -# Specify this directory relative to the current application. -TOCK_USERLAND_BASE_DIR = ../../../../ - -# Which files to compile. -C_SRCS := $(wildcard *.c) - -PACKAGE_NAME = screen - -# Include userland master makefile. Contains rules and flags for actually -# building the application. -include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/screen/openthread_app/Makefile b/examples/tutorials/thread_network/screen/openthread_app/Makefile deleted file mode 100644 index de74ba3aa..000000000 --- a/examples/tutorials/thread_network/screen/openthread_app/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Makefile for user application - -# Specify this directory relative to the current application. -TOCK_USERLAND_BASE_DIR = ../../../../../ - -# Which files to compile. -C_SRCS := $(wildcard *.c) - -# Specify this app depends on the MTD OpenThread library. -include $(TOCK_USERLAND_BASE_DIR)/libopenthread/libopenthread-mtd.mk - -# set stack size to 8000 to support openthread app -STACK_SIZE:=8000 -APP_HEAP_SIZE:=5000 - -PACKAGE_NAME = org.tockos.thread-tutorial.openthread - -# Include userland master makefile. Contains rules and flags for actually -# building the application. -include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/screen/openthread_app/main.c b/examples/tutorials/thread_network/screen/openthread_app/main.c deleted file mode 100644 index 82ec813a9..000000000 --- a/examples/tutorials/thread_network/screen/openthread_app/main.c +++ /dev/null @@ -1,263 +0,0 @@ -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#define UDP_PORT 1212 -static const char UDP_ROUTER_MULTICAST[] = "ff02::2"; - -static otUdpSocket sUdpSocket; -static void initUdp(otInstance* aInstance); -static void sendUdp(otInstance* aInstance); - -uint8_t local_temperature_setpoint = 22; -uint8_t global_temperature_setpoint = 255; -uint8_t prior_global_temperature_setpoint = 255; -bool network_up = false; -bool send_local_temp = false; - -// Callback method for received udp packets. -static void handleUdpReceive(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo); - -static void openthread_ipc_callback(int pid, int len, int buf, - __attribute__((unused)) void* ud) { - // A client has requested us to provide them the current temperature value. - // We must make sure that it provides us with a buffer sufficiently large to - // store a single integer: - if (len < ((int) sizeof(prior_global_temperature_setpoint))) { - // We do not inform the caller and simply return. We do print a log message: - puts("[thread] ERROR: sensor IPC invoked with too small buffer.\r\n"); - } - - // copy value in buffer to local_temperature_setpoint - uint8_t passed_local_setpoint = *((uint8_t*) buf); - if (passed_local_setpoint != local_temperature_setpoint) { - // The local setpoint has changed, update it. - local_temperature_setpoint = passed_local_setpoint; - send_local_temp = true; - } - - if (network_up) { - if (prior_global_temperature_setpoint != global_temperature_setpoint) { - prior_global_temperature_setpoint = global_temperature_setpoint; - - // The buffer is large enough, copy the current temperature into it. - memcpy((void*) buf, &global_temperature_setpoint, sizeof(global_temperature_setpoint)); - - // Notify the client that the temperature has changed. - ipc_notify_client(pid); - } - } -} - -// helper utility demonstrating network config setup -static void setNetworkConfiguration(otInstance* aInstance); - -// callback for Thread state change events -static void stateChangeCallback(uint32_t flags, void* context); - -// helper utility to print ip address -static void print_ip_addr(otInstance* instance); - -int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) { - // Initialize OpenThread instance. - otSysInit(argc, argv); - otInstance* instance; - instance = otInstanceInitSingle(); - assert(instance); - - // Register this application as an IPC service under its name: - ipc_register_service_callback("org.tockos.thread-tutorial.openthread", - openthread_ipc_callback, - NULL); - - /* As part of the initialization, we will: - - Init dataset with the following properties: - - channel: 26 - - network key: 0x00112233445566778899aabbccddeeff - - PAN ID: 0xabcd - - configure ip addr (ifconfig up) - - start thread network (thread start) - */ - - setNetworkConfiguration(instance); - - // set child timeout to 60 seconds - otThreadSetChildTimeout(instance, 60); - - /* Start the Thread network interface (CLI cmd -> ifconfig up) */ - while (otIp6SetEnabled(instance, true) != OT_ERROR_NONE) { - printf("Failed to start Thread network interface!\n"); - libtocksync_alarm_delay_ms(100); - } - - otSetStateChangedCallback(instance, stateChangeCallback, instance); - - print_ip_addr(instance); - - // Initialize UDP socket (see guide: https://openthread.io/codelabs/openthread-apis#7) - initUdp(instance); - - /* Start the Thread stack (CLI cmd -> thread start) */ - while (otThreadSetEnabled(instance, true) != OT_ERROR_NONE) { - printf("Failed to start Thread stack!\n"); - libtocksync_alarm_delay_ms(100); - } - - for ( ;;) { - otTaskletsProcess(instance); - otSysProcessDrivers(instance); - - if (send_local_temp) { - sendUdp(instance); - send_local_temp = false; - } - - if (!otTaskletsArePending(instance) && !openthread_platform_pending_work()) { - yield(); - } - - } - - return 0; -} - -void setNetworkConfiguration(otInstance* aInstance) { - otOperationalDataset aDataset; - - memset(&aDataset, 0, sizeof(otOperationalDataset)); - - /* Set Channel to 26 */ - aDataset.mChannel = 26; - aDataset.mComponents.mIsChannelPresent = true; - - /* Set Pan ID to abcd */ - aDataset.mPanId = (otPanId)0xabcd; - aDataset.mComponents.mIsPanIdPresent = true; - - /* Set network key to 00112233445566778899aabbccddeeff */ - uint8_t key[OT_NETWORK_KEY_SIZE] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; - memcpy(aDataset.mNetworkKey.m8, key, sizeof(aDataset.mNetworkKey)); - aDataset.mComponents.mIsNetworkKeyPresent = true; - - otError error = otDatasetSetActive(aInstance, &aDataset); - assert(error == 0); - -} - -static void stateChangeCallback(uint32_t flags, void* context) { - otInstance* instance = (otInstance*)context; - if (!(flags & OT_CHANGED_THREAD_ROLE)) { - return; - } - - switch (otThreadGetDeviceRole(instance)) { - case OT_DEVICE_ROLE_DISABLED: - printf("[State Change] - Disabled.\n"); - break; - case OT_DEVICE_ROLE_DETACHED: - printf("[State Change] - Detached.\n"); - break; - case OT_DEVICE_ROLE_CHILD: - network_up = true; - sendUdp(instance); - printf("[State Change] - Child.\n"); - printf("Successfully attached to Thread network as a child.\n"); - break; - case OT_DEVICE_ROLE_ROUTER: - printf("[State Change] - Router.\n"); - break; - case OT_DEVICE_ROLE_LEADER: - printf("[State Change] - Leader.\n"); - break; - default: - break; - } -} - -static void print_ip_addr(otInstance* instance) { - char addr_string[64]; - const otNetifAddress* unicastAddrs = otIp6GetUnicastAddresses(instance); - - printf("[THREAD] Device IPv6 Addresses: "); - for (const otNetifAddress* addr = unicastAddrs; addr; addr = addr->mNext) { - const otIp6Address ip6_addr = addr->mAddress; - otIp6AddressToString(&ip6_addr, addr_string, sizeof(addr_string)); - printf("%s\n", addr_string); - } -} - -void handleUdpReceive(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo) { - OT_UNUSED_VARIABLE(aContext); - OT_UNUSED_VARIABLE(aMessageInfo); - char buf[2]; - - const otIp6Address sender_addr = aMessageInfo->mPeerAddr; - otIp6AddressToString(&sender_addr, buf, sizeof(buf)); - - otMessageRead(aMessage, otMessageGetOffset(aMessage), buf, sizeof(buf) - 1); - global_temperature_setpoint = buf[0]; -} - -void initUdp(otInstance* aInstance) { - otSockAddr listenSockAddr; - - memset(&sUdpSocket, 0, sizeof(sUdpSocket)); - memset(&listenSockAddr, 0, sizeof(listenSockAddr)); - - listenSockAddr.mPort = UDP_PORT; - - otUdpOpen(aInstance, &sUdpSocket, handleUdpReceive, aInstance); - otUdpBind(aInstance, &sUdpSocket, &listenSockAddr, OT_NETIF_THREAD); -} - -void sendUdp(otInstance* aInstance) { - - otError error = OT_ERROR_NONE; - otMessage* message; - otMessageInfo messageInfo; - otIp6Address destinationAddr; - - memset(&messageInfo, 0, sizeof(messageInfo)); - - otIp6AddressFromString(UDP_ROUTER_MULTICAST, &destinationAddr); - messageInfo.mPeerAddr = destinationAddr; - messageInfo.mPeerPort = UDP_PORT; - - message = otUdpNewMessage(aInstance, NULL); - if (message == NULL) { - printf("Error creating udp message\n"); - return; - } - - error = otMessageAppend(message, &local_temperature_setpoint, sizeof(local_temperature_setpoint)); - if (error != OT_ERROR_NONE && message != NULL) { - printf("Error appending to udp message\n"); - otMessageFree(message); - return; - } - - error = otUdpSend(aInstance, &sUdpSocket, message, &messageInfo); - if (error != OT_ERROR_NONE && message != NULL) { - printf("Error sending udp packet\n"); - otMessageFree(message); - } -} diff --git a/examples/tutorials/thread_network/screen/temperature_controller/Makefile b/examples/tutorials/thread_network/screen/temperature_controller/Makefile deleted file mode 100644 index 2563ad044..000000000 --- a/examples/tutorials/thread_network/screen/temperature_controller/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# Makefile for user application - -# Specify this directory relative to the current application. -TOCK_USERLAND_BASE_DIR = ../../../../.. - -# Which files to compile. -C_SRCS := $(wildcard *.c) - -PACKAGE_NAME = thread_controller - -STACK_SIZE = 4096 -EXTERN_LIBS += $(TOCK_USERLAND_BASE_DIR)/u8g2 - -# Include userland master makefile. Contains rules and flags for actually -# building the application. -include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk \ No newline at end of file diff --git a/examples/tutorials/thread_network/screen/temperature_controller/main.c b/examples/tutorials/thread_network/screen/temperature_controller/main.c deleted file mode 100644 index b70c92d47..000000000 --- a/examples/tutorials/thread_network/screen/temperature_controller/main.c +++ /dev/null @@ -1,208 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include - -u8g2_t u8g2; - -size_t sensor_svc_num = 0; -size_t openthread_svc_num = 0; - -uint8_t global_temperature_setpoint = 0; -uint8_t prior_global_temperature_setpoint = 255; - -uint8_t local_temperature_setpoint = 22; -uint8_t prior_local_temperature_setpoint = 255; - -int measured_temperature = 0; -int prior_measured_temperature = 0; - -bool network_up = false; - -// Callback event indicator -bool callback_event = false; - -libtock_alarm_t read_temperature_timer; -libtock_alarm_t network_timer; - -// We use this variable as a buffer that is naturally aligned to the int -// alignment, and has an alignment >= its size. -uint8_t temperature_buffer[64] __attribute__((aligned(64))); -uint8_t openthread_buffer[64] __attribute__((aligned(64))); - -static void update_screen(void); -static int init_controller_ipc(void); - - -static void read_temperature_timer_callback(__attribute__ ((unused)) uint32_t now, - __attribute__ ((unused)) uint32_t scheduled, - __attribute__ ((unused)) void* opaque) { - // Request a new temperature reading from the sensor: - ipc_notify_service(sensor_svc_num); -} - - -static void update_network_timer_callback(__attribute__ ((unused)) uint32_t now, - __attribute__ ((unused)) uint32_t scheduled, - __attribute__ ((unused)) void* opaque) { - openthread_buffer[0] = local_temperature_setpoint; - ipc_notify_service(openthread_svc_num); - libtock_alarm_in_ms(250, update_network_timer_callback, NULL, &network_timer); - -} - -static void sensor_callback(__attribute__ ((unused)) int pid, - __attribute__ ((unused)) int len, - __attribute__ ((unused)) int arg2, - __attribute__ ((unused)) void* ud) { - // update measured temperature - measured_temperature = *((int*) &temperature_buffer[0]); - - // Indicate that we have received a callback. - callback_event = true; - - // Request a new temperature reading in 250ms: - libtock_alarm_in_ms(250, read_temperature_timer_callback, NULL, &read_temperature_timer); -} - -static void openthread_callback(__attribute__ ((unused)) int pid, - __attribute__ ((unused)) int len, - __attribute__ ((unused)) int arg2, - __attribute__ ((unused)) void* ud) { - network_up = true; - - // update setpoint temperature - global_temperature_setpoint = *((int*) &openthread_buffer[0]); - - // Indicate that we have received a callback. - callback_event = true; - -} - -static void button_callback(returncode_t ret, - int btn_num, - bool pressed) { - if (ret != RETURNCODE_SUCCESS) return; - - if (pressed) { - if (btn_num == 0 && local_temperature_setpoint < 35) { - local_temperature_setpoint++; - } else if (btn_num == 1 && local_temperature_setpoint > 0) { - local_temperature_setpoint--; - } else if (btn_num == 2) { - local_temperature_setpoint = 22; - } - } - - // Indicate that we have received a callback. - callback_event = true; - - return; -} - -int main(void) { - int err; - int i; - - u8g2_tock_init(&u8g2); - u8g2_SetFont(&u8g2, u8g2_font_profont12_tr); - u8g2_SetFontPosTop(&u8g2); - - init_controller_ipc(); - - // Enable buttons - for (i = 0; i < 3; i++) { - err = libtock_button_notify_on_press(i, button_callback); - if (err < 0) return err; - } - - ipc_notify_service(sensor_svc_num); - libtock_alarm_in_ms(500, update_network_timer_callback, NULL, &network_timer); - - for ( ;;) { - callback_event = false; - yield_for(&callback_event); - - if (measured_temperature != prior_measured_temperature - || global_temperature_setpoint != prior_global_temperature_setpoint - || local_temperature_setpoint != prior_local_temperature_setpoint) { - prior_measured_temperature = measured_temperature; - prior_global_temperature_setpoint = global_temperature_setpoint; - prior_local_temperature_setpoint = local_temperature_setpoint; - update_screen(); - } - } -} - -static int init_controller_ipc(void) { - int err = -1; - int discover_retry_count = 0; - int err_sensor = -1; - int err_openthread = -1; - - while (err_sensor < 0 && err_openthread < 0 && discover_retry_count < 100) { - err_sensor = ipc_discover("org.tockos.thread-tutorial.sensor", &sensor_svc_num); - err_openthread = ipc_discover("org.tockos.thread-tutorial.openthread", &openthread_svc_num); - discover_retry_count++; - if (err < 0) { - libtocksync_alarm_delay_ms(10); - } - } - - if (err_sensor < 0) { - printf("No sensor service\r\n"); - return -1; - } - - if (err_openthread < 0) { - printf("No openthread service\r\n"); - return -1; - } - - printf("[controller] Discovered sensor service: %d\r\n", sensor_svc_num); - printf("[controller] Discovered openthread service: %d\r\n", openthread_svc_num); - - ipc_register_client_callback(sensor_svc_num, sensor_callback, NULL); - ipc_register_client_callback(openthread_svc_num, openthread_callback, NULL); - - // rb->length = snprintf(rb->buf, sizeof(rb->buf), "Hello World!"); - ipc_share(sensor_svc_num, &temperature_buffer, sizeof(temperature_buffer)); - - ipc_share(openthread_svc_num, &openthread_buffer, sizeof(openthread_buffer)); - - return err; -} - -static void update_screen(void) { - char temperature_set_point_str[35]; - char temperature_global_set_point_str[35]; - char temperature_current_measure_str[35]; - sprintf(temperature_set_point_str, "Set Point: %d", local_temperature_setpoint); - - if (network_up) { - sprintf(temperature_global_set_point_str, "Global Set Point: %d", global_temperature_setpoint); - } else { - sprintf(temperature_global_set_point_str, "Global Set Point: N/A"); - } - - // print measured temperature as value XX.25 - sprintf(temperature_current_measure_str, "Measured Temp: %d.%02d", measured_temperature / 100, - measured_temperature % 100); - - u8g2_ClearBuffer(&u8g2); - u8g2_SetDrawColor(&u8g2, 1); - u8g2_DrawStr(&u8g2, 0, 0, temperature_set_point_str); - u8g2_DrawStr(&u8g2, 0, 25, temperature_global_set_point_str); - u8g2_DrawStr(&u8g2, 0, 50, temperature_current_measure_str); - u8g2_SendBuffer(&u8g2); -} diff --git a/examples/tutorials/thread_network/screen/temperature_sensor_app/Makefile b/examples/tutorials/thread_network/screen/temperature_sensor_app/Makefile deleted file mode 100644 index a55fe6dee..000000000 --- a/examples/tutorials/thread_network/screen/temperature_sensor_app/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Makefile for user application - -# Specify this directory relative to the current application. -TOCK_USERLAND_BASE_DIR = ../../../../.. - -# Which files to compile. -C_SRCS := $(wildcard *.c) - -# Include userland master makefile. Contains rules and flags for actually -# building the application. -include $(TOCK_USERLAND_BASE_DIR)/AppMakefile.mk diff --git a/examples/tutorials/thread_network/screen/temperature_sensor_app/main.c b/examples/tutorials/thread_network/screen/temperature_sensor_app/main.c deleted file mode 100644 index 3a92056a7..000000000 --- a/examples/tutorials/thread_network/screen/temperature_sensor_app/main.c +++ /dev/null @@ -1,50 +0,0 @@ -#include - -#include -#include -#include -#include - -// Global variable storing the current temperature. This is written to in the -// main loop, and read from in the IPC handler. Because the app is single -// threaded and has no yield point when writing the value, we do not need to -// worry about synchronization -- reads never happen during a write. -static int current_temperature = 0; - -static void sensor_ipc_callback(int pid, int len, int buf, - __attribute__((unused)) void* ud) { - // A client has requested us to provide them the current temperature value. - // We must make sure that it provides us with a buffer sufficiently large to - // store a single integer: - if (len < ((int) sizeof(current_temperature))) { - // We do not inform the caller and simply return. We do print a log message: - puts("[thread-sensor] ERROR: sensor IPC invoked with too small buffer.\r\n"); - } - - // The buffer is large enough, copy the current temperature into it: - memcpy((void*) buf, ¤t_temperature, sizeof(current_temperature)); - - // Let the client know: - ipc_notify_client(pid); -} - -int main(void) { - // Measure the temperature once before registering ourselves as an IPC - // service. This ensures that we always return a correct (but potentially - // stale) temperature value. - libtocksync_temperature_read(¤t_temperature); - - // Register this application as an IPC service under its name: - ipc_register_service_callback("org.tockos.thread-tutorial.sensor", - sensor_ipc_callback, - NULL); - - // We measure the temperature in the main loop and simply provide the latest - // reading in an IPC. This means that the control app does not have to wait - // for the temperature read system call to complete. - while (1) { - libtocksync_temperature_read(¤t_temperature); - // printf("Current temperature: %d\r\n", current_temperature); - libtocksync_alarm_delay_ms(1000); - } -} From c236b6ba1095b963fd647ea3b246273b2b799074 Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Fri, 6 Dec 2024 20:39:46 -0800 Subject: [PATCH 09/10] [Thread Tutorial] Formatting update --- .../01_sensor_temperature/main.c | 6 +-- .../thread_network/02_sensor_final/main.c | 10 ++-- .../thread_network/03_openthread/main.c | 26 +++++----- .../04_openthread_attach/main.c | 22 ++++---- .../thread_network/05_openthread_final/main.c | 28 +++++----- .../tutorials/thread_network/06_screen/main.c | 4 +- .../thread_network/07_screen_button/main.c | 8 +-- .../thread_network/08_screen_u8g2/main.c | 35 ++++++------- .../thread_network/09_screen_final/main.c | 25 +++++---- .../thread_network/10_screen_ipc/main.c | 52 +++++++++---------- .../thread_network/11_sensor_ipc/main.c | 10 ++-- .../thread_network/12_openthread_ipc/main.c | 31 +++++------ 12 files changed, 121 insertions(+), 136 deletions(-) diff --git a/examples/tutorials/thread_network/01_sensor_temperature/main.c b/examples/tutorials/thread_network/01_sensor_temperature/main.c index 4c5a162c0..0954e7d7c 100644 --- a/examples/tutorials/thread_network/01_sensor_temperature/main.c +++ b/examples/tutorials/thread_network/01_sensor_temperature/main.c @@ -12,10 +12,10 @@ int main(void) { libtocksync_temperature_read(¤t_temperature); // Convert temperature - int whole_degree = current_temperature / 100; + int whole_degree = current_temperature / 100; int decimal_degree = current_temperature % 100; - + printf("Hello World, the temperature is: %i.%i\r\n", whole_degree, decimal_degree); - + return 0; } diff --git a/examples/tutorials/thread_network/02_sensor_final/main.c b/examples/tutorials/thread_network/02_sensor_final/main.c index 22f235e13..45edc22cd 100644 --- a/examples/tutorials/thread_network/02_sensor_final/main.c +++ b/examples/tutorials/thread_network/02_sensor_final/main.c @@ -10,18 +10,18 @@ static int current_temperature = 0; int main(void) { // We measure the temperature in the main loop and - //print this value to the console. + // print this value to the console. while (1) { // Measure temperature -- returned in the form 2200 => 22C libtocksync_temperature_read(¤t_temperature); // Convert temperature - int whole_degree = current_temperature / 100; + int whole_degree = current_temperature / 100; int decimal_degree = current_temperature % 100; - + printf("Current temperature: %i.%i\r\n", whole_degree, decimal_degree); - - // Delay 1000 ms (1 second). + + // Delay 1000 ms (1 second). libtocksync_alarm_delay_ms(1000); } } diff --git a/examples/tutorials/thread_network/03_openthread/main.c b/examples/tutorials/thread_network/03_openthread/main.c index d8df90324..0c9125509 100644 --- a/examples/tutorials/thread_network/03_openthread/main.c +++ b/examples/tutorials/thread_network/03_openthread/main.c @@ -39,22 +39,22 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // Set callback to be notified when thread state changes. otSetStateChangedCallback(instance, stateChangeCallback, instance); - + /////////////////////////////////////////////////// - // THREAD NETWORK SETUP HERE + // THREAD NETWORK SETUP HERE // TODO: Configure network. // TODO: Enable network interface. - + // TODO: Start Thread network. - + // //////////////////////////////////////////////////// - + // OpenThread main loop. - for (;;) { - // Execute any pending OpenThread related work. + for ( ;;) { + // Execute any pending OpenThread related work. otTaskletsProcess(instance); // Execute any platform related work (e.g. check @@ -64,9 +64,8 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // If there is not pending platform or OpenThread // related work -- yield. if (!otTaskletsArePending(instance) && - !openthread_platform_pending_work()) - { - yield(); + !openthread_platform_pending_work()) { + yield(); } } @@ -77,9 +76,9 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // Helper method that configures the OpenThread network dataset // for the desired tutorial configuration. // We set the following dataset parameters: -// -- Channel: 26 -// -- PanId: 0xabcd -// -- Networkkey: 00112233445566778899aabbccddeeff +// -- Channel: 26 +// -- PanId: 0xabcd +// -- Networkkey: 00112233445566778899aabbccddeeff void setNetworkConfiguration(otInstance* aInstance) { otOperationalDataset aDataset; @@ -147,4 +146,3 @@ static void print_ip_addr(otInstance* instance) { printf("%s\n", addr_string); } } - diff --git a/examples/tutorials/thread_network/04_openthread_attach/main.c b/examples/tutorials/thread_network/04_openthread_attach/main.c index 53a35c17d..4d87dd654 100644 --- a/examples/tutorials/thread_network/04_openthread_attach/main.c +++ b/examples/tutorials/thread_network/04_openthread_attach/main.c @@ -39,9 +39,9 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // Set callback to be notified when thread state changes. otSetStateChangedCallback(instance, stateChangeCallback, instance); - + /////////////////////////////////////////////////// - // THREAD NETWORK SETUP HERE + // THREAD NETWORK SETUP HERE // Configure network. setNetworkConfiguration(instance); @@ -63,10 +63,10 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // //////////////////////////////////////////////////// - + // OpenThread main loop. - for (;;) { - // Execute any pending OpenThread related work. + for ( ;;) { + // Execute any pending OpenThread related work. otTaskletsProcess(instance); // Execute any platform related work (e.g. check @@ -76,9 +76,8 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // If there is not pending platform or OpenThread // related work -- yield. if (!otTaskletsArePending(instance) && - !openthread_platform_pending_work()) - { - yield(); + !openthread_platform_pending_work()) { + yield(); } } @@ -89,9 +88,9 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // Helper method that configures the OpenThread network dataset // for the desired tutorial configuration. // We set the following dataset parameters: -// -- Channel: 26 -// -- PanId: 0xabcd -// -- Networkkey: 00112233445566778899aabbccddeeff +// -- Channel: 26 +// -- PanId: 0xabcd +// -- Networkkey: 00112233445566778899aabbccddeeff void setNetworkConfiguration(otInstance* aInstance) { otOperationalDataset aDataset; @@ -159,4 +158,3 @@ static void print_ip_addr(otInstance* instance) { printf("%s\n", addr_string); } } - diff --git a/examples/tutorials/thread_network/05_openthread_final/main.c b/examples/tutorials/thread_network/05_openthread_final/main.c index dc5e556a8..f19ab6cab 100644 --- a/examples/tutorials/thread_network/05_openthread_final/main.c +++ b/examples/tutorials/thread_network/05_openthread_final/main.c @@ -26,7 +26,7 @@ static otUdpSocket sUdpSocket; void initUdp(otInstance* aInstance); void handleUdpRecvTemperature(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo); + const otMessageInfo* aMessageInfo); void sendUdpTemperature(otInstance* aInstance, uint8_t temperature); @@ -48,13 +48,13 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // Set callback to be notified when thread state changes. otSetStateChangedCallback(instance, stateChangeCallback, instance); - + /////////////////////////////////////////////////// - // THREAD NETWORK SETUP HERE + // THREAD NETWORK SETUP HERE // Configure network. setNetworkConfiguration(instance); - + // Init UDP interface. initUdp(instance); @@ -75,10 +75,10 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // //////////////////////////////////////////////////// - + // OpenThread main loop. - for (;;) { - // Execute any pending OpenThread related work. + for ( ;;) { + // Execute any pending OpenThread related work. otTaskletsProcess(instance); // Execute any platform related work (e.g. check @@ -88,9 +88,8 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // If there is not pending platform or OpenThread // related work -- yield. if (!otTaskletsArePending(instance) && - !openthread_platform_pending_work()) - { - yield(); + !openthread_platform_pending_work()) { + yield(); } } @@ -101,9 +100,9 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // Helper method that configures the OpenThread network dataset // for the desired tutorial configuration. // We set the following dataset parameters: -// -- Channel: 26 -// -- PanId: 0xabcd -// -- Networkkey: 00112233445566778899aabbccddeeff +// -- Channel: 26 +// -- PanId: 0xabcd +// -- Networkkey: 00112233445566778899aabbccddeeff void setNetworkConfiguration(otInstance* aInstance) { otOperationalDataset aDataset; @@ -175,7 +174,7 @@ static void print_ip_addr(otInstance* instance) { void handleUdpRecvTemperature(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo) { + const otMessageInfo* aMessageInfo) { OT_UNUSED_VARIABLE(aContext); OT_UNUSED_VARIABLE(aMessageInfo); char buf[2]; @@ -231,4 +230,3 @@ void sendUdpTemperature(otInstance* aInstance, uint8_t temperature) { otMessageFree(message); } } - diff --git a/examples/tutorials/thread_network/06_screen/main.c b/examples/tutorials/thread_network/06_screen/main.c index e1396b0d8..b7e237d3a 100644 --- a/examples/tutorials/thread_network/06_screen/main.c +++ b/examples/tutorials/thread_network/06_screen/main.c @@ -3,6 +3,4 @@ #include #include -int main(void) { - -} +int main(void) {} diff --git a/examples/tutorials/thread_network/07_screen_button/main.c b/examples/tutorials/thread_network/07_screen_button/main.c index 2d2edf5eb..749af1eb6 100644 --- a/examples/tutorials/thread_network/07_screen_button/main.c +++ b/examples/tutorials/thread_network/07_screen_button/main.c @@ -8,7 +8,7 @@ static void button_callback(returncode_t ret, int btn_num, bool pressed) { - if (ret != RETURNCODE_SUCCESS) return; + if (ret != RETURNCODE_SUCCESS) return; if (pressed) { printf("Button %i pressed!\r\n", btn_num); @@ -16,11 +16,11 @@ static void button_callback(returncode_t ret, } int main(void) { - for (int i = 0; i < 4; i++){ + for (int i = 0; i < 4; i++) { libtock_button_notify_on_press(i, button_callback); } - for(;;) { + for ( ;;) { yield(); - } + } } diff --git a/examples/tutorials/thread_network/08_screen_u8g2/main.c b/examples/tutorials/thread_network/08_screen_u8g2/main.c index 3d5f22940..f61203f42 100644 --- a/examples/tutorials/thread_network/08_screen_u8g2/main.c +++ b/examples/tutorials/thread_network/08_screen_u8g2/main.c @@ -5,8 +5,8 @@ #include -#include #include +#include // Global reference to the u8g2 context: u8g2_t u8g2; @@ -21,7 +21,7 @@ uint8_t measured_temperature = 0; static void button_callback(returncode_t ret, int btn_num, bool pressed) { - if (ret != RETURNCODE_SUCCESS) return; + if (ret != RETURNCODE_SUCCESS) return; if (pressed) { printf("Button %i pressed!\r\n", btn_num); @@ -34,38 +34,38 @@ int main(void) { u8g2_SetFont(&u8g2, u8g2_font_profont12_tr); u8g2_SetFontPosTop(&u8g2); - for (int i = 0; i < 4; i++){ + for (int i = 0; i < 4; i++) { libtock_button_notify_on_press(i, button_callback); } update_screen(); - for(;;) { + for ( ;;) { yield(); - } + } } static void update_screen(void) { char temperature_set_point_str[35]; char temperature_global_set_point_str[35]; char temperature_current_measure_str[35]; - + // Format the buffers to be written. sprintf(temperature_set_point_str, - "Set Point: %d", - local_temperature_setpoint); + "Set Point: %d", + local_temperature_setpoint); - sprintf(temperature_global_set_point_str, + sprintf(temperature_global_set_point_str, "Global Set Point: %d", - global_temperature_setpoint); + global_temperature_setpoint); + + uint8_t whole_temp = measured_temperature / 100; + uint8_t decimal_temp = measured_temperature % 100; - uint8_t whole_temp = measured_temperature / 100; - uint8_t decimal_temp = measured_temperature % 100; - - sprintf(temperature_current_measure_str, - "Measured Temp: %d.%d", - whole_temp, - decimal_temp ); + sprintf(temperature_current_measure_str, + "Measured Temp: %d.%d", + whole_temp, + decimal_temp); // Use u8g2 library to draw each string. u8g2_ClearBuffer(&u8g2); @@ -75,4 +75,3 @@ static void update_screen(void) { u8g2_DrawStr(&u8g2, 0, 50, temperature_current_measure_str); u8g2_SendBuffer(&u8g2); } - diff --git a/examples/tutorials/thread_network/09_screen_final/main.c b/examples/tutorials/thread_network/09_screen_final/main.c index 4f162f80b..736211d99 100644 --- a/examples/tutorials/thread_network/09_screen_final/main.c +++ b/examples/tutorials/thread_network/09_screen_final/main.c @@ -5,8 +5,8 @@ #include -#include #include +#include // Global reference to the u8g2 context. u8g2_t u8g2; @@ -45,33 +45,33 @@ int main(void) { u8g2_SetFont(&u8g2, u8g2_font_profont12_tr); u8g2_SetFontPosTop(&u8g2); - for (int i = 0; i < 4; i++){ + for (int i = 0; i < 4; i++) { libtock_button_notify_on_press(i, button_callback); } - for(;;) { + for ( ;;) { yield_for(&callback_event); update_screen(); - } + } } static void update_screen(void) { char temperature_set_point_str[35]; char temperature_global_set_point_str[35]; char temperature_current_measure_str[35]; - + // Format the buffers to be written. sprintf(temperature_set_point_str, - "Set Point: %d", - local_temperature_setpoint); + "Set Point: %d", + local_temperature_setpoint); - sprintf(temperature_global_set_point_str, + sprintf(temperature_global_set_point_str, "Global Set Point: %d", - global_temperature_setpoint); + global_temperature_setpoint); - sprintf(temperature_current_measure_str, - "Measured Temp: %d", - measured_temperature); + sprintf(temperature_current_measure_str, + "Measured Temp: %d", + measured_temperature); // Use u8g2 library to draw each string. u8g2_ClearBuffer(&u8g2); @@ -81,4 +81,3 @@ static void update_screen(void) { u8g2_DrawStr(&u8g2, 0, 50, temperature_current_measure_str); u8g2_SendBuffer(&u8g2); } - diff --git a/examples/tutorials/thread_network/10_screen_ipc/main.c b/examples/tutorials/thread_network/10_screen_ipc/main.c index 1ad429823..c7d46e41f 100644 --- a/examples/tutorials/thread_network/10_screen_ipc/main.c +++ b/examples/tutorials/thread_network/10_screen_ipc/main.c @@ -3,13 +3,13 @@ #include #include +#include #include #include #include -#include -#include #include +#include // Global reference to the u8g2 context. u8g2_t u8g2; @@ -19,10 +19,10 @@ static void update_screen(void); uint8_t global_temperature_setpoint = 0; uint8_t local_temperature_setpoint = 22; -int measured_temperature = 0; +int measured_temperature = 0; uint8_t prior_global_temperature_setpoint = 255; -uint8_t prior_local_temperature_setpoint = 255; +uint8_t prior_local_temperature_setpoint = 255; int prior_measured_temperature = 0; bool network_up = false; @@ -116,56 +116,55 @@ int main(void) { init_controller_ipc(); // Enable buttons - for (int i = 0; i < 4; i++){ + for (int i = 0; i < 4; i++) { libtock_button_notify_on_press(i, button_callback); } ipc_notify_service(sensor_svc_num); libtock_alarm_in_ms(500, update_network_timer_callback, NULL, &network_timer); - for(;;) { + for ( ;;) { callback_event = false; yield_for(&callback_event); - + if (measured_temperature != prior_measured_temperature || global_temperature_setpoint != prior_global_temperature_setpoint - || local_temperature_setpoint != prior_local_temperature_setpoint) - { - prior_measured_temperature = measured_temperature; - prior_global_temperature_setpoint = global_temperature_setpoint; - prior_local_temperature_setpoint = local_temperature_setpoint; - update_screen(); + || local_temperature_setpoint != prior_local_temperature_setpoint) { + prior_measured_temperature = measured_temperature; + prior_global_temperature_setpoint = global_temperature_setpoint; + prior_local_temperature_setpoint = local_temperature_setpoint; + update_screen(); } - } + } } static void update_screen(void) { char temperature_set_point_str[35]; char temperature_global_set_point_str[35]; char temperature_current_measure_str[35]; - + // Format the buffers to be written. sprintf(temperature_set_point_str, - "Set Point: %d", - local_temperature_setpoint); - - if(network_up) { - sprintf(temperature_global_set_point_str, + "Set Point: %d", + local_temperature_setpoint); + + if (network_up) { + sprintf(temperature_global_set_point_str, "Global Set Point: %d", - global_temperature_setpoint); + global_temperature_setpoint); } else { sprintf(temperature_global_set_point_str, "Global Set Point: N/A"); } - uint8_t whole_temp = measured_temperature / 100; + uint8_t whole_temp = measured_temperature / 100; uint8_t decimal_temp = measured_temperature % 100; - sprintf(temperature_current_measure_str, - "Measured Temp: %d.%d", - whole_temp, - decimal_temp ); + sprintf(temperature_current_measure_str, + "Measured Temp: %d.%d", + whole_temp, + decimal_temp); // Use u8g2 library to draw each string. u8g2_ClearBuffer(&u8g2); @@ -212,4 +211,3 @@ static int init_controller_ipc(void) { return err; } - diff --git a/examples/tutorials/thread_network/11_sensor_ipc/main.c b/examples/tutorials/thread_network/11_sensor_ipc/main.c index 0d06b6dfa..f9dd4f2e8 100644 --- a/examples/tutorials/thread_network/11_sensor_ipc/main.c +++ b/examples/tutorials/thread_network/11_sensor_ipc/main.c @@ -12,7 +12,7 @@ static void sensor_ipc_callback(int pid, int len, int buf, // A client has requested us to provide them the current temperature value. // We must make sure that it provides us with a buffer sufficiently large to // store a single integer: - if (len < ((int) sizeof(current_temperature))) { + if (len < ((int) sizeof(current_temperature))) { // We do not inform the caller and simply return. We do print a log message: puts("[thread-sensor] ERROR: sensor IPC invoked with too small buffer.\r\n"); } @@ -33,16 +33,16 @@ int main(void) { // Register this application as an IPC service under its name: ipc_register_service_callback("org.tockos.thread-tutorial.sensor", - sensor_ipc_callback, - NULL); + sensor_ipc_callback, + NULL); // We measure the temperature in the main loop and - //print this value to the console. + // print this value to the console. while (1) { // Measure temperature -- returned in the form 2200 => 22C libtocksync_temperature_read(¤t_temperature); - // Delay 1000 ms (1 second). + // Delay 1000 ms (1 second). libtocksync_alarm_delay_ms(1000); } } diff --git a/examples/tutorials/thread_network/12_openthread_ipc/main.c b/examples/tutorials/thread_network/12_openthread_ipc/main.c index 7427e2de2..7eed4ff55 100644 --- a/examples/tutorials/thread_network/12_openthread_ipc/main.c +++ b/examples/tutorials/thread_network/12_openthread_ipc/main.c @@ -26,7 +26,7 @@ static otUdpSocket sUdpSocket; void initUdp(otInstance* aInstance); void handleUdpRecvTemperature(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo); + const otMessageInfo* aMessageInfo); void sendUdpTemperature(otInstance* aInstance, uint8_t temperature); @@ -85,19 +85,18 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) openthread_ipc_callback, NULL); - // set child timeout to 60 seconds. otThreadSetChildTimeout(instance, 60); // Set callback to be notified when thread state changes. otSetStateChangedCallback(instance, stateChangeCallback, instance); - + /////////////////////////////////////////////////// - // THREAD NETWORK SETUP HERE + // THREAD NETWORK SETUP HERE // Configure network. setNetworkConfiguration(instance); - + // Init UDP interface. initUdp(instance); @@ -118,10 +117,10 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // //////////////////////////////////////////////////// - + // OpenThread main loop. - for (;;) { - // Execute any pending OpenThread related work. + for ( ;;) { + // Execute any pending OpenThread related work. otTaskletsProcess(instance); // Execute any platform related work (e.g. check @@ -129,7 +128,7 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) otSysProcessDrivers(instance); // Send udp packet if pending temperature update. - if(send_local_temp) { + if (send_local_temp) { sendUdpTemperature(instance, local_temperature_setpoint); send_local_temp = false; } @@ -137,9 +136,8 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // If there is not pending platform or OpenThread // related work -- yield. if (!otTaskletsArePending(instance) && - !openthread_platform_pending_work()) - { - yield(); + !openthread_platform_pending_work()) { + yield(); } } @@ -150,9 +148,9 @@ int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) // Helper method that configures the OpenThread network dataset // for the desired tutorial configuration. // We set the following dataset parameters: -// -- Channel: 26 -// -- PanId: 0xabcd -// -- Networkkey: 00112233445566778899aabbccddeeff +// -- Channel: 26 +// -- PanId: 0xabcd +// -- Networkkey: 00112233445566778899aabbccddeeff void setNetworkConfiguration(otInstance* aInstance) { otOperationalDataset aDataset; @@ -225,7 +223,7 @@ static void print_ip_addr(otInstance* instance) { void handleUdpRecvTemperature(void* aContext, otMessage* aMessage, - const otMessageInfo* aMessageInfo) { + const otMessageInfo* aMessageInfo) { OT_UNUSED_VARIABLE(aContext); OT_UNUSED_VARIABLE(aMessageInfo); char buf[2]; @@ -281,4 +279,3 @@ void sendUdpTemperature(otInstance* aInstance, uint8_t temperature) { otMessageFree(message); } } - From ba9b86da48e5a7c69a4ce6793039bf2b01d91f64 Mon Sep 17 00:00:00 2001 From: Tyler Potyondy Date: Fri, 6 Dec 2024 22:39:36 -0800 Subject: [PATCH 10/10] [Thread Tutorial] Mark unused func in skeleton --- .../thread_network/03_openthread/main.c | 4 ++-- .../thread_network/07_screen_button/.tab | Bin 202240 -> 0 bytes .../thread_network/08_screen_u8g2/.tab | Bin 258048 -> 0 bytes .../thread_network/09_screen_final/.tab | Bin 297472 -> 0 bytes .../thread_network/10_screen_ipc/.tab | Bin 402432 -> 0 bytes 5 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 examples/tutorials/thread_network/07_screen_button/.tab delete mode 100644 examples/tutorials/thread_network/08_screen_u8g2/.tab delete mode 100644 examples/tutorials/thread_network/09_screen_final/.tab delete mode 100644 examples/tutorials/thread_network/10_screen_ipc/.tab diff --git a/examples/tutorials/thread_network/03_openthread/main.c b/examples/tutorials/thread_network/03_openthread/main.c index 0c9125509..6e86a3d3d 100644 --- a/examples/tutorials/thread_network/03_openthread/main.c +++ b/examples/tutorials/thread_network/03_openthread/main.c @@ -19,13 +19,13 @@ #include // helper utility demonstrating network config setup -static void setNetworkConfiguration(otInstance* aInstance); +static void __attribute__((unused)) setNetworkConfiguration(otInstance* aInstance); // callback for Thread state change events static void stateChangeCallback(uint32_t flags, void* context); // helper utility to print ip address -static void print_ip_addr(otInstance* instance); +static void __attribute__((unused)) print_ip_addr(otInstance* instance); int main(__attribute__((unused)) int argc, __attribute__((unused)) char* argv[]) { // Initialize OpenThread instance. diff --git a/examples/tutorials/thread_network/07_screen_button/.tab b/examples/tutorials/thread_network/07_screen_button/.tab deleted file mode 100644 index 98cc810c11abd05b5962d840545e0a68940f2561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202240 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 K5ZvW?0*xxAc|2)I~&!|0D!~V~TpLqXg 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

4fkngT7mK2i=Jc@nq>6V`fTj@Ef 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 R3M43ypg@8Ge~%RS{{hFzp4$Kb diff --git a/examples/tutorials/thread_network/09_screen_final/.tab b/examples/tutorials/thread_network/09_screen_final/.tab deleted file mode 100644 index 720bc31d6aa3516625c8c46bfa8030c7a6c71496..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297472 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 diff --git a/examples/tutorials/thread_network/10_screen_ipc/.tab b/examples/tutorials/thread_network/10_screen_ipc/.tab deleted file mode 100644 index 730cde421bf740e379c6dbf0024df0c746113faf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402432 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 XA)q0kA)q0kA)q0kA)q1fUm)-|f&8nH