本文整理汇总了C++中OutputBuffer::EncodeReply方法的典型用法代码示例。如果您正苦于以下问题:C++ OutputBuffer::EncodeReply方法的具体用法?C++ OutputBuffer::EncodeReply怎么用?C++ OutputBuffer::EncodeReply使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OutputBuffer
的用法示例。
在下文中一共展示了OutputBuffer::EncodeReply方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
//.........这里部分代码省略.........
}
}
// Do we have any more tools?
if (tool->Next() != nullptr)
{
response->cat("]]},");
}
else
{
response->cat("]]}");
}
}
response->cat("]");
}
// MCU temperatures
#ifndef __RADDS__
{
float minT, currT, maxT;
platform->GetMcuTemperatures(minT, currT, maxT);
response->catf(",\"mcutemp\":{\"min\":%.1f,\"cur\":%.1f,\"max\":%.1f}", minT, currT, maxT);
}
#endif
#ifdef DUET_NG
// Power in voltages
{
float minV, currV, maxV;
platform->GetPowerVoltages(minV, currV, maxV);
response->catf(",\"vin\":{\"min\":%.1f,\"cur\":%.1f,\"max\":%.1f}", minV, currV, maxV);
}
#endif
}
else if (type == 3)
{
// Current Layer
response->catf(",\"currentLayer\":%d", printMonitor->GetCurrentLayer());
// Current Layer Time
response->catf(",\"currentLayerTime\":%.1f", printMonitor->GetCurrentLayerTime());
// Raw Extruder Positions
response->cat(",\"extrRaw\":");
ch = '[';
for (size_t extruder = 0; extruder < GetExtrudersInUse(); extruder++) // loop through extruders
{
response->catf("%c%.1f", ch, gCodes->GetRawExtruderTotalByDrive(extruder));
ch = ',';
}
if (ch == '[')
{
response->cat(ch); // no extruders
}
// Fraction of file printed
response->catf("],\"fractionPrinted\":%.1f", (printMonitor->IsPrinting()) ? (gCodes->FractionOfFilePrinted() * 100.0) : 0.0);
// First Layer Duration
response->catf(",\"firstLayerDuration\":%.1f", printMonitor->GetFirstLayerDuration());
// First Layer Height
// NB: This shouldn't be needed any more, but leave it here for the case that the file-based first-layer detection fails
response->catf(",\"firstLayerHeight\":%.2f", printMonitor->GetFirstLayerHeight());
// Print Duration
response->catf(",\"printDuration\":%.1f", printMonitor->GetPrintDuration());
// Warm-Up Time
response->catf(",\"warmUpDuration\":%.1f", printMonitor->GetWarmUpDuration());
/* Print Time Estimations */
{
// Based on file progress
response->catf(",\"timesLeft\":{\"file\":%.1f", printMonitor->EstimateTimeLeft(fileBased));
// Based on filament usage
response->catf(",\"filament\":%.1f", printMonitor->EstimateTimeLeft(filamentBased));
// Based on layers
response->catf(",\"layer\":%.1f}", printMonitor->EstimateTimeLeft(layerBased));
}
}
if (source == ResponseSource::AUX)
{
OutputBuffer *reply = platform->GetAuxGCodeReply();
if (response != nullptr)
{
// Send the response to the last command. Do this last
response->catf(",\"seq\":%u,\"resp\":", platform->GetAuxSeq()); // send the response sequence number
// Send the JSON response
response->EncodeReply(reply, true); // also releases the OutputBuffer chain
}
}
response->cat("}");
return response;
}
示例2: if
//.........这里部分代码省略.........
response->catf("{\"number\":%d,\"heaters\":[", tool->Number());
for(size_t heater=0; heater<tool->HeaterCount(); heater++)
{
response->catf("%d", tool->Heater(heater));
if (heater + 1 < tool->HeaterCount())
{
response->cat(",");
}
}
// Extruder drives
response->cat("],\"drives\":[");
for(size_t drive=0; drive<tool->DriveCount(); drive++)
{
response->catf("%d", tool->Drive(drive));
if (drive + 1 < tool->DriveCount())
{
response->cat(",");
}
}
// Do we have any more tools?
if (tool->Next() != nullptr)
{
response->cat("]},");
}
else
{
response->cat("]}");
}
}
response->cat("]");
}
}
else if (type == 3)
{
// Current Layer
response->catf(",\"currentLayer\":%d", printMonitor->GetCurrentLayer());
// Current Layer Time
response->catf(",\"currentLayerTime\":%.1f", printMonitor->GetCurrentLayerTime());
// Raw Extruder Positions
response->cat(",\"extrRaw\":");
ch = '[';
for (size_t extruder = 0; extruder < GetExtrudersInUse(); extruder++) // loop through extruders
{
response->catf("%c%.1f", ch, gCodes->GetRawExtruderTotalByDrive(extruder));
ch = ',';
}
if (ch == '[')
{
response->cat("]");
}
// Fraction of file printed
response->catf("],\"fractionPrinted\":%.1f", (printMonitor->IsPrinting()) ? (gCodes->FractionOfFilePrinted() * 100.0) : 0.0);
// First Layer Duration
response->catf(",\"firstLayerDuration\":%.1f", printMonitor->GetFirstLayerDuration());
// First Layer Height
// NB: This shouldn't be needed any more, but leave it here for the case that the file-based first-layer detection fails
response->catf(",\"firstLayerHeight\":%.2f", printMonitor->GetFirstLayerHeight());
// Print Duration
response->catf(",\"printDuration\":%.1f", printMonitor->GetPrintDuration());
// Warm-Up Time
response->catf(",\"warmUpDuration\":%.1f", printMonitor->GetWarmUpDuration());
/* Print Time Estimations */
{
// Based on file progress
response->catf(",\"timesLeft\":{\"file\":%.1f", printMonitor->EstimateTimeLeft(fileBased));
// Based on filament usage
response->catf(",\"filament\":%.1f", printMonitor->EstimateTimeLeft(filamentBased));
// Based on layers
response->catf(",\"layer\":%.1f}", printMonitor->EstimateTimeLeft(layerBased));
}
}
if (source == ResponseSource::AUX)
{
OutputBuffer *response = gCodes->GetAuxGCodeReply();
if (response != nullptr)
{
// Send the response to the last command. Do this last
response->catf(",\"seq\":%u,\"resp\":", gCodes->GetAuxSeq()); // send the response sequence number
// Send the JSON response
response->EncodeReply(response, true); // also releases the OutputBuffer chain
}
}
response->cat("}");
return response;
}