You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
2.2 KiB
C++
126 lines
2.2 KiB
C++
/*
|
|
* WeinbusTableRegister.cpp
|
|
*
|
|
* Author: Aleksey Gerasimenko
|
|
* gerasimenko.aleksey.n@gmail.com
|
|
*/
|
|
|
|
#include "WEINBUS/WeinbusTableRegister.h"
|
|
|
|
namespace WEINBUS
|
|
{
|
|
//CONSTRUCTOR
|
|
WeinbusTableRegister::WeinbusTableRegister():
|
|
WeinbusTableUnit(),
|
|
t(WEINBUS::DATA_UINT32)
|
|
{}//CONSTRUCTOR
|
|
|
|
|
|
WEINBUS::data_variant_type_t WeinbusTableRegister::get_type()
|
|
{
|
|
return t;
|
|
//
|
|
}//
|
|
//
|
|
//
|
|
void WeinbusTableRegister::add(uint16_t address, uint16_t *param)
|
|
{
|
|
m_address = address;
|
|
m_param = param;
|
|
t = WEINBUS::DATA_UINT16;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::add(uint16_t address, int16_t *param)
|
|
{
|
|
m_address = address;
|
|
m_param = param;
|
|
t = WEINBUS::DATA_INT16;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::add(uint16_t address, uint32_t *param)
|
|
{
|
|
m_address = address;
|
|
m_param = param;
|
|
t = WEINBUS::DATA_UINT32;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::add(uint16_t address, int32_t *param)
|
|
{
|
|
m_address = address;
|
|
m_param = param;
|
|
t = WEINBUS::DATA_INT32;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::add(uint16_t address, float *param)
|
|
{
|
|
m_address = address;
|
|
m_param = param;
|
|
t = WEINBUS::DATA_FLOAT;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::read(uint16_t &data)
|
|
{
|
|
data = *(uint16_t*)m_param;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::read(int16_t &data)
|
|
{
|
|
data = *(int16_t*)m_param;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::read(uint32_t &data)
|
|
{
|
|
data = *(uint32_t*)m_param;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::read(int32_t &data)
|
|
{
|
|
data = *(int32_t*)m_param;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::read(float &data)
|
|
{
|
|
data = *(float*)m_param;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::write(uint16_t data)
|
|
{
|
|
*(uint16_t*)m_param = (uint16_t)data;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::write(int16_t data)
|
|
{
|
|
*(int16_t*)m_param = (int16_t)data;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::write(uint32_t data)
|
|
{
|
|
*(uint32_t*)m_param = (uint32_t)data;
|
|
//
|
|
}//
|
|
//
|
|
void WeinbusTableRegister::write(int32_t data)
|
|
{
|
|
*(int32_t*)m_param = (int32_t)data;
|
|
//
|
|
}//
|
|
void WeinbusTableRegister::write(float data)
|
|
{
|
|
*(float*)m_param = (float)data;
|
|
//
|
|
}//
|
|
|
|
} /* namespace WEINBUS */
|