network: [#57] Added task for network.

* Fixed paths.
* Cleaned esp_socket a bit, added some comments.
This commit is contained in:
RedHawk 2023-05-31 19:30:46 +03:00
parent 01784b6a80
commit 17563c2a15
6 changed files with 142 additions and 47 deletions

View File

@ -43,20 +43,22 @@
<option id="com.crt.advproject.cpp.fpu.1211390952" name="Floating point" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="true"/> <option id="com.crt.advproject.cpp.fpu.1211390952" name="Floating point" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="true"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.417443680" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.417443680" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_board_nxp_lpcxpresso_11u68/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_board_nxp_lpcxpresso_11u68/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/threads/relay}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_chip_11u6x/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_chip_11u6x/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/master}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/master}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/threads/rotary}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/relay}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/threads/manager}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/rotary}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/threads/logging}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/networking}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals/networking}&quot;"/>
</option> </option>
<option id="com.crt.advproject.cpp.misc.dialect.4036734" name="Language standard" superClass="com.crt.advproject.cpp.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.cpp17" valueType="enumerated"/> <option id="com.crt.advproject.cpp.misc.dialect.4036734" name="Language standard" superClass="com.crt.advproject.cpp.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.cpp17" valueType="enumerated"/>
<inputType id="com.crt.advproject.compiler.cpp.input.2005422649" superClass="com.crt.advproject.compiler.cpp.input"/> <inputType id="com.crt.advproject.compiler.cpp.input.2005422649" superClass="com.crt.advproject.compiler.cpp.input"/>
@ -84,13 +86,19 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_chip_11u6x/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_chip_11u6x/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/master}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/master}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/relay}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/rotary}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/networking}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals/networking}&quot;"/>
</option> </option>
<option id="com.crt.advproject.c.misc.dialect.82852045" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.c17" valueType="enumerated"/> <option id="com.crt.advproject.c.misc.dialect.82852045" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.c17" valueType="enumerated"/>
<inputType id="com.crt.advproject.compiler.input.765511076" superClass="com.crt.advproject.compiler.input"/> <inputType id="com.crt.advproject.compiler.input.765511076" superClass="com.crt.advproject.compiler.input"/>
@ -106,13 +114,19 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_chip_11u6x/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_chip_11u6x/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/freertos/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/master}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/master}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/relay}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/rotary}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/networking}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals/networking}&quot;"/>
</option> </option>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1836378919" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1836378919" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
<inputType id="com.crt.advproject.assembler.input.339410672" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> <inputType id="com.crt.advproject.assembler.input.339410672" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
@ -212,6 +226,13 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals/networking}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/rotary}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/relay}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/networking}&quot;"/>
</option> </option>
<inputType id="com.crt.advproject.compiler.cpp.input.903614193" superClass="com.crt.advproject.compiler.cpp.input"/> <inputType id="com.crt.advproject.compiler.cpp.input.903614193" superClass="com.crt.advproject.compiler.cpp.input"/>
</tool> </tool>
@ -243,6 +264,13 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/common}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals/networking}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/rotary}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/relay}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/networking}&quot;"/>
</option> </option>
<option id="com.crt.advproject.c.misc.dialect.1008527937" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.c17" valueType="enumerated"/> <option id="com.crt.advproject.c.misc.dialect.1008527937" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.c17" valueType="enumerated"/>
<inputType id="com.crt.advproject.compiler.input.246185412" superClass="com.crt.advproject.compiler.input"/> <inputType id="com.crt.advproject.compiler.input.246185412" superClass="com.crt.advproject.compiler.input"/>
@ -266,6 +294,12 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/user_interface}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals/networking}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/rotary}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/relay}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/networking}&quot;"/>
</option> </option>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1117166373" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1117166373" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
<inputType id="com.crt.advproject.assembler.input.2071009798" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> <inputType id="com.crt.advproject.assembler.input.2071009798" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>

View File

@ -94,6 +94,7 @@
#define configGENERATE_RUN_TIME_STATS 1 #define configGENERATE_RUN_TIME_STATS 1
#define configRECORD_STACK_HIGH_ADDRESS 1 #define configRECORD_STACK_HIGH_ADDRESS 1
#define configUSE_TICKLESS_IDLE 1 #define configUSE_TICKLESS_IDLE 1
#define configUSE_TASK_NOTIFICATIONS 1
#define configRUN_TIME_COUNTER_TYPE uint64_t #define configRUN_TIME_COUNTER_TYPE uint64_t

View File

@ -86,7 +86,6 @@ static void stPassthrough(smi *ctx, const event *e);
static void stPassthroughOK(smi *ctx, const event *e); static void stPassthroughOK(smi *ctx, const event *e);
static void stAT(smi *ctx, const event *e); static void stAT(smi *ctx, const event *e);
static void stCommandMode(smi *ctx, const event *e); static void stCommandMode(smi *ctx, const event *e);
static int cur_state();
static void EspSocketRun(smi *ctx); static void EspSocketRun(smi *ctx);
@ -118,7 +117,10 @@ void smi_init(smi *ctx)
ctx->state(ctx, &evEnter); // enter initial state ctx->state(ctx, &evEnter); // enter initial state
} }
//Needs a mechanism to return error code after the timeout.
//Timeout is done by the ctx->timer in states.
//Tick event should be dispatched every ms, which seems not to be the case. (It's more rare.)
//Look at the stInit for reference
int esp_socket(const char *ssid, const char *password) int esp_socket(const char *ssid, const char *password)
{ {
smi_init(&EspSocketInstance); smi_init(&EspSocketInstance);
@ -129,7 +131,6 @@ int esp_socket(const char *ssid, const char *password)
while(EspSocketInstance.state != stReady) { while(EspSocketInstance.state != stReady) {
//printf("[socket]: Current state %d\r\n", cur_state());
// run esp task and run ticks // run esp task and run ticks
EspSocketRun(&EspSocketInstance); EspSocketRun(&EspSocketInstance);
} }
@ -137,38 +138,7 @@ int esp_socket(const char *ssid, const char *password)
return 0; return 0;
} }
int cur_state() //Needs a mechanism to return error code after the timeout.
{
int st = -1;
if (EspSocketInstance.state == stInit )
st = 0;
else if (EspSocketInstance.state == stEchoOff )
st = 1;
else if (EspSocketInstance.state == stStationModeCheck )
st = 2;
else if (EspSocketInstance.state == stStationModeSet )
st = 3;
else if (EspSocketInstance.state == stConnectAP )
st = 4;
else if (EspSocketInstance.state == stReady )
st = 5;
else if (EspSocketInstance.state == stConnectTCP )
st = 6;
else if (EspSocketInstance.state == stConnected )
st = 7;
else if (EspSocketInstance.state == stCloseTCP )
st = 8;
else if (EspSocketInstance.state == stPassthrough )
st = 9;
else if (EspSocketInstance.state == stPassthroughOK )
st = 10;
else if (EspSocketInstance.state == stAT )
st = 11;
else if (EspSocketInstance.state == stCommandMode )
st = 12;
return st;
}
int esp_connect(int sockfd, const char *addr, int port) int esp_connect(int sockfd, const char *addr, int port)
{ {
I_DONT_USE(sockfd); I_DONT_USE(sockfd);
@ -380,14 +350,19 @@ static void stInit(smi *ctx, const event *e)
case eExit: case eExit:
break; break;
case eTick: case eTick:
++ctx->timer; ++ctx->timer; //increases timer value with every tick
//if(ctx->timer == 2) DEBUGP("[%s]\r\n", ctx->buffer); //if(ctx->timer == 2) DEBUGP("[%s]\r\n", ctx->buffer);
//When it hits five - tries to reach the esp, incresing count of attempts.
if(ctx->timer >= 5) { if(ctx->timer >= 5) {
ctx->timer = 0; ctx->timer = 0;
++ctx->count; ++ctx->count;
if(ctx->count < 2) { if(ctx->count < 2) {
serial_write_str(ctx, "AT\r\n"); serial_write_str(ctx, "AT\r\n");
} }
//If done more attempts than expected - give up.
else { else {
DEBUGP("Error: Module not responding\r\n"); DEBUGP("Error: Module not responding\r\n");
TRAN(stAT); TRAN(stAT);
@ -605,6 +580,10 @@ static void stConnectTCP(smi *ctx, const event *e)
case eExit: case eExit:
break; break;
case eTick: case eTick:
++ctx->timer;
if(ctx->timer >= 70) {
ctx->timer = 0;
}
break; break;
case eReceive: case eReceive:
rc = sm_read_result(ctx); rc = sm_read_result(ctx);

View File

@ -14,8 +14,8 @@
#include "Logging.h" #include "Logging.h"
#include "UserInterface.h" #include "UserInterface.h"
#include "Temperature.h" #include "Temperature.h"
#include "Network.h"
#include "queue.h" #include "queue.h"
#include "esp8266_socket.h"
static const char* rotary_direction[] = static const char* rotary_direction[] =
{ {
@ -76,8 +76,6 @@ void Master::HandleEventType(Event* e)
void Master::taskFunction() { void Master::taskFunction() {
Event data(Event::Null, 0); Event data(Event::Null, 0);
//int soc = esp_socket("SSID", "PASSWORD");
//int stat = esp_connect(soc, "IP", 5000);
for (;;) for (;;)
{ {
if(!_qm->receive<Event>(ThreadCommon::QueueManager::master_event_all, &data, 10000)) if(!_qm->receive<Event>(ThreadCommon::QueueManager::master_event_all, &data, 10000))
@ -88,9 +86,6 @@ void Master::taskFunction() {
HandleEventType(&data); HandleEventType(&data);
global_clock->updateClock(); global_clock->updateClock();
//LOG_WARNING("ESP socket status: %d", stat);
//if(stat == 0)
// stat = esp_connect(soc, "IP", 5000);
} }
} }
@ -142,6 +137,9 @@ void thread_master(void* pvParams) {
manager->tm->createTask(thread_temperature, "temperature", manager->tm->createTask(thread_temperature, "temperature",
configMINIMAL_STACK_SIZE * 8,tskIDLE_PRIORITY + 1UL, configMINIMAL_STACK_SIZE * 8,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager)); static_cast<void*>(manager));
manager->tm->createTask(thread_network, "network",
configMINIMAL_STACK_SIZE * 8,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager));
LOG_INFO("Master created tasks"); LOG_INFO("Master created tasks");
m.taskFunction(); m.taskFunction();
} }

View File

@ -0,0 +1,54 @@
/*
* Network.cpp
*
* Created on: 31 May 2023
*/
#include "Network.h"
#include "esp8266_socket.h"
#include "Log.h"
#define NETWORK_DEMO 0
Network::Network(ThreadCommon::QueueManager* qm) : _qm(qm)
{
this->ssid = "SSID";
this->password = "PASSWORD";
this->ip = "127.0.0.1";
}
Network::~Network() {}
void Network::taskFunction()
{
#if NETWORK_DEMO
int soc = esp_socket(this->ssid.c_str(), this->password.c_str());
LOG_INFO("Connected to network");
int stat = esp_connect(soc, this->ip.c_str(), 5000);
#endif
for (;;)
{
#if NETWORK_DEMO
LOG_DEBUG("ESP socket status: %d", stat);
if(stat == 0)
stat = esp_connect(soc, this->ip.c_str(), 5000);
#else
vTaskDelay(portMAX_DELAY);
#endif
}
}
void thread_network(void* pvParams)
{
ThreadCommon::CommonManagers * manager = static_cast<ThreadCommon::CommonManagers*>(pvParams);
Network n(manager->qm);
n.taskFunction();
}

View File

@ -0,0 +1,29 @@
/*
* Network.h
*
* Created on: 31 May 2023
*/
#ifndef THREADS_NETWORKING_NETWORK_H_
#define THREADS_NETWORKING_NETWORK_H_
#include <string>
#include "Event.h"
#include "ThreadCommon.h"
class Network {
public:
Network(ThreadCommon::QueueManager* qm);
virtual ~Network();
void taskFunction();
private:
ThreadCommon::QueueManager* _qm;
std::string ssid;
std::string password;
std::string ip;
};
void thread_network(void* pvParams);
#endif /* THREADS_NETWORKING_NETWORK_H_ */