private void ParseMotorResponse(string line)
{
string key = line.Length >= 6 ? line.Substring(0, 6) : string.Empty;
switch (key)
{
case "[1ma] ": ParseMA(ref line, "[1ma] m1", 0); break;
case "[2ma] ": ParseMA(ref line, "[2ma] m2", 1); break;
case "[3ma] ": ParseMA(ref line, "[3ma] m3", 2); break;
case "[4ma] ": ParseMA(ref line, "[4ma] m4", 3); break;
case "[1sa] ": ParseSA(ref line, "[1sa] m1", 0); break;
case "[2sa] ": ParseSA(ref line, "[2sa] m2", 1); break;
case "[3sa] ": ParseSA(ref line, "[3sa] m3", 2); break;
case "[4sa] ": ParseSA(ref line, "[4sa] m4", 3); break;
case "[1tr] ": ParseTR(ref line, "[1tr] m1", 0); break;
case "[2tr] ": ParseTR(ref line, "[2tr] m2", 1); break;
case "[3tr] ": ParseTR(ref line, "[3tr] m3", 2); break;
case "[4tr] ": ParseTR(ref line, "[4tr] m4", 3); break;
case "[1mi] ": ParseMI(ref line, "[1mi] m1", 0); break;
case "[2mi] ": ParseMI(ref line, "[2mi] m2", 1); break;
case "[3mi] ": ParseMI(ref line, "[3mi] m3", 2); break;
case "[4mi] ": ParseMI(ref line, "[4mi] m4", 3); break;
case "[1po] ": ParsePO(ref line, "[1po] m1", 0); break;
case "[2po] ": ParsePO(ref line, "[2po] m2", 1); break;
case "[3po] ": ParsePO(ref line, "[3po] m3", 2); break;
case "[4po] ": ParsePO(ref line, "[4po] m4", 3); break;
case "[1pm] ": ParsePM(ref line, "[1pm] m1", 0); break;
case "[2pm] ": ParsePM(ref line, "[2pm] m2", 1); break;
case "[3pm] ": ParsePM(ref line, "[3pm] m3", 2); break;
case "[4pm] ": ParsePM(ref line, "[4pm] m4", 3); break;
default:
LogAppend("Unknown:" + line, Color.OrangeRed);
break;
}
}