double
Project2::SawtoothSignal::getVoltageAtTime(Time t)
{
   double seconds = (double)(t.getTotalTimeAsSeconds());
   double offSet = (double)(getTimeOffset().getTotalTimeAsSeconds());
   double period = (double)(getPeriod().getTotalTimeAsSeconds());
   //Formula for calculating sawtooth voltage at time t
   //V(t) = valueOffset + min + ((t + timeOffset) * (max - min) / period) % (max - min)
   return getVoltageOffset() + getMinVoltage() +
      fmod(((seconds + offSet) *
      (getMaxVoltage() - getMinVoltage()) / period),
      (getMaxVoltage() - getMinVoltage()));
}
Beispiel #2
0
void write_log_2_row(char* analog_buffer) {
  if (files_open == 0) return;
	fp[1] = fopen(filenames[1], "a");
	static int h = 1;
	if (fprintf(fp[1],"%d\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%s\t%d\t%d\t%d\t%d\t%d\t%d\n", h++, getTimeOffset(), acc_accel[0], acc_accel[1], acc_accel[2],  mag_heading(), mag_direction(), analog_buffer, acc_rawaccel[0], acc_rawaccel[1], acc_rawaccel[2], mag_coor[0], mag_coor[1], mag_coor[2]) < 0) {
    printf("ERROR: couldn't write to log 2\n");
	  fclose(fp[1]);
    return;
  }
	fclose(fp[1]);
}