コード例 #1
0
ファイル: tests_main.c プロジェクト: ericweiye/Firmware
static int
test_perf(int argc, char *argv[])
{
	perf_counter_t	cc, ec;

	cc = perf_alloc(PC_COUNT, "test_count");
	ec = perf_alloc(PC_ELAPSED, "test_elapsed");

	if ((cc == NULL) || (ec == NULL)) {
		printf("perf: counter alloc failed\n");
		return 1;
	}

	perf_begin(ec);
	perf_count(cc);
	perf_count(cc);
	perf_count(cc);
	perf_count(cc);
	printf("perf: expect count of 4\n");
	perf_print_counter(cc);
	perf_end(ec);
	printf("perf: expect count of 1\n");
	perf_print_counter(ec);
	printf("perf: expect at least two counters\n");
	perf_print_all(0);

	perf_free(cc);
	perf_free(ec);

	return OK;
}
コード例 #2
0
ファイル: cm8jl65.cpp プロジェクト: AlexisTM/Firmware
void
CM8JL65::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	_reports->print_info("report queue");
}
コード例 #3
0
ファイル: fxos8700cq.cpp プロジェクト: bo-rc/Firmware
void
FXOS8700CQ::print_info()
{
	printf("accel reads:          %u\n", _accel_read);
	printf("mag reads:            %u\n", _mag_read);
	perf_print_counter(_accel_sample_perf);
	perf_print_counter(_mag_sample_perf);
	perf_print_counter(_bad_registers);
	perf_print_counter(_bad_values);
	perf_print_counter(_accel_duplicates);
	_accel_reports->print_info("accel reports");
	_mag_reports->print_info("mag reports");
	::printf("checked_next: %u\n", _checked_next);

	for (uint8_t i = 0; i < FXOS8700C_NUM_CHECKED_REGISTERS; i++) {
		uint8_t v = read_reg(_checked_registers[i]);

		if (v != _checked_values[i]) {
			::printf("reg %02x:%02x should be %02x\n",
				 (unsigned)_checked_registers[i],
				 (unsigned)v,
				 (unsigned)_checked_values[i]);
		}
	}

	::printf("temperature: %.2f\n", (double)_last_temperature);
}
コード例 #4
0
ファイル: gimbal.cpp プロジェクト: anton-matosov/PX4Firmware
void
Gimbal::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_buffer_overflows);
}
コード例 #5
0
int
PX4IO_serial::ioctl(unsigned operation, unsigned &arg)
{

	switch (operation) {

	case 1:		/* XXX magic number - test operation */
		switch (arg) {
		case 0:
			lowsyslog("test 0\n");

			/* kill DMA, this is a PIO test */
			stm32_dmastop(_tx_dma);
			stm32_dmastop(_rx_dma);
			rCR3 &= ~(USART_CR3_DMAR | USART_CR3_DMAT);

			for (;;) {
				while (!(rSR & USART_SR_TXE))
					;
				rDR = 0x55;
			}
			return 0;

		case 1:
			{
				unsigned fails = 0;
				for (unsigned count = 0;; count++) {
					uint16_t value = count & 0xffff;

					if (write((PX4IO_PAGE_TEST << 8) | PX4IO_P_TEST_LED, &value, 1) != 0)
						fails++;
						
					if (count >= 5000) {
						lowsyslog("==== test 1 : %u failures ====\n", fails);
						perf_print_counter(_pc_txns);
						perf_print_counter(_pc_dmasetup);
						perf_print_counter(_pc_retries);
						perf_print_counter(_pc_timeouts);
						perf_print_counter(_pc_crcerrs);
						perf_print_counter(_pc_dmaerrs);
						perf_print_counter(_pc_protoerrs);
						perf_print_counter(_pc_uerrs);
						perf_print_counter(_pc_idle);
						perf_print_counter(_pc_badidle);
						count = 0;
					}
				}
				return 0;
			}
		case 2:
			lowsyslog("test 2\n");
			return 0;
		}
	default:
		break;
	}

	return -1;
}
コード例 #6
0
ファイル: airspeed.cpp プロジェクト: ChristophTobler/Firmware
void
Airspeed::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	warnx("poll interval:  %u ticks", _measure_ticks);
	_reports->print_info("report queue");
}
コード例 #7
0
ファイル: sf1xx.cpp プロジェクト: syantek/Firmware
void
SF1XX::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	_reports->print_info("report queue");
}
コード例 #8
0
ファイル: LidarLitePWM.cpp プロジェクト: Aerovinci/Firmware
void LidarLitePWM::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_read_errors);
	perf_print_counter(_sensor_zero_resets);
	warnx("poll interval:  %u ticks", getMeasureTicks());
	warnx("distance: %.3fm", (double)_range.current_distance);
}
コード例 #9
0
ファイル: airspeedsim.cpp プロジェクト: JW-CHOI/Firmware
void
AirspeedSim::print_info()
{
    perf_print_counter(_sample_perf);
    perf_print_counter(_comms_errors);
    perf_print_counter(_buffer_overflows);
    PX4_INFO("poll interval:  %u ticks", _measure_ticks);
    _reports->print_info("report queue");
}
コード例 #10
0
void
L3GD20::print_info()
{
	printf("gyro reads:          %u\n", _read);
	perf_print_counter(_sample_perf);
	perf_print_counter(_reschedules);
	perf_print_counter(_errors);
	_reports->print_info("report queue");
}
コード例 #11
0
ファイル: qmc5883.cpp プロジェクト: AlexisTM/Firmware
void
QMC5883::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	print_message(_last_report);
	_reports->print_info("report queue");
}
コード例 #12
0
ファイル: lis3mdl.cpp プロジェクト: LiYuanxing/Firmware
void
LIS3MDL::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	PX4_INFO("poll interval:  %u ticks", _measure_ticks);
	print_message(_last_report);
	_reports->print_info("report queue");
}
コード例 #13
0
ファイル: hmc5883.cpp プロジェクト: akistanov/Firmware
void
HMC5883::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_buffer_overflows);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	_reports->print_info("report queue");
}
コード例 #14
0
ファイル: tfmini.cpp プロジェクト: ayu135/Firmware
void
TFMINI::print_info()
{
	printf("Using port '%s'\n", _port);
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	printf("poll interval:  %d ticks\n", _measure_ticks);
	_reports->print_info("report queue");
}
コード例 #15
0
ファイル: lm73.cpp プロジェクト: AdyashaDash/fw_px4_sysidCL
void
LM73::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_buffer_overflows);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	_reports->print_info("report queue");
	printf("ambient temperature:   %10.4f\n", (double)(temperature));
}
コード例 #16
0
ファイル: ets_airspeed.cpp プロジェクト: omija1/PX4Firmware
void
ETSAirspeed::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_buffer_overflows);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	printf("report queue:   %u (%u/%u @ %p)\n",
	       _num_reports, _oldest_report, _next_report, _reports);
}
コード例 #17
0
void
LSM303D::print_info()
{
    perf_print_counter(_accel_sample_perf);
    printf("report queue:   %u (%u/%u @ %p)\n",
           _num_accel_reports, _oldest_accel_report, _next_accel_report, _accel_reports);
    perf_print_counter(_mag_sample_perf);
    printf("report queue:   %u (%u/%u @ %p)\n",
           _num_mag_reports, _oldest_mag_report, _next_mag_report, _mag_reports);
}
コード例 #18
0
ファイル: LidarLiteI2C.cpp プロジェクト: imcnanie/Firmware
void LidarLiteI2C::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_sensor_resets);
	perf_print_counter(_sensor_zero_resets);
	printf("poll interval:  %u ticks\n", getMeasureTicks());
	_reports->print_info("report queue");
	printf("distance: %ucm (0x%04x)\n",
	       (unsigned)_last_distance, (unsigned)_last_distance);
}
コード例 #19
0
ファイル: ak8975.cpp プロジェクト: smithandrewc/Firmware
void
AK8975::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_buffer_overflows);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	_reports->print_info("report queue");
	printf("sensitivity ASAX %02X\n", _fuse[0]);
	printf("sensitivity ASAY %02X\n", _fuse[1]);
	printf("sensitivity ASAZ %02X\n", _fuse[2]);
}
コード例 #20
0
ファイル: ll40ls.cpp プロジェクト: kevin03/Firmware
void
LL40LS::print_info()
{
    perf_print_counter(_sample_perf);
    perf_print_counter(_comms_errors);
    perf_print_counter(_buffer_overflows);
    perf_print_counter(_sensor_resets);
    perf_print_counter(_sensor_zero_resets);
    printf("poll interval:  %u ticks\n", _measure_ticks);
    _reports->print_info("report queue");
    printf("distance: %ucm (0x%04x)\n",
           (unsigned)_last_distance, (unsigned)_last_distance);
}
コード例 #21
0
void
SPV1020::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_buffer_overflows);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	printf("report queue:   %u (%u/%u @ %p)\n",
	       _num_reports, _oldest_report, _next_report, _reports);
	for(uint8_t mppt_device=0; mppt_device<max_mppt_devices ;mppt_device++){
		printf("MPPT device %d: Current: %10.4f[A], Voltage: %10.4f[v], PWM: %d, Status vector: %x, \n", mppt_device, (double) mppt_current[mppt_device] , (double) mppt_voltage[mppt_device] , mppt_pwm[mppt_device], mppt_status[mppt_device]);
	}
}
コード例 #22
0
ファイル: lps25h.cpp プロジェクト: andre-nguyen/Firmware
void
LPS25H::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_buffer_overflows);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	printf("pressure    %.2f\n", (double)_last_report.pressure);
	printf("altitude:    %.2f\n", (double)_last_report.altitude);
	printf("temperature %.2f\n", (double)_last_report.temperature);

	_reports->print_info("report queue");
}
コード例 #23
0
ファイル: hmc5883.cpp プロジェクト: 30rasheed/x-VTOLdrone
void
HMC5883::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	perf_print_counter(_buffer_overflows);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	printf("output  (%.2f %.2f %.2f)\n", (double)_last_report.x, (double)_last_report.y, (double)_last_report.z);
	printf("offsets (%.2f %.2f %.2f)\n", (double)_scale.x_offset, (double)_scale.y_offset, (double)_scale.z_offset);
	printf("scaling (%.2f %.2f %.2f) 1/range_scale %.2f range_ga %.2f\n", 
	       (double)_scale.x_scale, (double)_scale.y_scale, (double)_scale.z_scale,
	       (double)1.0/_range_scale, (double)_range_ga);
	_reports->print_info("report queue");
}
コード例 #24
0
ファイル: ist8310.cpp プロジェクト: Aerovinci/Firmware
void
IST8310::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_comms_errors);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	printf("output  (%.2f %.2f %.2f)\n", (double)_last_report.x, (double)_last_report.y, (double)_last_report.z);
	printf("offsets (%.2f %.2f %.2f)\n", (double)_scale.x_offset, (double)_scale.y_offset, (double)_scale.z_offset);
	printf("scaling (%.2f %.2f %.2f) 1/range_scale %.2f\n",
	       (double)_scale.x_scale, (double)_scale.y_scale, (double)_scale.z_scale,
	       (double)(1.0f / _range_scale));
	printf("temperature %.2f\n", (double)_last_report.temperature);
	_reports->print_info("report queue");
}
コード例 #25
0
ファイル: bmi160.cpp プロジェクト: SJW623/Firmware
void
BMI160::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_accel_reads);
	perf_print_counter(_gyro_reads);
	perf_print_counter(_bad_transfers);
	perf_print_counter(_bad_registers);
	perf_print_counter(_good_transfers);
	perf_print_counter(_reset_retries);
	perf_print_counter(_duplicates);
	_accel_reports->print_info("accel queue");
	_gyro_reports->print_info("gyro queue");
	::printf("checked_next: %u\n", _checked_next);

	for (uint8_t i = 0; i < BMI160_NUM_CHECKED_REGISTERS; i++) {
		uint8_t v = read_reg(_checked_registers[i]);

		if (v != _checked_values[i]) {
			::printf("reg %02x:%02x should be %02x\n",
				 (unsigned)_checked_registers[i],
				 (unsigned)v,
				 (unsigned)_checked_values[i]);
		}

		if (v != _checked_bad[i]) {
			::printf("reg %02x:%02x was bad %02x\n",
				 (unsigned)_checked_registers[i],
				 (unsigned)v,
				 (unsigned)_checked_bad[i]);
		}
	}

	::printf("temperature: %.1f\n", (double)_last_temperature);
}
コード例 #26
0
ファイル: bma180.cpp プロジェクト: aqakulov/Firmware
void
BMA180::print_info()
{
	perf_print_counter(_sample_perf);
	printf("report queue:   %u (%u/%u @ %p)\n",
	       _num_reports, _oldest_report, _next_report, _reports);
}
コード例 #27
0
ファイル: lsm303d.cpp プロジェクト: Userskii/Firmware
void
LSM303D::print_info()
{
	printf("accel reads:          %u\n", _accel_read);
	printf("mag reads:            %u\n", _mag_read);
	perf_print_counter(_accel_sample_perf);
	_accel_reports->print_info("accel reports");
	_mag_reports->print_info("mag reports");
}
コード例 #28
0
ファイル: perf_counter.c プロジェクト: PX4CAR/Firmware
void
perf_print_all(void)
{
	perf_counter_t handle = (perf_counter_t)sq_peek(&perf_counters);

	while (handle != NULL) {
		perf_print_counter(handle);
		handle = (perf_counter_t)sq_next(&handle->link);
	}
}
コード例 #29
0
ファイル: input_pwm.cpp プロジェクト: Sujo1/Firmware
void
InputPWM::print_info()
{
	perf_print_counter(_sample_perf);
	perf_print_counter(_buffer_overflows);
	printf("poll interval:  %u ticks\n", _measure_ticks);
	_reports->print_info("report queue");

	/* print out the rc channels */
	int channel_count = 0;
	for (int i=0;i<INPUT_PWM_MAX_CHANNELS;i++) {
		if (input_pwm_channel_decoded[i]) {
			printf("	channel[%d]: %d\n", i+1, input_pwm_channel_values[i]);
			channel_count++;
		}
	}
	if (channel_count == 0)
		printf("	No active channels, %d expected for timer[%d]\n", _num_channels, _timer_index);
}
コード例 #30
0
ファイル: l3gd20.cpp プロジェクト: EShamaev/PX4Firmware
void
L3GD20::print_info()
{
	printf("gyro reads:          %u\n", _read);
	perf_print_counter(_sample_perf);
	perf_print_counter(_errors);
	perf_print_counter(_bad_registers);
	perf_print_counter(_duplicates);
	_reports->print_info("report queue");
        ::printf("checked_next: %u\n", _checked_next);
        for (uint8_t i=0; i<L3GD20_NUM_CHECKED_REGISTERS; i++) {
            uint8_t v = read_reg(_checked_registers[i]);
            if (v != _checked_values[i]) {
                ::printf("reg %02x:%02x should be %02x\n",
                         (unsigned)_checked_registers[i],
                         (unsigned)v,
                         (unsigned)_checked_values[i]);
            }
        }
}