temperature: Base for temperature thread
This commit is contained in:
parent
2ccce7a6b2
commit
f578fd2854
@ -55,6 +55,7 @@
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/threads/rotary}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/threads/manager}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/threads/logging}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/temperature}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/peripherals}""/>
|
||||
</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=""${workspace_loc:/shoh/src/threads/master}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/user_interface}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/logging}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/temperature}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/peripherals}""/>
|
||||
</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=""${workspace_loc:/shoh/src/threads/master}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/user_interface}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/logging}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/temperature}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/peripherals}""/>
|
||||
</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=""${workspace_loc:/shoh/src/FreeRTOSCPP}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/common}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/user_interface}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/temperature}""/>
|
||||
</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=""${workspace_loc:/shoh/src/FreeRTOSCPP}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/common}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/user_interface}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/temperature}""/>
|
||||
</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=""${workspace_loc:/shoh/src/threads/common}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/user_interface}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/logging}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/shoh/src/threads/temperature}""/>
|
||||
</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"/>
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
11
source/shoh/src/threads/temperature/SensorTempTC74.cpp
Normal file
11
source/shoh/src/threads/temperature/SensorTempTC74.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
/*
|
||||
* SensorTempTC74.cpp
|
||||
*
|
||||
* Created on: 16 May 2023
|
||||
*/
|
||||
|
||||
#include "SensorTempTC74.h"
|
||||
|
||||
SensorTempTC74::SensorTempTC74(I2C* pi2c) : _pi2c(pi2c) {}
|
||||
|
||||
SensorTempTC74::~SensorTempTC74() {}
|
||||
21
source/shoh/src/threads/temperature/SensorTempTC74.h
Normal file
21
source/shoh/src/threads/temperature/SensorTempTC74.h
Normal 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_ */
|
||||
32
source/shoh/src/threads/temperature/Temperature.cpp
Normal file
32
source/shoh/src/threads/temperature/Temperature.cpp
Normal 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();
|
||||
}
|
||||
28
source/shoh/src/threads/temperature/Temperature.h
Normal file
28
source/shoh/src/threads/temperature/Temperature.h
Normal 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_ */
|
||||
Loading…
x
Reference in New Issue
Block a user