예제 #1
0
파일: main.c 프로젝트: cl91/freq-relay
// Initialise all subsystems and start the scheduler
int main(void)
{
	init_timer();
	init_freq_irq();
	init_vga();
	init_state_machine();

	/* Finally start the scheduler. */
	vTaskStartScheduler();

	/* Will only reach here if there is insufficient heap available to start
	 the scheduler. */
	for (;;);
}
예제 #2
0
int main() {
    printf("split buffers \n");
    
    // reconstructing the data
    struct state *s = malloc(sizeof(struct state));
    init_state_machine(s);
    s->fifo_len = sizeof(test_buffer);
    s->read_cb = test_read;
    s->flush_cb = test_flush;
    while (s->fifo_len > 0) {
	s->next(s);
    }
    printf("read first buffer. Switching callback\n");
    // initial uart fifo is empty, state is saved, another interrupt fired, SM continues
    s->read_cb = test_read2;
    s->fifo_len = sizeof(test_buffer2);
    while (s->fifo_len > 0) {
	s->next(s);
    }
    free(s);
    
}
예제 #3
0
int main()
{
	// Init Events...
	sei();

	// set portD bit 5 (flow control) as output
	DDRD |= _BV(PD5);

	// Initial setup
	init_state_machine();
	btle_usart_init();
	wan_usart_init();
	// Open flow control
	PORTD &= ~_BV(PD5);

	// BGAPI commands
	// Can be found in bluetooth smart software reference PDF on pg. 101, 102, and 111. respectively
	uint8_t discoverCmd[] = {0x00, 0x01, 0x06, 0x02, 0x01};
	uint8_t endDiscoverCmd[] = {0x00, 0x00, 0x06, 0x04};
	uint8_t discoverParams[] = {0x00, 0x05, 0x06, 0x07, 0x40, 0x00, 0x32, 0x00, 0x00};

	// BGAPI initialization commands
	btle_usart_clear_buffer();
	btle_usart_transmit_bytes(endDiscoverCmd, 4);
	_delay_ms(100);
	btle_usart_transmit_bytes(discoverParams, 9);
	_delay_ms(100);
	btle_usart_transmit_bytes(discoverCmd, 5);

	char c[PRINT_BUFFER_SIZE];
	while(true)
	{
		if (state == 5) {
			// Close flow control
			PORTD |= _BV(PD5);

			PACKAGE *pkg = parse(msg);

			get_address_string(pkg, c);
			wan_usart_transmit_string("Address: ");
			wan_usart_transmit_string(c);
			wan_usart_transmit_string("\r\n");

			get_data_length_string(pkg, c);
			wan_usart_transmit_string("Data Length: ");
			wan_usart_transmit_string(c);
			wan_usart_transmit_string("\r\n");

			get_data_string(pkg, c);
			wan_usart_transmit_string("Data: ");
			wan_usart_transmit_string(c);
			wan_usart_transmit_string("\r\n\n");

			//To transmit raw hex data of entire message... uncomment
			//wan_usart_transmit_bytes(msg, msgIndex);

			msgIndex = 0;
			state = 0;
			free(pkg);

			//Open flow control
			PORTD &= ~_BV(PD5);
		}
	}
	return 0;
}
예제 #4
0
GraphicsReportView::GraphicsReportView(QObject *parent=0) :
        speedPlot(this, 0),
        heartPlot(this, 1),
        airTimePlot(this, 2),
        rushPlot(this, 3),
        altitudePlot(this, 4)

{
    this->setParent(parent);
    this->setZValue(0.2);

//    deleteBt = new GraphicPixmapBt(":/buttons/home_bt.png", this);
    deleteBt = new GraphicTextBt("Delete", QRectF(0,0,110, 54) ,this);
    deleteBt->setPos(0,0);
    connect(deleteBt, SIGNAL(released()), this, SLOT(ask_for_delete_confirmation()));

    speedLink = new GraphicPixmapBt(":/buttons/r_speedOff.png", this);
    speedLink->setAltImage(QString(":/buttons/r_speedOn.png"));
    speedLink->setPos(10+0*8+0*58,62);
    heartLink = new GraphicPixmapBt(":/buttons/r_heartOff.png", this);
    heartLink->setAltImage(QString(":/buttons/r_heartOn.png"));
    heartLink->setPos(10+1*8+1*58,62);
    airTimeLink = new GraphicPixmapBt(":/buttons/r_airTimeOff.png", this);
    airTimeLink->setAltImage(QString(":/buttons/r_airTimeOn.png"));
    airTimeLink->setPos(10+2*8+2*58,62);
    rushLink = new GraphicPixmapBt(":/buttons/r_rushOff.png", this);
    rushLink->setAltImage(QString(":/buttons/r_rushOn.png"));
    rushLink->setPos(10+3*8+3*58,62);
    altitudeLink = new GraphicPixmapBt(":/buttons/r_altitudeOff.png", this);
    altitudeLink->setAltImage(QString(":/buttons/r_altitudeOn.png"));
    altitudeLink->setPos(10+4*8+4*58,62);

    speedPlot.setY(124);
    speedPlot.setColor(QColor(2,186,255));
    speedPlot.setPlotTitle("SPEED (MPH)");
    connect(&speedPlot, SIGNAL(hor_rel_drag(qreal)), this, SIGNAL(hor_rel_drag(qreal)));
    connect(this, SIGNAL(hor_rel_drag(qreal)), &speedPlot, SLOT(hor_rel_slide(qreal)));

    heartPlot.setY(124);
    heartPlot.setColor(QColor(163,30,83));
    heartPlot.setPlotTitle("HEART (BPM)");
    heartPlot.addStatBox("50", "AVG");
    heartPlot.addStatBox("100", "MAX");
    connect(&heartPlot, SIGNAL(hor_rel_drag(qreal)), this, SIGNAL(hor_rel_drag(qreal)));
    connect(this, SIGNAL(hor_rel_drag(qreal)), &heartPlot, SLOT(hor_rel_slide(qreal)));
    airTimePlot.setY(124);
    airTimePlot.setColor(QColor(236,92,55));
    airTimePlot.setPlotTitle("AIR TIME (MS)");
    connect(&airTimePlot, SIGNAL(hor_rel_drag(qreal)), this, SIGNAL(hor_rel_drag(qreal)));
    connect(this, SIGNAL(hor_rel_drag(qreal)), &airTimePlot, SLOT(hor_rel_slide(qreal)));
    rushPlot.setY(124);
    rushPlot.setColor(QColor(239,200,37));
    rushPlot.setPlotTitle("RUSH");
    connect(&rushPlot, SIGNAL(hor_rel_drag(qreal)), this, SIGNAL(hor_rel_drag(qreal)));
    connect(this, SIGNAL(hor_rel_drag(qreal)), &rushPlot, SLOT(hor_rel_slide(qreal)));
    altitudePlot.setY(124);
    altitudePlot.setColor(QColor(106,179,71));
    altitudePlot.setPlotTitle("ALTITUDE (M)");
    connect(&altitudePlot, SIGNAL(hor_rel_drag(qreal)), this, SIGNAL(hor_rel_drag(qreal)));
    connect(this, SIGNAL(hor_rel_drag(qreal)), &altitudePlot, SLOT(hor_rel_slide(qreal)));

    init_state_machine();

    slidingDownBts = 0;


    refresh_dirs_graphs();


//    slidingDownBts = new GraphicTextBt(dirName, this);

//    selectedPlot = 0;
}