const char* FliLogicObjHdl::get_signal_value_binstr(void) { switch (m_fli_type) { case MTI_TYPE_ENUM: if (m_is_var) { m_val_buff[0] = m_value_enum[mti_GetVarValue(get_handle<mtiVariableIdT>())][1]; } else { m_val_buff[0] = m_value_enum[mti_GetSignalValue(get_handle<mtiSignalIdT>())][1]; } break; case MTI_TYPE_ARRAY: { if (m_is_var) { mti_GetArrayVarValue(get_handle<mtiVariableIdT>(), m_mti_buff); } else { mti_GetArraySignalValue(get_handle<mtiSignalIdT>(), m_mti_buff); } for (int i = 0; i < m_num_elems; i++ ) { m_val_buff[i] = m_value_enum[(int)m_mti_buff[i]][1]; } } break; default: LOG_CRITICAL("Object type is not 'logic' for %s (%d)", m_name.c_str(), m_fli_type); return NULL; } LOG_DEBUG("Retrieved \"%s\" for value object %s", m_val_buff, m_name.c_str()); return m_val_buff; }
long FliEnumObjHdl::get_signal_value_long(void) { if (m_is_var) { return (long)mti_GetVarValue(get_handle<mtiVariableIdT>()); } else { return (long)mti_GetSignalValue(get_handle<mtiSignalIdT>()); } }
const char* FliEnumObjHdl::get_signal_value_str(void) { if (m_is_var) { return m_value_enum[mti_GetVarValue(get_handle<mtiVariableIdT>())]; } else { return m_value_enum[mti_GetSignalValue(get_handle<mtiSignalIdT>())]; } }
long FliIntObjHdl::get_signal_value_long(void) { mtiInt32T value; if (m_is_var) { value = mti_GetVarValue(get_handle<mtiVariableIdT>()); } else { value = mti_GetSignalValue(get_handle<mtiSignalIdT>()); } return (long)value; }
const char* FliVariableObjHdl::get_signal_value_binstr(void) { switch (m_fli_type) { case MTI_TYPE_ENUM: m_val_buff[0] = value_enum[mti_GetVarValue(m_fli_hdl)]; break; case MTI_TYPE_SCALAR: case MTI_TYPE_PHYSICAL: { std::bitset<32> value((unsigned long)mti_GetVarValue(m_fli_hdl)); std::string bin_str = value.to_string<char,std::string::traits_type, std::string::allocator_type>(); snprintf(m_val_buff, m_val_len+1, "%s", bin_str.c_str()); } break; case MTI_TYPE_ARRAY: { mti_GetArrayVarValue(m_fli_hdl, m_mti_buff); if (m_val_len <= 256) { char *iter = (char*)m_mti_buff; for (int i = 0; i < m_val_len; i++ ) { m_val_buff[i] = value_enum[(int)iter[i]]; } } else { for (int i = 0; i < m_val_len; i++ ) { m_val_buff[i] = value_enum[m_mti_buff[i]]; } } } break; default: LOG_CRITICAL("Variable %s type %d not currently supported", m_name.c_str(), m_fli_type); break; } LOG_DEBUG("Retrieved \"%s\" for variable %s", m_val_buff, m_name.c_str()); return m_val_buff; }
const char* FliIntObjHdl::get_signal_value_binstr(void) { mtiInt32T val; if (m_is_var) { val = mti_GetVarValue(get_handle<mtiVariableIdT>()); } else { val = mti_GetSignalValue(get_handle<mtiSignalIdT>()); } std::bitset<32> value((unsigned long)val); std::string bin_str = value.to_string<char,std::string::traits_type, std::string::allocator_type>(); snprintf(m_val_buff, 33, "%s", bin_str.c_str()); return m_val_buff; }