static void check_send(struct isar_hw *isar, u8 rdm) { struct isar_ch *ch; pr_debug("%s: rdm %x\n", isar->name, rdm); if (rdm & BSTAT_RDM1) { ch = sel_bch_isar(isar, 1); if (ch && test_bit(FLG_ACTIVE, &ch->bch.Flags)) { if (ch->bch.tx_skb && (ch->bch.tx_skb->len > ch->bch.tx_idx)) isar_fill_fifo(ch); else send_next(ch); } } if (rdm & BSTAT_RDM2) { ch = sel_bch_isar(isar, 2); if (ch && test_bit(FLG_ACTIVE, &ch->bch.Flags)) { if (ch->bch.tx_skb && (ch->bch.tx_skb->len > ch->bch.tx_idx)) isar_fill_fifo(ch); else send_next(ch); } } }
void Printer::pausePrint(bool pause){ this->isPaused=pause; this->isPrinting=!pause; if(!pause){ send_next(); } }
Printer::Printer(QObject *parent) { QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForTr(QTextCodec::codecForName ("UTF-8")); PortSettings settings = {BAUD9600, DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 10}; this->portObj = new QextSerialPort("",settings); this->isPrinting=false; this->isPaused=true; this->connectionActive=false; this->temperatureTimer = new QTimer(this); this->temperatureTimer->setInterval(2000); connect(temperatureTimer, SIGNAL(timeout()), this, SLOT(getTemperature())); this->readTimer = new QTimer(this); this->readTimer->setInterval(5); connect(this->readTimer, SIGNAL(timeout()), this, SLOT(readFromPort())); connect(this, SIGNAL(newResponce(QString)), this, SLOT(processResponce(QString))); connect(this, SIGNAL(clearToSend()), this, SLOT(send_next())); curr_pos.setX(0); curr_pos.setY(0); curr_pos.setZ(0); last_bed_temp = 0; last_head_temp = 0; inBuffer.clear(); responseBuffer.clear(); writeNext=true; }
//slot starting print void Printer::startPrint(){ this->isPrinting=true; this->isPaused=false; this->lineNum=0; this->resendFrom=-1; this->sentLines.clear(); this->writeToPort("M110", -1, true); send_next(); }
static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples) { AVFilterContext *ctx = inlink->dst; AStreamSyncContext *as = ctx->priv; int id = inlink == ctx->inputs[1]; as->queue[id].buf[(as->queue[id].tail + as->queue[id].nb++) % QUEUE_SIZE] = insamples; as->eof &= ~(1 << id); send_next(ctx); return 0; }
/** * @brief Obsluha preruseni UART * @param None * @retval None */ void USART1_IRQHandler() { volatile unsigned int StatusValue; StatusValue = USART1->SR; if (StatusValue & USART_SR_RXNE) { store_byte(USART1->DR); } if (0 != (StatusValue & USART_SR_TXE)) { send_next(); } };
static int request_frame(AVFilterLink *outlink) { AVFilterContext *ctx = outlink->src; AStreamSyncContext *as = ctx->priv; int id = outlink == ctx->outputs[1]; as->req[id]++; while (as->req[id] && !(as->eof & (1 << id))) { if (as->queue[as->next_out].nb) { send_next(ctx); } else { as->eof |= 1 << as->next_out; ff_request_frame(ctx->inputs[as->next_out]); if (as->eof & (1 << as->next_out)) as->next_out = !as->next_out; } } return 0; }
/** * @brief Fce viditelna z COMM urcena k odstartovani prenosu pokud jsou data v bufferu * @param None * @retval None */ void UART_tick() { send_next(); };
static void W6692B_interrupt(struct w6692_hw *card, int ch) { struct w6692_ch *wch = &card->bc[ch]; int count; u8 stat, star = 0; stat = ReadW6692B(wch, W_B_EXIR); pr_debug("%s: B%d EXIR %02x\n", card->name, wch->bch.nr, stat); if (stat & W_B_EXI_RME) { star = ReadW6692B(wch, W_B_STAR); if (star & (W_B_STAR_RDOV | W_B_STAR_CRCE | W_B_STAR_RMB)) { if ((star & W_B_STAR_RDOV) && test_bit(FLG_ACTIVE, &wch->bch.Flags)) { pr_debug("%s: B%d RDOV proto=%x\n", card->name, wch->bch.nr, wch->bch.state); #ifdef ERROR_STATISTIC wch->bch.err_rdo++; #endif } if (test_bit(FLG_HDLC, &wch->bch.Flags)) { if (star & W_B_STAR_CRCE) { pr_debug("%s: B%d CRC error\n", card->name, wch->bch.nr); #ifdef ERROR_STATISTIC wch->bch.err_crc++; #endif } if (star & W_B_STAR_RMB) { pr_debug("%s: B%d message abort\n", card->name, wch->bch.nr); #ifdef ERROR_STATISTIC wch->bch.err_inv++; #endif } } WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RRST | W_B_CMDR_RACT); if (wch->bch.rx_skb) skb_trim(wch->bch.rx_skb, 0); } else { count = ReadW6692B(wch, W_B_RBCL) & (W_B_FIFO_THRESH - 1); if (count == 0) count = W_B_FIFO_THRESH; W6692_empty_Bfifo(wch, count); recv_Bchannel(&wch->bch, 0); } } if (stat & W_B_EXI_RMR) { if (!(stat & W_B_EXI_RME)) star = ReadW6692B(wch, W_B_STAR); if (star & W_B_STAR_RDOV) { pr_debug("%s: B%d RDOV proto=%x\n", card->name, wch->bch.nr, wch->bch.state); #ifdef ERROR_STATISTIC wch->bch.err_rdo++; #endif WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RRST | W_B_CMDR_RACT); } else { W6692_empty_Bfifo(wch, W_B_FIFO_THRESH); if (test_bit(FLG_TRANSPARENT, &wch->bch.Flags) && wch->bch.rx_skb && (wch->bch.rx_skb->len > 0)) recv_Bchannel(&wch->bch, 0); } } if (stat & W_B_EXI_RDOV) { if (!(star & W_B_STAR_RDOV)) { pr_debug("%s: B%d RDOV IRQ proto=%x\n", card->name, wch->bch.nr, wch->bch.state); #ifdef ERROR_STATISTIC wch->bch.err_rdo++; #endif WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RRST | W_B_CMDR_RACT); } } if (stat & W_B_EXI_XFR) { if (!(stat & (W_B_EXI_RME | W_B_EXI_RMR))) { star = ReadW6692B(wch, W_B_STAR); pr_debug("%s: B%d star %02x\n", card->name, wch->bch.nr, star); } if (star & W_B_STAR_XDOW) { pr_debug("%s: B%d XDOW proto=%x\n", card->name, wch->bch.nr, wch->bch.state); #ifdef ERROR_STATISTIC wch->bch.err_xdu++; #endif WriteW6692B(wch, W_B_CMDR, W_B_CMDR_XRST | W_B_CMDR_RACT); if (wch->bch.tx_skb) { if (!test_bit(FLG_TRANSPARENT, &wch->bch.Flags)) wch->bch.tx_idx = 0; } } send_next(wch); if (stat & W_B_EXI_XDUN) return; } if (stat & W_B_EXI_XDUN) { pr_debug("%s: B%d XDUN proto=%x\n", card->name, wch->bch.nr, wch->bch.state); #ifdef ERROR_STATISTIC wch->bch.err_xdu++; #endif WriteW6692B(wch, W_B_CMDR, W_B_CMDR_XRST | W_B_CMDR_RACT); if (wch->bch.tx_skb) { if (!test_bit(FLG_TRANSPARENT, &wch->bch.Flags)) wch->bch.tx_idx = 0; } send_next(wch); } }