2025-10-14 16:38:35 +09:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
|
|
public class RobotProgram
|
|
|
|
|
|
{
|
2025-10-23 18:43:38 +09:00
|
|
|
|
public string ProgramId { get; private set; }
|
|
|
|
|
|
public string Version { get; private set; }
|
|
|
|
|
|
public string MechType { get; private set; }
|
|
|
|
|
|
public List<RobotMoveStep> Steps { get; private set; }
|
2025-10-14 16:38:35 +09:00
|
|
|
|
|
2025-10-23 18:43:38 +09:00
|
|
|
|
public RobotProgram(string programId, string rawTextContent)
|
2025-10-14 16:38:35 +09:00
|
|
|
|
{
|
2025-10-23 18:43:38 +09:00
|
|
|
|
this.ProgramId = programId;
|
|
|
|
|
|
this.Steps = new List<RobotMoveStep>();
|
|
|
|
|
|
|
|
|
|
|
|
ParseJobContent(rawTextContent);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void ParseJobContent(string rawText)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 1. <20><><EFBFBD><EFBFBD> <20>Ľ<EFBFBD> (<28><>: "Robot Job File; { version: 2.0, ... }")
|
|
|
|
|
|
// <20><><EFBFBD>Խ<EFBFBD><D4BD>̳<EFBFBD> Substring<6E><67> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> version, mech_type <20><> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>(S1, S2...) <20>Ľ<EFBFBD>
|
|
|
|
|
|
string[] lines = rawText.Split('\n');
|
|
|
|
|
|
foreach (string line in lines)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (line.StartsWith("S")) // (S1, S2... <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
{
|
|
|
|
|
|
string coordString = ExtractCoordinates(line);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ǥ <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD> Pose <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD> <20><>ȯ
|
|
|
|
|
|
RobotMoveStep step = new RobotMoveStep(line, coordString);
|
|
|
|
|
|
Steps.Add(step);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private string ExtractCoordinates(string line)
|
|
|
|
|
|
{
|
|
|
|
|
|
int start = line.IndexOf('[');
|
|
|
|
|
|
int end = line.IndexOf(']');
|
|
|
|
|
|
if (start != -1 && end != -1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return line.Substring(start + 1, end - start - 1);
|
|
|
|
|
|
}
|
|
|
|
|
|
return string.Empty;
|
2025-10-14 16:38:35 +09:00
|
|
|
|
}
|
|
|
|
|
|
}
|