Prusa MINI Firmware overview
queue.cpp File Reference
#include "queue.h"
#include "gcode.h"
#include "../lcd/ultralcd.h"
#include "../sd/cardreader.h"
#include "../module/planner.h"
#include "../module/temperature.h"
#include "../Marlin.h"

Functions

bool serial_data_available ()
 
int read_serial (const uint8_t index)
 
FORCE_INLINE bool is_M29 (const char *const cmd)
 

Variables

GCodeQueue queue
 
long gcode_N
 
static int serial_count [NUM_SERIAL] = { 0 }
 
bool send_ok [BUFSIZE]
 
static PGM_P injected_commands_P = nullptr
 

Function Documentation

◆ serial_data_available()

bool serial_data_available ( )
280  {
281  return false
282  || MYSERIAL0.available()
283  #if NUM_SERIAL > 1
284  || MYSERIAL1.available()
285  #endif
286  ;
287 }

◆ read_serial()

int read_serial ( const uint8_t  index)
289  {
290  switch (index) {
291  case 0: return MYSERIAL0.read();
292  #if NUM_SERIAL > 1
293  case 1: return MYSERIAL1.read();
294  #endif
295  default: return -1;
296  }
297 }

◆ is_M29()

FORCE_INLINE bool is_M29 ( const char *const  cmd)
309  { // matches "M29" & "M29 ", but not "M290", etc
310  const char * const m29 = strstr_P(cmd, PSTR("M29"));
311  return m29 && !NUMERIC(m29[3]);
312 }
Here is the caller graph for this function:

Variable Documentation

◆ queue

GCodeQueue queue

Marlin 3D Printer Firmware Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]

Based on Sprinter and grbl. Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. queue.cpp - The G-code command queue

◆ gcode_N

long gcode_N

GCode line number handling. Hosts may opt to include line numbers when sending commands to Marlin, and lines will be checked for sequentiality. M110 N<int> sets the current line number.

◆ serial_count

int serial_count[NUM_SERIAL] = { 0 }
static

Serial command injection

◆ send_ok

bool send_ok[BUFSIZE]

◆ injected_commands_P

PGM_P injected_commands_P = nullptr
static

Next Injected Command pointer. nullptr if no commands are being injected. Used by Marlin internally to ensure that commands initiated from within are enqueued ahead of any pending serial or sd card commands.

NUMERIC
#define NUMERIC(a)
Definition: macros.h:196
MYSERIAL0
#define MYSERIAL0
Definition: HAL.h:89
strstr_P
#define strstr_P(a, b)
Definition: pgmspace.h:71
PSTR
#define PSTR(str)
Definition: pgmspace.h:31