本文整理汇总了C++中Gcode::get_command方法的典型用法代码示例。如果您正苦于以下问题:C++ Gcode::get_command方法的具体用法?C++ Gcode::get_command怎么用?C++ Gcode::get_command使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gcode
的用法示例。
在下文中一共展示了Gcode::get_command方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: on_gcode_received
void SimpleShell::on_gcode_received(void *argument)
{
Gcode *gcode = static_cast<Gcode *>(argument);
string args = get_arguments(gcode->get_command());
if (gcode->has_m) {
if (gcode->m == 20) { // list sd card
gcode->stream->printf("Begin file list\r\n");
ls_command("/sd", gcode->stream);
gcode->stream->printf("End file list\r\n");
} else if (gcode->m == 30) { // remove file
rm_command("/sd/" + args, gcode->stream);
} else if(gcode->m == 501) { // load config override
if(args.empty()) {
load_command("/sd/config-override", gcode->stream);
} else {
load_command("/sd/config-override." + args, gcode->stream);
}
} else if(gcode->m == 504) { // save to specific config override file
if(args.empty()) {
save_command("/sd/config-override", gcode->stream);
} else {
save_command("/sd/config-override." + args, gcode->stream);
}
}
}
}
示例2: on_gcode_received
void Panel::on_gcode_received(void *argument)
{
Gcode *gcode = static_cast<Gcode *>(argument);
if ( gcode->has_m) {
if ( gcode->m == 117 ) { // set LCD message
this->message = get_arguments(gcode->get_command());
if (this->message.size() > 20) this->message = this->message.substr(0, 20);
gcode->mark_as_taken();
}
}
}
示例3: on_gcode_received
void Player::on_gcode_received(void *argument)
{
Gcode *gcode = static_cast<Gcode *>(argument);
string args = get_arguments(gcode->get_command());
if (gcode->has_m) {
if (gcode->m == 21) { // Dummy code; makes Octoprint happy -- supposed to initialize SD card
mounter.remount();
gcode->stream->printf("SD card ok\r\n");
} else if (gcode->m == 23) { // select file
this->filename = "/sd/" + args; // filename is whatever is in args
this->current_stream = nullptr;
if(this->current_file_handler != NULL) {
this->playing_file = false;
fclose(this->current_file_handler);
}
this->current_file_handler = fopen( this->filename.c_str(), "r");
if(this->current_file_handler == NULL) {
gcode->stream->printf("file.open failed: %s\r\n", this->filename.c_str());
return;
} else {
// get size of file
int result = fseek(this->current_file_handler, 0, SEEK_END);
if (0 != result) {
this->file_size = 0;
} else {
this->file_size = ftell(this->current_file_handler);
fseek(this->current_file_handler, 0, SEEK_SET);
}
gcode->stream->printf("File opened:%s Size:%ld\r\n", this->filename.c_str(), this->file_size);
gcode->stream->printf("File selected\r\n");
}
this->played_cnt = 0;
this->elapsed_secs = 0;
} else if (gcode->m == 24) { // start print
if (this->current_file_handler != NULL) {
this->playing_file = true;
// this would be a problem if the stream goes away before the file has finished,
// so we attach it to the kernel stream, however network connections from pronterface
// do not connect to the kernel streams so won't see this FIXME
this->reply_stream = THEKERNEL->streams;
}
} else if (gcode->m == 25) { // pause print
this->playing_file = false;
} else if (gcode->m == 26) { // Reset print. Slightly different than M26 in Marlin and the rest
if(this->current_file_handler != NULL) {
string currentfn = this->filename.c_str();
unsigned long old_size = this->file_size;
// abort the print
abort_command("", gcode->stream);
if(!currentfn.empty()) {
// reload the last file opened
this->current_file_handler = fopen(currentfn.c_str() , "r");
if(this->current_file_handler == NULL) {
gcode->stream->printf("file.open failed: %s\r\n", currentfn.c_str());
} else {
this->filename = currentfn;
this->file_size = old_size;
this->current_stream = nullptr;
}
}
} else {
gcode->stream->printf("No file loaded\r\n");
}
} else if (gcode->m == 27) { // report print progress, in format used by Marlin
progress_command("-b", gcode->stream);
} else if (gcode->m == 32) { // select file and start print
// Get filename
this->filename = "/sd/" + args; // filename is whatever is in args including spaces
this->current_stream = nullptr;
if(this->current_file_handler != NULL) {
this->playing_file = false;
fclose(this->current_file_handler);
}
this->current_file_handler = fopen( this->filename.c_str(), "r");
if(this->current_file_handler == NULL) {
gcode->stream->printf("file.open failed: %s\r\n", this->filename.c_str());
} else {
this->playing_file = true;
// get size of file
int result = fseek(this->current_file_handler, 0, SEEK_END);
if (0 != result) {
file_size = 0;
} else {
//.........这里部分代码省略.........