network/udp_hello_gpio/main.c

/*
* EVALUATION AND USE OF THIS SOFTWARE IS SUBJECT TO THE TERMS AND
* CONDITIONS OF THE CONTROLLING LICENSE AGREEMENT FOUND AT LICENSE.md
* IN THIS SDK. IF YOU DO NOT AGREE TO THE LICENSE TERMS AND CONDITIONS,
* PLEASE RETURN ALL SOURCE FILES TO SILICON LABORATORIES.
* (c) Copyright 2018, Silicon Laboratories Inc. All rights reserved.
*/
/* Documentation for this app is available online.
* See https://docs.silabs.com/gecko-os/4/standard/latest/sdk/examples/network/udp-hello-gpio
*/
#include "gos.h"
#include "example_app_util.h"
#define UDP_HOST "test.zentri.com"
#define UDP_PORT 50007
#define APPLICATION_START_LINE "\r\nUDP Hello GPIO example starting ..."
/*************************************************************************************************/
void gos_app_init(void)
{
gos_result_t result;
GOS_LOG(APPLICATION_START_LINE);
if (GOS_FAILED(result, example_app_util_network_up(GOS_INTERFACE_ANY, false, NULL)))
{
return;
}
GOS_LOG("Connecting to remote UDP server %s:%u", UDP_HOST, UDP_PORT);
if (GOS_FAILED(result, gos_udp_connect(UDP_HOST, UDP_PORT, GOS_ANY_PORT, &handle)))
{
GOS_LOG("Failed to connect, err:%d", result);
}
else
{
char buffer[128];
const uint32_t gpio_values = gos_gpio_mask_get(0xFFFFFFFF);
const int len = sprintf(buffer, "Current GPIO values: %04X", (unsigned int)gpio_values);
GOS_LOG("Sending data ...");
if (GOS_FAILED(result, gos_udp_write(handle, buffer, len)))
{
GOS_LOG("Failed to send data, err:%d", result);
}
else
{
GOS_LOG("Data sent");
}
gos_udp_close(handle);
}
GOS_LOG("Done");
}