void ISISLiveEventDataListener::getIntArray(const std::string &par, std::vector<int> &arr, const size_t dim) { int dims = static_cast<int>(dim), ndims = 1; arr.resize(dim); if (IDCgetpari(m_daeHandle, par.c_str(), arr.data(), &dims, &ndims) != 0) { throw std::runtime_error("Unable to read " + par + " from DAE"); } }
int ISISLiveEventDataListener::getInt(const std::string &par) const { int sv_dims_array[1] = {1}, sv_ndims = 1, buffer; int stat = IDCgetpari(m_daeHandle, par.c_str(), &buffer, sv_dims_array, &sv_ndims); if (stat != 0) { throw std::runtime_error("Unable to read " + par + " from DAE"); } return buffer; }
void idcfgetpari_(int fh[], const char* name, int value[], int dims_array[], int* ndims, int* errcode, unsigned len_name) #endif { int stat; char t_name[256]; idc_handle_t tfh; strncpy(t_name, name, len_name); t_name[len_name] = '\0'; memcpy(&tfh, fh, sizeof(idc_handle_t)); stat = IDCgetpari(tfh, t_name, value, dims_array, ndims); memcpy(fh, &tfh, sizeof(idc_handle_t)); *errcode = stat; }