MotionLib  1.0.0
SamBuCa motion library
Modules | Classes | Typedefs | Enumerations | Functions | Variables

CNC oriented motor control protocol. More...

Collaboration diagram for GRbl:

Modules

 MGrbl
 multi-grbl instances management protocol
 

Classes

class  grbl::GrblDeviceBase
 
struct  grbl::gen::Modal
 modals More...
 
struct  grbl::gen::NonModal
 non-modal special modal group More...
 
struct  grbl::gen::DistanceMode
 distance-mode selector More...
 
struct  grbl::gen::MotionMode
 MotionMode selector. More...
 
struct  grbl::gen::DigitalOut
 Digital output control commands. More...
 
struct  grbl::gen::CoordinateSystem
 CoordinateSystem control commands. More...
 
struct  grbl::gen::Position
 set given axis to position More...
 
struct  grbl::gen::System
 System immediate commands. More...
 
struct  grbl::gen::Realtime
 
struct  grbl::gen::Setting
 
class  grbl::GrblParser
 
class  grbl::GrblSim
 
struct  grbl::CustomErrorCode
 

Typedefs

typedef uint8_t grbl::gen::Modal::GroupId
 
typedef float grbl::grbl_float_t
 
typedef int grbl::ErrorCode
 
typedef int grbl::AlarmCode
 
typedef int grbl::SettingId
 

Enumerations

enum class  grbl::gen::ModalGroup {
  NonModal = 0 , MotionMode = 1 , PlaneSelect = 2 , DistanceMode = 3 ,
  ArcIJKDistanceMode = 4 , FeedRateMode = 5 , Units = 6 , CutterRadiusCompensation = 7 ,
  ToolLengthOffset = 8 , CCRetractMode = 10 , Scaling = 11 , CoordinateSystem = 12 ,
  ControlMode = 13 , SpindleSpeedMode = 14 , LatheDiameterMode = 15 , ProgramFlow = 104 ,
  ToolChange = 106 , SpindleTurning = 107 , CoolantControl = 108 , Override = 109 ,
  DigitalOut = 110
}
 Modal Groups of commands. More...
 
enum class  HomingCycleBit : uint8_t {
  Enable = 0x01 , SingleAxisCommands = 0x02 , InitLock = 0x04 , ForceSetOrigin = 0x08 ,
  Manual = 0x20 , OverrideLocks = 0x40 , KeepOnReset = 0x80
}
 
enum class  StatusReportBit : uint16_t {
  MachinePosition = 0x01 , BufferState = 0x02 , LineNumbers = 0x04 , FeedSpeed = 0x08 ,
  PinState = 0x10 , WorkCoordOffset = 0x20 , Overrides = 0x40 , ProbeCoordinates = 0x80 ,
  SyncOnWCOChange = 0x100 , ParserState = 0x200 , AlarmSubState = 0x400 , RunSubState = 0x800
}
 
enum class  LineType {
  OkReply , ErrorReply , Message , Setting ,
  State , Unknown
}
 
enum class  Axis {
  X = 0 , Y = 1 , Z = 2 , A = 3 ,
  B = 4 , C = 5 , U = 6 , V = 7
}
 
enum class  RunState {
  Idle , Run , Hold , Jog ,
  Home , Alarm , Check , Door ,
  Sleep , Tool , Unknown
}
 
enum class  grbl::HoldStateArg { Pending = 1 , Complete = 0 }
 Hold state argument. More...
 

Functions

std::string grbl::gen::to_string (ModalGroup group)
 
const logger::Logger & grbl::gen::operator<< (const logger::Logger &, const Modal &)
 
static Modal grbl::gen::NonModal::SetCoordinate (int8_t system=-1, bool current=false)
 Set the Coordinate command. More...
 
static Modal grbl::gen::NonModal::GoHome (uint8_t index=0)
 Go to home coordinate. More...
 
static Modal grbl::gen::NonModal::SetHome (uint8_t index=0)
 Set home coordinate. More...
 
static Modal grbl::gen::DigitalOut::on (uint8_t port, bool immediate=false)
 
static Modal grbl::gen::DigitalOut::off (uint8_t port, bool immediate=false)
 
static Modal grbl::gen::CoordinateSystem::set (uint8_t system)
 construct modal to set coordinate system More...
 
const logger::Logger & grbl::gen::operator<< (const logger::Logger &, const Position &)
 
static std::string grbl::gen::System::getSetting (SettingId settingId)
 
static std::string grbl::gen::System::setSetting (SettingId settingId, const std::string &value)
 
 grbl::Generator::Generator (const Generator &)=default
 
std::string grbl::Generator::str () const
 
bool grbl::Generator::fail () const
 
const std::string & grbl::Generator::errorString () const
 
const Generatorgrbl::Generator::operator<< (const gen::Modal &modal) const
 
const Generatorgrbl::Generator::operator<< (const gen::Position &position) const
 
std::string grbl::to_string (LineType lineType)
 
std::string grbl::to_string (Axis axis)
 
std::string grbl::to_string (RunState state)
 
template<>
RunState grbl::from_string (const std::string &str)
 

Variables

ModalGroup grbl::gen::Modal::group
 
std::string grbl::gen::Modal::value
 
static constexpr ModalGroup grbl::gen::NonModal::modalGroup = ModalGroup::NonModal
 
static const Modal grbl::gen::NonModal::Dwell {NonModal::modalGroup, "G4"}
 
static const Modal grbl::gen::NonModal::AbsoluteOverride {NonModal::modalGroup, "G53"}
 
static const Modal grbl::gen::NonModal::SetCoordinateOffset {NonModal::modalGroup, "G92"}
 
static const Modal grbl::gen::NonModal::ResetCoordinateOffset {NonModal::modalGroup, "G92.1"}
 
static const Modal grbl::gen::NonModal::ClearCoordinateOffset {NonModal::modalGroup, "G92.2"}
 
static const Modal grbl::gen::NonModal::RestoreCoordinateOffset {NonModal::modalGroup, "G92.3"}
 
static constexpr ModalGroup grbl::gen::DistanceMode::modalGroup = ModalGroup::DistanceMode
 
static const Modal grbl::gen::DistanceMode::Relative {DistanceMode::modalGroup, "G91"}
 
static const Modal grbl::gen::DistanceMode::Absolute {DistanceMode::modalGroup, "G90"}
 
static constexpr ModalGroup grbl::gen::MotionMode::modalGroup = ModalGroup::MotionMode
 
static const Modal grbl::gen::MotionMode::Rapid {MotionMode::modalGroup, "G0"}
 
static const Modal grbl::gen::MotionMode::Linear {MotionMode::modalGroup, "G1"}
 
static constexpr ModalGroup grbl::gen::DigitalOut::modalGroup = ModalGroup::DigitalOut
 
static constexpr ModalGroup grbl::gen::CoordinateSystem::modalGroup = ModalGroup::CoordinateSystem
 
grbl::Axis grbl::gen::Position::axis
 
grbl_float_t grbl::gen::Position::value
 
static const std::string grbl::gen::System::ParserState = "$G"
 
static const std::string grbl::gen::System::Jog = "$J"
 
static const std::string grbl::gen::System::NGCParams = "$#"
 
static const std::string grbl::gen::System::Settings = "$$"
 
static const std::string grbl::gen::System::AllSettings = "$+"
 
static const std::string grbl::gen::System::ToggleBlockDelete = "$B"
 
static const std::string grbl::gen::System::ToggleSingleBlock = "$S"
 
static const std::string grbl::gen::System::ToggleOptionalStop = "$O"
 
static const std::string grbl::gen::System::CheckMode = "$C"
 
static const std::string grbl::gen::System::DisableLock = "$X"
 
static const std::string grbl::gen::System::Home = "$H"
 
static const std::string grbl::gen::System::Help = "$HELP"
 
static const std::string grbl::gen::System::Sleep = "$SLP"
 
static const std::string grbl::gen::System::SetToolReference = "$TLR"
 
static const std::string grbl::gen::System::ToolProbeWorkpiece = "$TLR"
 
static const std::string grbl::gen::System::BuildInfo = "$I"
 
static const std::string grbl::gen::System::AllBuildInfo = "$I+"
 
static const std::string grbl::gen::System::SettingsReset = "$RST"
 
static const std::string grbl::gen::System::StartupLines = "$N"
 
static const std::string grbl::gen::System::EnumerateAlarms = "$EA"
 
static const std::string grbl::gen::System::EnumerateErrors = "$EE"
 
static const std::string grbl::gen::System::EnumerateGroups = "$EG"
 
static const std::string grbl::gen::System::EnumerateSettings = "$ES"
 
static const std::string grbl::gen::System::EnumerateAll = "$E*"
 
static const std::string grbl::gen::System::EnumeratePins = "$PINS"
 
static const std::string grbl::gen::System::ReportLastSignalsEvent = "$LEV"
 
static const std::string grbl::gen::System::ReportCurrentLimitState = "$LIM"
 
static const std::string grbl::gen::System::ReportSpindleData = "$SD"
 
static const std::string grbl::gen::System::SpindleResetData = "$SR"
 
static const std::string grbl::gen::Realtime::Reset = "\x18"
 
static const std::string grbl::gen::Realtime::CycleStart = "\x81"
 
static const std::string grbl::gen::Realtime::FeedHold = "\x82"
 
static const std::string grbl::gen::Realtime::StatusReport = "?"
 
std::shared_ptr< GeneratorDatagrbl::Generator::m_data
 

Detailed Description

CNC oriented motor control protocol.

Enumeration Type Documentation

◆ HoldStateArg

enum grbl::HoldStateArg
strong

Hold state argument.

possible values for State::runStateArg when in RunState::Hold state

Definition at line 103 of file GrblTypes.hpp.

◆ ModalGroup

enum grbl::gen::ModalGroup
strong

Modal Groups of commands.

commands in the same modal group are mutually exclusive

Definition at line 56 of file GrblGenerator.hpp.

Function Documentation

◆ GoHome()

Modal grbl::gen::NonModal::GoHome ( uint8_t  index = 0)
static

Go to home coordinate.

Parameters
indexHome position to go to [0, 1]

Definition at line 93 of file GrblGenerator.cpp.

◆ set()

Modal grbl::gen::CoordinateSystem::set ( uint8_t  system)
static

construct modal to set coordinate system

Parameters
[in]systemcoordinate system to set [0-5] || [54-59]

Definition at line 70 of file GrblGenerator.cpp.

◆ SetCoordinate()

Modal grbl::gen::NonModal::SetCoordinate ( int8_t  system = -1,
bool  current = false 
)
static

Set the Coordinate command.

Parameters
systemcoordinate system to configure, -1 (default) for current
currentset current position or origin

Definition at line 80 of file GrblGenerator.cpp.

◆ SetHome()

Modal grbl::gen::NonModal::SetHome ( uint8_t  index = 0)
static

Set home coordinate.

Parameters
indexHome position to go set [0, 1]

Definition at line 98 of file GrblGenerator.cpp.