public static decimal GetProbeSize(this MachineDto m, int axis) { switch (axis) { case 0: return(m.ProbeSizeX); case 1: return(m.ProbeSizeY); case 2: return(m.ProbeSizeZ); } return(0m); }
public static Machine Convert(this MachineDto from, IMapper mapper) { var to = mapper.Map <Machine>(from); // AutoMapper do not mapper readonly observable collections foreach (var m in from.MachineCommands) { to.MachineCommands.Add(mapper.Map <MachineCommand>(m)); } foreach (var mi in from.MachineInitCommands) { to.MachineInitCommands.Add(mapper.Map <MachineInitCommand>(mi)); } return(to); }
public static decimal GetSize(this MachineDto m, int axis) { switch (axis) { case 0: return(m.SizeX); case 1: return(m.SizeY); case 2: return(m.SizeZ); case 3: return(m.SizeA); case 4: return(m.SizeB); case 5: return(m.SizeC); } throw new NotImplementedException(); }
public static async Task <bool> SendProbeCommandAsync(this ISerial serial, Machine machine, int axisIndex) { string axisName = machine.GetAxisName(axisIndex); decimal probeSize = machine.GetProbeSize(axisIndex); string probDist = machine.ProbeDist.ToString(CultureInfo.InvariantCulture); string probDistUp = machine.ProbeDistUp.ToString(CultureInfo.InvariantCulture); string probFeed = machine.ProbeFeed.ToString(CultureInfo.InvariantCulture); var result = await serial.SendCommandAsync("g91 g31 " + axisName + "-" + probDist + " F" + probFeed + " g90", DefaultProbeTimeout); if (result?.LastOrDefault()?.ReplyType.HasFlag(EReplyType.ReplyError) == false) { serial.QueueCommand("g92 " + axisName + (-probeSize).ToString(CultureInfo.InvariantCulture)); serial.QueueCommand("g91 g0" + axisName + probDistUp + " g90"); return(true); } return(false); }
public async Task AddMachine() { var unitOfWork = Substitute.For <IUnitOfWork>(); var rep = Substitute.For <IMachineRepository>(); var repC = Substitute.For <IConfigurationRepository>(); var ctrl = new MachineManager(unitOfWork, rep, repC, new CNCLibUserContext(), Mapper); var machineEntity1 = new MachineDto { MachineId = 1, Name = "Maxi", MachineCommands = new[] { new MachineCommandDto { MachineId = 1, MachineCommandId = 1, CommandName = @"1", CommandString = @"1", PosX = 0, PosY = 1 } }, MachineInitCommands = new[] { new MachineInitCommandDto { MachineId = 1, MachineInitCommandId = 1, CommandString = "2", SeqNo = 1 } } }; var machineId = await ctrl.Add(machineEntity1); rep.ReceivedWithAnyArgs().AddRange(new Machine[1]); machineId.Should().Be(1); }
public static async Task SendMacroCommandAsync(this ISerial serial, Machine machine, string commandString) { string[] separators = { @"\n" }; string[] cmds = commandString.Split(separators, StringSplitOptions.RemoveEmptyEntries); foreach (string s in cmds) { string[] infos = s.Split(':'); int axis; if (infos.Length > 1 && string.Compare(infos[0], @";probe", true) == 0 && -1 != (axis = GCodeHelper.AxisNameToIndex(infos[1]))) { if (false == await serial.SendProbeCommandAsync(machine, axis)) { break; } } else if (infos.Length == 1 && string.Compare(infos[0], @";beep", true) == 0) { SystemSounds.Beep.Play(); } else { if (s.TrimEnd().EndsWith("?")) { var result = await serial.SendCommandAsync(s.TrimEnd().TrimEnd('?'), GCodeSerial.DefaultTimeout); if (result?.LastOrDefault()?.ReplyType.HasFlag(EReplyType.ReplyError) == false) { return; } } else { await serial.SendCommandAsync(s, GCodeSerial.DefaultTimeout); } } } }
public static void PrepareAndQueueCommand(this ISerial serial, Machine machine, string commandString) { serial.QueueCommand(machine.PrepareCommand(commandString)); }
public static async Task <bool> SendProbeCommandAsync(this ISerial serial, Machine machine, int axisIndex) { return(await serial.SendProbeCommandAsync(machine.GetAxisName(axisIndex), machine.GetProbeSize(axisIndex), machine.ProbeDist, machine.ProbeDistUp, machine.ProbeFeed)); }
public static string GetAxisName(this MachineDto m, int axis) { return(GCodeHelper.IndexToAxisName(axis)); }