26 lines
550 B
JavaScript
26 lines
550 B
JavaScript
class StatusParser {
|
|
|
|
static parse(line){
|
|
|
|
if(!line.startsWith("<")) return null;
|
|
|
|
const stateMatch = line.match(/^<([^|]+)/);
|
|
const posMatch = line.match(/MPos:([^|]+)/);
|
|
|
|
if(!posMatch) return null;
|
|
|
|
const parts = posMatch[1].split(",");
|
|
|
|
return {
|
|
type: "status",
|
|
state: stateMatch ? stateMatch[1] : "unknown",
|
|
x: parseFloat(parts[0]),
|
|
y: parseFloat(parts[1]),
|
|
z: parseFloat(parts[2])
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = StatusParser; |