temperature: Base for temperature thread

This commit is contained in:
RedHawk 2023-05-17 11:31:39 +03:00
parent 2ccce7a6b2
commit f578fd2854
7 changed files with 104 additions and 3 deletions

View File

@ -55,6 +55,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/threads/rotary}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/threads/manager}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/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/peripherals}&quot;"/>
</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"/>
@ -88,6 +89,7 @@
<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/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals}&quot;"/>
</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"/>
@ -109,6 +111,7 @@
<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/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/peripherals}&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1836378919" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
@ -208,6 +211,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/FreeRTOSCPP}&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/temperature}&quot;"/>
</option>
<inputType id="com.crt.advproject.compiler.cpp.input.903614193" superClass="com.crt.advproject.compiler.cpp.input"/>
</tool>
@ -238,6 +242,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/FreeRTOSCPP}&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/temperature}&quot;"/>
</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"/>
<inputType id="com.crt.advproject.compiler.input.246185412" superClass="com.crt.advproject.compiler.input"/>
@ -260,6 +265,7 @@
<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/logging}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/shoh/src/threads/temperature}&quot;"/>
</option>
<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"/>

View File

@ -14,9 +14,8 @@
struct I2C_config {
unsigned int device_number;
unsigned int speed;
unsigned int clock_divider;
unsigned int i2c_mode;
I2C_config(unsigned int dn, unsigned int sp, unsigned int cd): device_number(dn), speed(sp), clock_divider(cd), i2c_mode(IOCON_SFI2C_EN) {};
unsigned int i2c_mode = IOCON_SFI2C_EN;
// I2C_config(unsigned int dn, unsigned int sp, unsigned int cd): device_number(dn), speed(sp), i2c_mode(IOCON_SFI2C_EN) {};
};
class I2C {

View File

@ -13,6 +13,7 @@
#include "Manager.h"
#include "Logging.h"
#include "UserInterface.h"
#include "Temperature.h"
#include "queue.h"
static const char* rotary_direction[] =
@ -131,6 +132,9 @@ void thread_master(void* pvParams) {
manager->tm->createTask(thread_relay, "relay",
configMINIMAL_STACK_SIZE * 9,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager));
manager->tm->createTask(thread_temperature, "temperature",
configMINIMAL_STACK_SIZE * 10,tskIDLE_PRIORITY + 1UL,
static_cast<void*>(manager));
LOG_INFO("Master created tasks");
m.taskFunction();
}

View File

@ -0,0 +1,11 @@
/*
* SensorTempTC74.cpp
*
* Created on: 16 May 2023
*/
#include "SensorTempTC74.h"
SensorTempTC74::SensorTempTC74(I2C* pi2c) : _pi2c(pi2c) {}
SensorTempTC74::~SensorTempTC74() {}

View File

@ -0,0 +1,21 @@
/*
* SensorTempTC74.h
*
* Created on: 16 May 2023
*/
#ifndef THREADS_TEMPERATURE_SENSORTEMPTC74_H_
#define THREADS_TEMPERATURE_SENSORTEMPTC74_H_
#include "I2C.h"
class SensorTempTC74 {
public:
SensorTempTC74(I2C* pi2c);
virtual ~SensorTempTC74();
bool read();
private:
I2C* _pi2c;
};
#endif /* THREADS_TEMPERATURE_SENSORTEMPTC74_H_ */

View File

@ -0,0 +1,32 @@
/*
* Temperature.cpp
*
* Created on: 16 May 2023
*/
#include "Temperature.h"
#include "SensorTempTC74.h"
#include "Log.h"
Temperature::Temperature(ThreadCommon::QueueManager* qm, I2C* pi2c) : _qm(qm), _pi2c(pi2c) {}
Temperature::~Temperature() {}
void Temperature::taskFunction()
{
SensorTempTC74 ext_temp_sensor(this->_pi2c);
for (;;)
{
vTaskDelay(5000);
}
}
void thread_temperature(void* pvParams)
{
ThreadCommon::CommonManagers * manager = static_cast<ThreadCommon::CommonManagers*>(pvParams);
I2C_config conf{0x4a, 55000};
I2C i2c(conf);
Temperature t(manager->qm, &i2c);
t.taskFunction();
}

View File

@ -0,0 +1,28 @@
/*
* Temperature.h
*
* Created on: 16 May 2023
*/
#ifndef THREADS_TEMPERATURE_TEMPERATURE_H_
#define THREADS_TEMPERATURE_TEMPERATURE_H_
#include "FreeRTOS.h"
#include "task.h"
#include "ThreadCommon.h"
#include "DigitalIoPin.h"
#include "I2C.h"
class Temperature {
public:
Temperature(ThreadCommon::QueueManager* qm, I2C* pi2c);
virtual ~Temperature();
void taskFunction();
private:
ThreadCommon::QueueManager* _qm;
I2C* _pi2c;
};
void thread_temperature(void* pvParams);
#endif /* THREADS_TEMPERATURE_TEMPERATURE_H_ */