Esempio n. 1
0
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;
}
Esempio n. 2
0
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>());
    }
}
Esempio n. 3
0
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>())];
    }
}
Esempio n. 4
0
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;
}
Esempio n. 5
0
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;
}
Esempio n. 6
0
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;
}