void DataSourceControlWidget::initiazeStyleWidgets()
{
    disconnectStyleWidgets();
    auto graphStyle = mDataSource->graphStyle();

    auto pen = graphStyle->pen();
    ui->lineWidthDoubleSpinBox->setValue(pen.widthF());
    for (auto i = 0; i != lineStyleMap.size(); i++)
        if (std::get<0>(lineStyleMap[i]) == pen.style()) {
            ui->lineStyleComboBox->setCurrentIndex(i);
            break;
        }

    auto interpolation = graphStyle->lineInterpolation();
    for (auto i = 0; i != lineInterpolationMap.size(); i++)
        if (std::get<0>(lineInterpolationMap[i]) == interpolation) {
            ui->lineInterpolationComboBox->setCurrentIndex(i);
            break;
        }

    auto scatter = graphStyle->scatterStyle();
    ui->scatterSizeDoubleSpinBox->setValue(scatter.size());
    ui->scatterDecimationSpinBox->setValue(scatter.decimation());
    for (auto i = 0; i != scatterShapeMap.size(); i++)
        if (std::get<0>(scatterShapeMap[i]) == scatter.shape()) {
            ui->scatterShapeComboBox->setCurrentIndex(i);
            break;
        }

    ui->isColorFixedCheckBox->setChecked(graphStyle->isColorFixed());
    ui->lineColorWidget->setColor(graphStyle->lineColor());
    ui->lineColorWidget->setEnabled(ui->isColorFixedCheckBox->isChecked());

    connectStyleWidgets();
}
示例#2
0
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
bool Datalogger::updateChild(Object* child) {
	DataloggerCalibration* dataloggerCalibrationChild = DataloggerCalibration::Cast(child);
	if ( dataloggerCalibrationChild != NULL ) {
		DataloggerCalibration* dataloggerCalibrationElement = dataloggerCalibration(dataloggerCalibrationChild->index());
		if ( dataloggerCalibrationElement != NULL ) {
			*dataloggerCalibrationElement = *dataloggerCalibrationChild;
			return true;
		}
		return false;
	}

	Decimation* decimationChild = Decimation::Cast(child);
	if ( decimationChild != NULL ) {
		Decimation* decimationElement = decimation(decimationChild->index());
		if ( decimationElement != NULL ) {
			*decimationElement = *decimationChild;
			return true;
		}
		return false;
	}

	return false;
}
示例#3
0
文件: gcmos.c 项目: Fran89/seiscomp3
int
G2CmosDecodeDM24 (G2CmosRaw * in, G2CmosDM24 * out)
{
  int i;

  memset(out,0,sizeof(G2CmosDM24));

  switch(in->len) {
	case 0x100:
	case 0xcc:
	break;
	default:
	return -1;
  }

  DecodeDM24Time (&in->cmos[0], &out->rtc);

  out->sysid = G2uint32 (&in->cmos[16]);
  out->serial = G2uint32 (&in->cmos[20]);
  out->pwm2 = G2uint32 (&in->cmos[24]);

  for (i=0;i<8;++i) {
	out->channels[i]=in->cmos[28+i];
  }

  for (i = 0; i < 8; ++i)
    {
      out->tx_bauds[i] = BaudRate (in->cmos[36 + i] & 0xf, G2uint16(&in->cmos[(i & 3)+124]));
      out->rx_bauds[i] = BaudRate (in->cmos[36 + i] >> 4, G2uint16(&in->cmos[(i & 3)+124]));
    }

  out->aux_channels = G2uint16 (&in->cmos[44]);

  for (i = 0; i < 4; ++i)
    {
      out->masses[i] = in->cmos[48 + i];
    }

  out->orientation = G2uint32 (&in->cmos[52]);
  out->reboots = G2uint16 (&in->cmos[56]);

  DecodeDM24Time (&in->cmos[58], &out->lastboot);

  for (i = 0; i < 4; ++i)
    {
      out->decimations[i] = decimation (in->cmos[68 + i]);
      out->samplerates[i] = in->cmos[72 + i];
    }


  /* BUG! FIXME: - DM24MKIII doesn't set decimations */

  {
  int bad=0;

  
  for (i = 1; i < 4; ++i)
    {
	if (out->decimations[i] != (out->samplerates[i-1] / out->samplerates[i])) bad++;
    }

	if (bad) {

	int sr=2000;
	for (i=0;i<4;++i) {
	   out->decimations[i]=sr/out->samplerates[i];
	   sr=out->samplerates[i];
	}

	}
   }

 

  out->instrument_type=G2uint16(&in->cmos[76]);

  for (i = 0; i < 3; ++i)
    {
      out->stc[i] = in->cmos[78 + (i*2)];
      out->ltc[i] = in->cmos[84 + (i*2)];
      out->ratio[i] = in->cmos[90 + (i*2)];

      out->stc[i+3] = in->cmos[78 + 1+(i*2)];
      out->ltc[i+3] = in->cmos[84 + 1+(i*2)];
      out->ratio[i+3] = in->cmos[90 + 1+(i*2)];

    }
/*7+8 hide here...
      out->stc[3 + i] = in->cmos[146 + i];
      out->ltc[3 + i] = in->cmos[148 + i];
      out->ratio[3 + i] = in->cmos[150 + i];
*/

  out->trigger_filter = in->cmos[96];
  out->filter_tap = in->cmos[98];

  for (i = 0; i < 4; ++i)
    {
      out->triggered_channels[i] = in->cmos[100 + i];
      out->triggers[i] = in->cmos[104 + i];
    }

  out->pretrig = in->cmos[108];
  out->posttrig = in->cmos[110];

  out->flash_file_size = in->cmos[114];
  out->flash_mode = in->cmos[116];
  out->sync_src = G2uint16 (&in->cmos[118]);
  out->heartbeat = G2uint16 (&in->cmos[120]);
  out->acknak_wait = in->cmos[122];
  out->stopbits = in->cmos[123];
  out->once = in->cmos[162];
  out->split = in->cmos[164];
  out->gps_duty = G2uint16 (&in->cmos[198]);

   if (in->len<248) {
      out->auto_center = 255;

  } else {
  i = in->cmos[248];

  if (i == (0xff & (~in->cmos[249])))
    {
      out->auto_center = i;
    }
  else
    {
      out->auto_center = 255;
    }
  }
  return 0;
}
示例#4
0
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
bool Datalogger::removeDecimation(const DecimationIndex& i) {
	Decimation* object = decimation(i);
	if ( object == NULL ) return false;
	return remove(object);
}