Files
HDRobotics/Assets/Scripts/Model/RobotProgram.cs

48 lines
1.4 KiB
C#
Raw Normal View History

using System.Collections.Generic;
public class RobotProgram
{
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; }
public RobotProgram(string programId, string rawTextContent)
{
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;
}
}