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

48 lines
1.4 KiB
C#

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. 헤더 파싱 (예: "Robot Job File; { version: 2.0, ... }")
// 정규식이나 Substring을 사용해 version, mech_type 등 추출
// 2. 스텝(S1, S2...) 파싱
string[] lines = rawText.Split('\n');
foreach (string line in lines)
{
if (line.StartsWith("S")) // (S1, S2... 같은 라인)
{
string coordString = ExtractCoordinates(line);
// 좌표 문자열을 실제 Pose 데이터로 변환
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;
}
}