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