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.
CCS-COMM_BOARD/WEINBUS/WeinbusTableRegister.cpp

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 */