#include "grbl.h"
#include <thread>
#include "comms.h"

void iosender::Grbl::Reset() {
    Comms::GetCom()->WriteByte(GrblConstants::CMD_RESET);
    std::this_thread::sleep_for(std::chrono::milliseconds(20));
}

const std::string iosender::GrblConstants::CMD_STATUS_REPORT_LEGACY = "?";
const std::string iosender::GrblConstants::CMD_CYCLE_START_LEGACY = "~";
const std::string iosender::GrblConstants::CMD_FEED_HOLD_LEGACY = "!";
const std::string iosender::GrblConstants::CMD_UNLOCK = "$X";
const std::string iosender::GrblConstants::CMD_HOMING = "$H";
const std::string iosender::GrblConstants::CMD_CHECK = "$C";
const std::string iosender::GrblConstants::CMD_GETSETTINGS = "$$";
const std::string iosender::GrblConstants::CMD_GETSETTINGS_ALL = "$+";
const std::string iosender::GrblConstants::CMD_GETPARSERSTATE = "$G";
const std::string iosender::GrblConstants::CMD_GETINFO = "$I";
const std::string iosender::GrblConstants::CMD_GETINFO_EXTENDED = "$I+";
const std::string iosender::GrblConstants::CMD_GETNGCPARAMETERS = "$#";
const std::string iosender::GrblConstants::CMD_GETSTARTUPLINES = "$N";
const std::string iosender::GrblConstants::CMD_GETSETTINGSDETAILS = "$ES";
const std::string iosender::GrblConstants::CMD_GETSETTINGSGROUPS = "$EG";
const std::string iosender::GrblConstants::CMD_GETALARMCODES = "$EA";
const std::string iosender::GrblConstants::CMD_GETERRORCODES = "$EE";
const std::string iosender::GrblConstants::CMD_PROGRAM_DEMARCATION = "%";
const std::string iosender::GrblConstants::CMD_SDCARD_MOUNT = "$FM";
const std::string iosender::GrblConstants::CMD_SDCARD_DIR = "$F";
const std::string iosender::GrblConstants::CMD_SDCARD_DIR_ALL = "$F+";
const std::string iosender::GrblConstants::CMD_SDCARD_REWIND = "$FR";
const std::string iosender::GrblConstants::CMD_SDCARD_RUN = "$F=";
const std::string iosender::GrblConstants::CMD_SDCARD_UNLINK = "$FD=";
const std::string iosender::GrblConstants::CMD_SDCARD_DUMP = "$F<=";
const std::string iosender::GrblConstants::FORMAT_METRIC = "###0.000";
const std::string iosender::GrblConstants::FORMAT_IMPERIAL = "##0.0000";
const std::string iosender::GrblConstants::NO_TOOL = "None";
const std::string iosender::GrblConstants::THCSIGNALS = "AERTOVHDU"; // Keep in sync with THCSignals enum below!!
