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())); }
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]); }