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;
}
示例#3
0
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;
}