diff --git a/src/constants.h b/src/constants.h index 0e883ad7830c60c58a032c48f720f5aba2b66a2f..1ab897de269ba69b276b4447e1e4ad790dbc1ac9 100644 --- a/src/constants.h +++ b/src/constants.h @@ -41,4 +41,4 @@ #define C_BSN_LATENCY 20000 // 1 period = 5.12us, 20000 = +/- 100ms -#endif \ No newline at end of file +#endif diff --git a/src/fpga.cpp b/src/fpga.cpp index 16403202ecbcde1dd4abe06c111b2675c1b06841..0c85e8c3e72f87a37d99be026765cab323f4e37d 100644 --- a/src/fpga.cpp +++ b/src/fpga.cpp @@ -57,7 +57,7 @@ Fpga::Fpga(list<class Node*>& nodelist) pointMap->add_register("FPGA_mask_R", "fpga/enable_mask", nodes.size(), 1, "RO", REG_FORMAT_BOOLEAN, 1); pointMap->add_register("FPGA_mask_RW", "fpga/enable_mask", nodes.size(), 1, "RW", REG_FORMAT_BOOLEAN, 1); pointMap->add_register("FPGA_status_R", "fpga/status", nodes.size(), 1, "RO", REG_FORMAT_BOOLEAN, 1); - pointMap->add_register("FPGA_temp_R", "fpga/temp", nodes.size(), 1, "RO", REG_FORMAT_FLOAT, 1); + pointMap->add_register("FPGA_temp_R", "fpga/temp", nodes.size(), 1, "RO", REG_FORMAT_DOUBLE, 1); pointMap->add_register("FPGA_version_R", "fpga/name", nodes.size(), 1, "RO", REG_FORMAT_STRING, 1); pointMap->add_register("FPGA_firmware_version_R", "fpga/firmware_version", nodes.size(), 1, "RO", REG_FORMAT_STRING, 1); pointMap->add_register("FPGA_hardware_version_R", "fpga/hardware_version", nodes.size(), 1, "RO", REG_FORMAT_STRING, 1); @@ -84,14 +84,14 @@ Fpga::Fpga(list<class Node*>& nodelist) pointMap->add_register("FPGA_sdp_info_fsub_type_R", "fpga/sdp_info_fsub_type", nodes.size(), 1, "RO", REG_FORMAT_UINT32, 1); pointMap->add_register("FPGA_sdp_info_block_period_R", "fpga/sdp_info_block_period", nodes.size(), 1, "RO", REG_FORMAT_UINT32, 1); - pointMap->add_register("FPGA_wg_enable_R", "fpga/wg_enable", nodes.size(), C_S_pn, "RO", REG_FORMAT_BOOLEAN, 1); - pointMap->add_register("FPGA_wg_enable_RW", "fpga/wg_enable", nodes.size(), C_S_pn, "RW", REG_FORMAT_BOOLEAN, 1); - pointMap->add_register("FPGA_wg_amplitude_R", "fpga/wg_amplitude", nodes.size(), C_S_pn, "RO", REG_FORMAT_FLOAT, 1); - pointMap->add_register("FPGA_wg_amplitude_RW", "fpga/wg_amplitude", nodes.size(), C_S_pn, "RW", REG_FORMAT_FLOAT, 1); - pointMap->add_register("FPGA_wg_phase_R", "fpga/wg_phase", nodes.size(), C_S_pn, "RO", REG_FORMAT_FLOAT, 1); - pointMap->add_register("FPGA_wg_phase_RW", "fpga/wg_phase", nodes.size(), C_S_pn, "RW", REG_FORMAT_FLOAT, 1); - pointMap->add_register("FPGA_wg_frequency_R", "fpga/wg_frequency", nodes.size(), C_S_pn, "RO", REG_FORMAT_FLOAT, 1); - pointMap->add_register("FPGA_wg_frequency_RW", "fpga/wg_frequency", nodes.size(), C_S_pn, "RW", REG_FORMAT_FLOAT, 1); + pointMap->add_register("FPGA_wg_enable_R", "fpga/wg_enable", nodes.size(), C_S_pn, "RO", REG_FORMAT_BOOLEAN, 1); + pointMap->add_register("FPGA_wg_enable_RW", "fpga/wg_enable", nodes.size(), C_S_pn, "RW", REG_FORMAT_BOOLEAN, 1); + pointMap->add_register("FPGA_wg_amplitude_R", "fpga/wg_amplitude", nodes.size(), C_S_pn, "RO", REG_FORMAT_DOUBLE, 1); + pointMap->add_register("FPGA_wg_amplitude_RW", "fpga/wg_amplitude", nodes.size(), C_S_pn, "RW", REG_FORMAT_DOUBLE, 1); + pointMap->add_register("FPGA_wg_phase_R", "fpga/wg_phase", nodes.size(), C_S_pn, "RO", REG_FORMAT_DOUBLE, 1); + pointMap->add_register("FPGA_wg_phase_RW", "fpga/wg_phase", nodes.size(), C_S_pn, "RW", REG_FORMAT_DOUBLE, 1); + pointMap->add_register("FPGA_wg_frequency_R", "fpga/wg_frequency", nodes.size(), C_S_pn, "RO", REG_FORMAT_DOUBLE, 1); + pointMap->add_register("FPGA_wg_frequency_RW", "fpga/wg_frequency", nodes.size(), C_S_pn, "RW", REG_FORMAT_DOUBLE, 1); uint32_t scrap_span = 0; uint32_t scrap_span_next = 0; @@ -214,14 +214,9 @@ bool Fpga::point(TermOutput& termout, const char cmd, const string addr, auto node = select_node(nodes[idx]); // if (node->getEnabled() == false) { continue; } - // uint node_nr = node_number(node); - CPointMap *regmap = node->get_RegisterMap(); int span = regmap->getDataSize(relative_addr); - // CMMap *mmap = node->get_MMap(); - // int span = mmap->getSpan(addr); - int nof_values = nvalues; if (nvalues < 0 || nvalues > span) { nof_values = span; @@ -236,9 +231,6 @@ bool Fpga::point(TermOutput& termout, const char cmd, const string addr, cout << "str=" << cm.getStr(idx) << " len=" << cm.getStrLen(idx) << endl; memcpy((void *)data2, (void *)cm.getStrPtr(idx), cm.getStrLen(idx)); nof_values = cm.getStrLen(idx); - // if (cm.getStrLen(idx) % 4 > 0) { - // nof_values += 1; - // } if ((ret = node->exec_cmd(cmd, relative_addr, type, instance, data2, nof_values, format))) { retcnt++; @@ -325,6 +317,13 @@ bool Fpga::point(TermOutput& termout, const char cmd, const string addr, ptr_out[idx * termresults.nof_vals + i] = ptr_in[i]; } } break; + case REG_FORMAT_DOUBLE: { + double *ptr_in = (double *)termresults.val; + double *ptr_out = (double *)termout.val; + for (unsigned int i=0; i<termresults.nof_vals; i++) { + ptr_out[idx * termresults.nof_vals + i] = ptr_in[i]; + } + } break; case REG_FORMAT_STRING: { char *ptr_in = (char *)termresults.val; char *ptr_out = (char *)termout.val; diff --git a/src/node.cpp b/src/node.cpp index fe7e36f503223e0ef19ecec8c3d87ddc9f318f76..fdea5dacfee5ed01615c5ea120c707ecd4b99cdf 100644 --- a/src/node.cpp +++ b/src/node.cpp @@ -147,6 +147,9 @@ void Node::worker() case REG_FORMAT_FLOAT: { sz = sizeof(float); } break; + case REG_FORMAT_DOUBLE: { + sz = sizeof(double); + } break; case REG_FORMAT_INT32: { sz = sizeof(int32_t); } break; @@ -320,6 +323,9 @@ bool Node::exec_reply(TermOutput& termout) int sz = 0; switch (r->datatype) { + case REG_FORMAT_DOUBLE: { + sz = sizeof(double); + } break; case REG_FORMAT_FLOAT: { sz = sizeof(float); } break; diff --git a/src/opcua/ua_server.cpp b/src/opcua/ua_server.cpp index 583932ef6a3217a37fe0ba7933180e676950d55d..3172096b18483420eaafa52534ca559d1cf296d7 100644 --- a/src/opcua/ua_server.cpp +++ b/src/opcua/ua_server.cpp @@ -139,6 +139,12 @@ static UA_StatusCode ua_read_DataSource(UA_Server *server, UA_Variant_setScalarCopy(&dataValue->value, &value, &UA_TYPES[UA_TYPES_FLOAT]); dataValue->hasValue = true; } break; + case UA_TYPES_DOUBLE: { + double *ptr = (double *)termout.val; + UA_Double value = (UA_Double)ptr[0]; + UA_Variant_setScalarCopy(&dataValue->value, &value, &UA_TYPES[UA_TYPES_DOUBLE]); + dataValue->hasValue = true; + } break; case UA_TYPES_INT16: { int16_t *ptr = (int16_t *)termout.val; UA_Int16 value = (UA_Int16)ptr[0]; @@ -202,6 +208,16 @@ static UA_StatusCode ua_read_DataSource(UA_Server *server, UA_Variant_setArray(&dataValue->value, values, termout.nof_vals, &UA_TYPES[UA_TYPES_FLOAT]); dataValue->hasValue = true; } break; + case UA_TYPES_DOUBLE: { + UA_Double *values = (UA_Double *) UA_Array_new(termout.nof_vals, &UA_TYPES[UA_TYPES_DOUBLE]); + double *ptr = (double *)termout.val; + for (unsigned int i=0; i<termout.nof_vals; i++) { + values[i] = UA_Double(ptr[i]); + //cout << i << " ptr=" << ptr[i] << " value=" << values[i] << endl; + } + UA_Variant_setArray(&dataValue->value, values, termout.nof_vals, &UA_TYPES[UA_TYPES_DOUBLE]); + dataValue->hasValue = true; + } break; case UA_TYPES_INT16: { UA_Int16 *values = (UA_Int16 *) UA_Array_new(termout.nof_vals, &UA_TYPES[UA_TYPES_INT16]); int16_t *ptr = (int16_t *)termout.val; @@ -297,6 +313,9 @@ static UA_StatusCode ua_write_DataSource(UA_Server *server, case UA_TYPES_FLOAT: { retval = false; } break; + case UA_TYPES_DOUBLE: { + retval = false; + } break; case UA_TYPES_INT16: { retval = true; int16_t *dptr = (int16_t *)data->value.data; @@ -357,34 +376,29 @@ static UA_StatusCode ua_write_DataSource(UA_Server *server, if (data->hasValue && data->value.arrayLength > 0) { //data.value is a UA_Variant - // cout << "data.value.arrayLength=" << data->value.arrayLength << endl; - - // unsigned int *data_sdp = new unsigned int[data->value.arrayLength]; - uint32_t *data_sdp = new uint32_t[data->value.arrayLength]; + uint32_t *data_sdp = new uint32_t[data->value.arrayLength*2]; CMData cm(data->value.arrayLength); cm.clear(); switch (ntype.identifier.numeric - 1) { case UA_TYPES_STRING: { cm.setFormat(FORMAT_STRING); - // cout << "dataformat=" << cm.getFormat() << endl; UA_String *dptr = (UA_String *)data->value.data; UA_String str_data; for (int i=0; i<(int)data->value.arrayLength; i++){ str_data = dptr[i]; - // cout << "n_chars=" << to_string(str_data.length) << endl; cm.clearStr(i); memcpy((void *)cm.getStrPtr(i), (void *)str_data.data, str_data.length); - cout << dec << i << " [" << cm.getStr(i) << "] " << endl; } retval = true; } break; case UA_TYPES_FLOAT: { retval = true; - float *dptr = (float *)data->value.data; - for (uint i=0; i<data->value.arrayLength; i++) { - data_sdp[i] = (uint32_t)dptr[i]; - } + memcpy(data_sdp, data->value.data, data->value.arrayLength*sizeof(UA_Float)); + } break; + case UA_TYPES_DOUBLE: { + retval = true; + memcpy(data_sdp, data->value.data, data->value.arrayLength*sizeof(UA_Double)); } break; case UA_TYPES_INT16: { retval = true; @@ -782,6 +796,62 @@ static void ua_add_Variable_float(UA_Server *server, string regname, unsigned in } } +static void ua_add_Variable_double(UA_Server *server, string regname, unsigned int size, string perm, bool is_scalar) +{ + UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "ua_add_Variable_double: %s", (char *)regname.c_str()); + UA_VariableAttributes vattr = UA_VariableAttributes_default; + + if (perm == "RW") { + vattr.accessLevel = UA_ACCESSLEVELMASK_READ | UA_ACCESSLEVELMASK_WRITE; + } + else if (perm == "WO") { + vattr.accessLevel = UA_ACCESSLEVELMASK_WRITE; + } + else if (perm == "RO") { + vattr.accessLevel = UA_ACCESSLEVELMASK_READ; + } + + if (is_scalar) { + UA_Double value = UA_Double(0.0); + UA_Variant_setScalar(&vattr.value, &value, &UA_TYPES[UA_TYPES_DOUBLE]); + vattr.valueRank = UA_VALUERANK_SCALAR; + } + else { + vattr.valueRank = UA_VALUERANK_ONE_DIMENSION; + + UA_UInt32 myArrayDimensions[1] = {size}; + vattr.arrayDimensions = myArrayDimensions; + vattr.arrayDimensionsSize = 1; + + UA_Double *values = (UA_Double *) UA_Array_new(size, &UA_TYPES[UA_TYPES_DOUBLE]); + for (unsigned int i=0; i<size; i++) { + values[i] = UA_Double(0.0); + } + UA_Variant_setArray(&vattr.value, values, size, &UA_TYPES[UA_TYPES_DOUBLE]); + + vattr.value.arrayDimensions = myArrayDimensions; + vattr.value.arrayDimensionsSize = 1; + } + + vattr.dataType = UA_TYPES[UA_TYPES_DOUBLE].typeId; + vattr.displayName = UA_LOCALIZEDTEXT((char *)"locale", (char *)regname.c_str()); + UA_DataSource DataSource; + DataSource.read = ua_read_DataSource; + DataSource.write = ua_write_DataSource; + + UA_StatusCode retval = UA_Server_addDataSourceVariableNode(server, + UA_NODEID_STRING(mUaLofarNameSpace, (char *)regname.c_str()), // currentNodeId + UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER), // parentNodeId + UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES), // parentReferenceNodeId + UA_QUALIFIEDNAME(mUaLofarNameSpace, (char *)regname.c_str()), // node browse name + UA_NODEID_NUMERIC(0, UA_NS0ID_BASEDATAVARIABLETYPE), + vattr, DataSource, NULL, NULL); + if (retval != UA_STATUSCODE_GOOD) { + // handle error + cout << "Error adding node" << endl; + } +} + static void ua_add_Variable_boolean(UA_Server *server, string regname, unsigned int size, string perm, bool is_scalar) { UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "ua_add_Variable_boolean: %s", (char *)regname.c_str()); @@ -861,6 +931,9 @@ static void ua_add_Variable(UA_Server *server, string regname, int format, unsig case REG_FORMAT_FLOAT: { ua_add_Variable_float(server, regname, size, perm, is_scalar); } break; + case REG_FORMAT_DOUBLE: { + ua_add_Variable_double(server, regname, size, perm, is_scalar); + } break; case REG_FORMAT_BOOLEAN: { ua_add_Variable_boolean(server, regname, size, perm, is_scalar); } break; diff --git a/src/periph/fpga.cpp b/src/periph/fpga.cpp index a2e48f3ad82d5415f8b97cdb2dfd5a78c3d7af35..469d3d178d957568d938f1e302b7bb8e5053420f 100644 --- a/src/periph/fpga.cpp +++ b/src/periph/fpga.cpp @@ -89,7 +89,7 @@ Periph_fpga::Periph_fpga(string ipaddr, string expected_design_name, uint expect registerMap->add_register("fpga/note", "-", 0, 1, "RO", REG_FORMAT_STRING, 1); registerMap->add_register("fpga/firmware_version", "-", 0, 1, "RO", REG_FORMAT_STRING, 10); registerMap->add_register("fpga/hardware_version", "-", 0, 1, "RO", REG_FORMAT_STRING, 10); - registerMap->add_register("fpga/temp", "-", 1, 1, "RO", REG_FORMAT_STRING, 5); + registerMap->add_register("fpga/temp", "-", 1, 1, "RO", REG_FORMAT_DOUBLE, 5); registerMap->add_register("fpga/status", "-", 1, 1, "RO", REG_FORMAT_STRING, 1); registerMap->add_register("fpga/enable_mask", "-", 1, 1, "RW", REG_FORMAT_BOOLEAN, 1); registerMap->add_register("fpga/rbf", "-", 0, 1, "RW", REG_FORMAT_STRING, 1); @@ -123,9 +123,9 @@ Periph_fpga::Periph_fpga(string ipaddr, string expected_design_name, uint expect registerMap->add_register("fpga/sdp_info_block_period", "-", 1, 1, "RO", REG_FORMAT_UINT32, 1); registerMap->add_register("fpga/wg_enable", "-", 1, 12, "RW", REG_FORMAT_BOOLEAN, 1); - registerMap->add_register("fpga/wg_amplitude", "-", 1, 12, "RW", REG_FORMAT_FLOAT, 1); - registerMap->add_register("fpga/wg_phase", "-", 1, 12, "RW", REG_FORMAT_FLOAT, 1); - registerMap->add_register("fpga/wg_frequency", "-", 1, 12, "RW", REG_FORMAT_FLOAT, 1); + registerMap->add_register("fpga/wg_amplitude", "-", 1, 12, "RW", REG_FORMAT_DOUBLE, 1); + registerMap->add_register("fpga/wg_phase", "-", 1, 12, "RW", REG_FORMAT_DOUBLE, 1); + registerMap->add_register("fpga/wg_frequency", "-", 1, 12, "RW", REG_FORMAT_DOUBLE, 1); registerMap->print_screen(); @@ -214,7 +214,7 @@ bool Periph_fpga::Write(const string addr_str, const uint32_t nvalues, uint32_t } uint32_t addr = mmap->getValidAddr((addr_str), 1); uint32_t span = mmap->getSpan((addr_str)); - cout << "addr=" << addr_str << " span=" << to_string(span) << endl; + //cout << "addr=" << addr_str << " span=" << to_string(span) << endl; mmap->getWritePermission((addr_str)); bool isfifo = mmap->type_isfifo((addr_str)); @@ -561,7 +561,7 @@ bool Periph_fpga::monitor(TermOutput& termout, uint seconds) termout.clear(); } if ((seconds % registerMap->getUpdateInterval("fpga/temp")) == 0) { - read_fpga_temperature(termout, REG_FORMAT_FLOAT, R_UCP); + read_fpga_temperature(termout, REG_FORMAT_DOUBLE, R_UCP); termout.clear(); } if ((seconds % registerMap->getUpdateInterval("fpga/hardware_version")) == 0) { @@ -803,7 +803,7 @@ bool Periph_fpga::read_stamps(TermOutput& termout, int format) bool Periph_fpga::read_fpga_temperature(TermOutput& termout, int format, int mode) { bool retval = true; - float temp = my_current_temp; + double temp = my_current_temp; if (mode == R_UCP) { // cout << "read from UCP" << endl; uint32_t data[20]; @@ -813,9 +813,9 @@ bool Periph_fpga::read_fpga_temperature(TermOutput& termout, int format, int mod // ADC to engineering // see the constants: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_alttemp_sense.pdf // page 10 - temp = ((693. * (float)data[0]) / 1024.) - 265; + temp = ((693. * (double)data[0]) / 1024.) - 265; } - float *temp_ptr = (float *)termout.val; + double *temp_ptr = (double *)termout.val; *temp_ptr = temp; termout.nof_vals = 1; termout.datatype = format; @@ -1407,10 +1407,10 @@ bool Periph_fpga::read_wg_amplitude(TermOutput& termout, int format) { retval = Read(regname, &data[i]); } - float ampl; - float *_ptr = (float *)termout.val ; + double ampl; + double *_ptr = (double *)termout.val ; for (uint i=0; i< C_S_pn; i++) { - ampl = (float)data[i] / C_WG_AMPL_UNIT; + ampl = ((double)data[i]) / C_WG_AMPL_UNIT; *_ptr = ampl; _ptr++; } @@ -1424,13 +1424,15 @@ bool Periph_fpga::write_wg_amplitude(uint32_t *data, uint32_t nvalues) { bool retval = true; uint32_t *reg = new uint32_t[2]; - float ampl; + double ampl; string regname; + double *_ptr = (double *)data; for (uint i=0; i< C_S_pn; i++) { regname = "mm/0/REG_WG/" + to_string(i) + "/ampl"; - ampl = (float)data[i] * C_WG_AMPL_UNIT; + ampl = (*_ptr) * C_WG_AMPL_UNIT; reg[0] = (uint32_t)ampl; retval = Write(regname, 1, reg); + _ptr++; } delete[] reg; return retval; @@ -1452,10 +1454,10 @@ bool Periph_fpga::read_wg_phase(TermOutput& termout, int format) { retval = Read(regname, &data[i]); } - float phase; - float *_ptr = (float *)termout.val ; + double phase; + double *_ptr = (double *)termout.val ; for (uint i=0; i< C_S_pn; i++) { - phase = ((float)data[i]) / C_WG_PHASE_UNIT; + phase = ((double)data[i]) / C_WG_PHASE_UNIT; *_ptr = phase; _ptr++; } @@ -1471,11 +1473,13 @@ bool Periph_fpga::write_wg_phase (uint32_t *data, uint32_t nvalues) { float phase; string regname; + double *_ptr = (double *)data; for (uint i=0; i< C_S_pn; i++) { regname = "mm/0/REG_WG/" + to_string(i) + "/phase"; - phase = ((float)data[i]) * C_WG_PHASE_UNIT; + phase = (*_ptr) * C_WG_PHASE_UNIT; reg[0] = (uint32_t)phase; retval = Write(regname, 1, reg); + _ptr++; } delete[] reg; return retval; @@ -1498,10 +1502,10 @@ bool Periph_fpga::read_wg_frequency(TermOutput& termout, int format) { retval = Read(regname, &data[i]); } - float freq; - float *_ptr = (float *)termout.val ; + double freq; + double *_ptr = (double *)termout.val ; for (uint i=0; i< C_S_pn; i++) { - freq = ((float)data[i] / C_WG_FREQ_UNIT) * C_F_adc; + freq = (((double)data[i]) / C_WG_FREQ_UNIT) * C_F_adc; *_ptr = freq; _ptr++; } @@ -1515,21 +1519,22 @@ bool Periph_fpga::write_wg_frequency(uint32_t *data, uint32_t nvalues) { bool retval = true; uint32_t *reg = new uint32_t[2]; - float freq, intpart; + double freq, intpart; string regname; + double *_ptr = (double *)data; for (uint i=0; i< C_S_pn; i++) { regname = "mm/0/REG_WG/" + to_string(i) + "/freq"; - freq = (float)data[i] / C_F_adc; + freq = (*_ptr) / C_F_adc; freq = modf(freq, &intpart); freq = freq * C_WG_FREQ_UNIT; reg[0] = (uint32_t)freq; retval = Write(regname, 1, reg); + _ptr++; } delete[] reg; return retval; } - bool Periph_fpga::write_wdi_override(TermOutput& termout) { uint32_t data = 0xB007FAC7; diff --git a/src/periph/fpga.h b/src/periph/fpga.h index 08e6891c3e7cf37296dd252e36614a3433dadb7a..a0ab7c3a82e333afb17f1959ab0baed6627e4084 100644 --- a/src/periph/fpga.h +++ b/src/periph/fpga.h @@ -55,9 +55,7 @@ private: std::string my_current_fw_version; std::string my_current_hardware_version; std::string my_current_firmware_version; - float my_current_temp; - // float my_current_processing_enable; - + double my_current_temp; std::vector<uint32_t> Scrap_RW_copy; std::vector<short> Weights_RW_copy; diff --git a/src/registers.h b/src/registers.h index 0c34e4a2f05024b6a96ef16999695b61dc8f37ec..fd78b384166e2da7db4ed3011d2b3bc2cb428cae 100644 --- a/src/registers.h +++ b/src/registers.h @@ -43,7 +43,8 @@ #define REG_FORMAT_INT32 4 #define REG_FORMAT_UINT32 5 #define REG_FORMAT_FLOAT 6 -#define REG_FORMAT_BOOLEAN 7 +#define REG_FORMAT_DOUBLE 7 +#define REG_FORMAT_BOOLEAN 8 class CMMap { private: diff --git a/src/tools/util.h b/src/tools/util.h index f9fa23005ebca23230de19f1674799f6c5b0898d..a2faf0f06faed2120c2705231ff9cfbca1524c8b 100644 --- a/src/tools/util.h +++ b/src/tools/util.h @@ -53,7 +53,6 @@ public: const static uint MAX_VAL_SIZE = 100; const static uint FORMAT_UNKNOWN = 0; const static uint FORMAT_STRING = 1; -const static uint FORMAT_UINT32 = 2; struct StrData { char val[MAX_VAL_SIZE]; @@ -65,17 +64,14 @@ public: uint n_vals = 1; uint dataformat = FORMAT_UNKNOWN; StrData *strdata = NULL; - uint32_t *intdata = NULL; CMData(uint nvals=1) { n_vals = nvals; strdata = new StrData[n_vals]; - intdata = new uint32_t[n_vals]; }; ~CMData() { if (strdata) delete[] strdata; - if (intdata) delete[] intdata; }; void setFormat(uint format) { @@ -91,7 +87,6 @@ public: //datatype = 0; for (uint i=0; i<n_vals; i++){ clearStr(i); - clearInt(i); } } @@ -99,10 +94,6 @@ public: std::memset((void *)strdata[val_nr].val, 0, MAX_VAL_SIZE); } - void clearInt(uint val_nr) { - intdata[val_nr] = 0; - } - char *getStrPtr(uint val_nr) { return strdata[val_nr].val; } @@ -114,14 +105,6 @@ public: std::string getStr(uint val_nr) { return std::string(strdata[val_nr].val); } - - uint32_t getInt(uint val_nr) { - return intdata[val_nr]; - } - - void setInt(uint val_nr, uint val) { - intdata[val_nr] = (uint32_t)val; - } };