From d29529bf8a2791aee17886db6cbd6b15aa62e2f1 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Tue, 16 Feb 2021 11:44:51 +0100 Subject: [PATCH] nal --- cube/Makefile | 3 +- cube/User/Inc/networkAbstractionLayer_impl.h | 10 ++++ cube/User/Src/networkAbstractionLayer.c | 56 ++------------------ cube/User/Src/networkAbstractionLayer_lan.c | 43 +++++++++++++++ 4 files changed, 58 insertions(+), 54 deletions(-) create mode 100644 cube/User/Inc/networkAbstractionLayer_impl.h create mode 100644 cube/User/Src/networkAbstractionLayer_lan.c diff --git a/cube/Makefile b/cube/Makefile index 184c212..5b0fc21 100644 --- a/cube/Makefile +++ b/cube/Makefile @@ -87,7 +87,8 @@ Core/Src/system_stm32f1xx.c ifeq ($(NETWORK), 1) C_SOURCES += \ User/Src/ports.c \ -User/Src/wizHelper.c +User/Src/wizHelper.c \ +User/Src/networkAbstractionLayer_lan.c endif diff --git a/cube/User/Inc/networkAbstractionLayer_impl.h b/cube/User/Inc/networkAbstractionLayer_impl.h new file mode 100644 index 0000000..fed8522 --- /dev/null +++ b/cube/User/Inc/networkAbstractionLayer_impl.h @@ -0,0 +1,10 @@ +#ifndef _NETWORK_ABSTRACTION_LAYER_IMPL_H_ +#define _NETWORK_ABSTRACTION_LAYER_IMPL_H_ + +#include + +uint64_t networkSntpQuery(); +int8_t networkUdpSend(char *hostname, uint16_t port, uint8_t *buf, uint16_t bufLen); +void networkImplInit(); + +#endif /* _NETWORK_ABSTRACTION_LAYER_IMPL_H_ */ diff --git a/cube/User/Src/networkAbstractionLayer.c b/cube/User/Src/networkAbstractionLayer.c index c25b4aa..575967c 100644 --- a/cube/User/Src/networkAbstractionLayer.c +++ b/cube/User/Src/networkAbstractionLayer.c @@ -5,18 +5,7 @@ #include #include - - -#define NETWORK_LAN 1 -#define NETWORK_WiFi 2 -#define NETWORK_GSM 3 - -#if NETWORK == NETWORK_LAN -#include -#include -#include -#endif - +#include const uint16_t SINK_PORT = 20169; @@ -25,12 +14,6 @@ static t_seconds seconds = { .seconds = 0, .missedUpdates = 0, .valid = false }; static t_configBlock *config; -#if NETWORK == NETWORK_LAN -static uint64_t networkSntpQuery() { - return wizSntpQuery(); -} -#endif - static void networkSecondsHandler(void *handle) { static bool tryAgain = false; @@ -75,46 +58,13 @@ t_seconds* networkGetSeconds() { return &seconds; } - - -#if NETWORK == NETWORK_LAN -extern uint8_t SINK_SOCK; - -static int8_t networkUdpSend(char *hostname, uint16_t port, uint8_t *buf, uint16_t bufLen) { - uint8_t sinkAddr[4]; - if (! wizDnsQuery(hostname, sinkAddr)) { - coloredMsg(LOG_BLUE, "nus, failed to resolve sink server name"); - return -1; - } else { - coloredMsg(LOG_BLUE, "nus, sink server at %d.%d.%d.%d", sinkAddr[0], sinkAddr[1], sinkAddr[2], sinkAddr[3]); - } - - socket(SINK_SOCK, Sn_MR_UDP, SINK_PORT, 0); - uint8_t sockState = getSn_SR(SINK_SOCK); - if (sockState == SOCK_UDP) { - sendto(SINK_SOCK, buf, bufLen, sinkAddr, SINK_PORT); - coloredMsg(LOG_BLUE, "nus, sent"); - } else { - coloredMsg(LOG_BLUE, "nus, socket in unexpected state: %d", sockState); - return -2; - } - - close(SINK_SOCK); - - return 1; -} -#endif - - int8_t networkSendMinuteBuffer(t_minuteBuffer *minuteBuffer) { return networkUdpSend(config->sinkServer, SINK_PORT, minuteBuffer->b, sizeof(minuteBuffer->b)); } void networkInit() { -#if NETWORK == NETWORK_LAN - wizInit(); -#endif - + networkImplInit(); + config = getConfig(); schAdd(networkSecondsHandler, NULL, 0, 1000); } diff --git a/cube/User/Src/networkAbstractionLayer_lan.c b/cube/User/Src/networkAbstractionLayer_lan.c new file mode 100644 index 0000000..c1908b4 --- /dev/null +++ b/cube/User/Src/networkAbstractionLayer_lan.c @@ -0,0 +1,43 @@ +#include +#include + +#include +#include +#include + + + +uint64_t networkSntpQuery() { + return wizSntpQuery(); +} + + +extern uint8_t SINK_SOCK; + +int8_t networkUdpSend(char *hostname, uint16_t port, uint8_t *buf, uint16_t bufLen) { + uint8_t sinkAddr[4]; + if (! wizDnsQuery(hostname, sinkAddr)) { + coloredMsg(LOG_BLUE, "nus, failed to resolve sink server name"); + return -1; + } else { + coloredMsg(LOG_BLUE, "nus, sink server at %d.%d.%d.%d", sinkAddr[0], sinkAddr[1], sinkAddr[2], sinkAddr[3]); + } + + socket(SINK_SOCK, Sn_MR_UDP, port, 0); + uint8_t sockState = getSn_SR(SINK_SOCK); + if (sockState == SOCK_UDP) { + sendto(SINK_SOCK, buf, bufLen, sinkAddr, port); + coloredMsg(LOG_BLUE, "nus, sent"); + } else { + coloredMsg(LOG_BLUE, "nus, socket in unexpected state: %d", sockState); + return -2; + } + + close(SINK_SOCK); + + return 1; +} + +void networkImplInit() { + wizInit(); +}