示例#1
0
        public async Task Delete(Contracts.Entities.Machine m)
        {
            m.MachineCommands     = null;
            m.MachineInitCommands = null;
            Uow.MarkDeleted(m);
            await Task.FromResult(0);

            //Uow.ExecuteSqlCommand("delete from MachineCommand where MachineID = " + m.MachineID); => delete cascade
            //Uow.ExecuteSqlCommand("delete from MachineInitCommand where MachineID = " + m.MachineID); => delete cascade
        }
示例#2
0
        public async Task Store(Contracts.Entities.Machine machine)
        {
            // search und update machine

            int id = machine.MachineID;
            var machineCommands     = machine.MachineCommands?.ToList() ?? new List <Contracts.Entities.MachineCommand>();
            var machineInitCommands = machine.MachineInitCommands?.ToList() ?? new List <Contracts.Entities.MachineInitCommand>();

            var machineInDb = await Context.Machines.
                              Where(m => m.MachineID == id).
                              Include(d => d.MachineCommands).
                              Include(d => d.MachineInitCommands).
                              FirstOrDefaultAsync();

            if (machineInDb == default(Contracts.Entities.Machine))
            {
                // add new

                Uow.MarkNew(machine);
                foreach (var mc in machineCommands)
                {
                    Uow.MarkNew(mc);
                }
                foreach (var mic in machineInitCommands)
                {
                    Uow.MarkNew(mic);
                }
            }
            else
            {
                // syn with existing

                Uow.SetValue(machineInDb, machine);

                // search und update machinecommands (add and delete)

                Sync <Contracts.Entities.MachineCommand>(
                    machineInDb.MachineCommands,
                    machineCommands,
                    (x, y) => x.MachineCommandID > 0 && x.MachineCommandID == y.MachineCommandID);

                Sync <Contracts.Entities.MachineInitCommand>(
                    machineInDb.MachineInitCommands,
                    machineInitCommands,
                    (x, y) => x.MachineInitCommandID > 0 && x.MachineInitCommandID == y.MachineInitCommandID);
            }
        }
示例#3
0
		private static void CompareMachine(Machine machine, Machine machineread)
		{
			Assert.AreEqual(true, machineread.CompareProperties(machine));
            Assert.AreEqual(machine.MachineCommands == null ? 0 : machine.MachineCommands.Count, machineread.MachineCommands.Count);
			Assert.AreEqual(machine.MachineInitCommands == null ? 0 : machine.MachineInitCommands.Count, machineread.MachineInitCommands.Count);

			foreach (MachineCommand mc in machineread.MachineCommands)
			{
				Assert.AreEqual(true, mc.CompareProperties(machine.MachineCommands.Single(m => m.MachineCommandID == mc.MachineCommandID)));
			}
			foreach (MachineInitCommand mc in machineread.MachineInitCommands)
			{
				Assert.AreEqual(true, mc.CompareProperties(machine.MachineInitCommands.Single(m => m.MachineInitCommandID == mc.MachineInitCommandID)));
			}
		}
示例#4
0
		private static int AddMachinInitCommands(Machine machine)
		{
			int count = 2;
			machine.MachineInitCommands = new List<MachineInitCommand>();
			machine.MachineInitCommands.Add(new MachineInitCommand() { SeqNo = 0, CommandString = "Test1" });
			machine.MachineInitCommands.Add(new MachineInitCommand() { SeqNo = 1, CommandString = "Test2" });
			return count;
		}
示例#5
0
		private static int AddMachinCommands(Machine machine)
		{
			int count = 2;
			machine.MachineCommands = new List<MachineCommand>();
			machine.MachineCommands.Add(new MachineCommand() { CommandName = "Name1", CommandString = "Test1" });
			machine.MachineCommands.Add(new MachineCommand() { CommandName = "Name1", CommandString = "Test2" });
			return count;
		}
示例#6
0
        private static Machine CreateMachine(string name)
		{
			var machine = new Machine()
			{
				ComPort = "com47",
				Axis = 2,
				BaudRate = 6500,
				Name = name,
				SizeX = 1m,
				SizeY = 1m,
				SizeZ = 1m,
				SizeA = 1m,
				SizeB = 1m,
				SizeC = 1m,
				BufferSize = 63,
				CommandToUpper = true,
				ProbeSizeX = 1m,
				ProbeSizeY = 1m,
				ProbeSizeZ = 1m,
				ProbeDistUp = 1m,
				ProbeDist = 1m,
				ProbeFeed = 1m
			};
			return machine;
		}
示例#7
0
        private static async Task<int> WriteMachine(Machine machine)
        {
            int id;

            using (var uow = Dependency.Resolve<IUnitOfWork>())
            using (var rep = Dependency.ResolveRepository<IMachineRepository>(uow))
            {
				await rep.Store(machine);
				await uow.Save();
                id = machine.MachineID;
                Assert.AreNotEqual(0, id);
            }

            return id;
        }
示例#8
0
        private static void MachineSeed(CNCLibContext context)
        {
            var proxonMF70 = new Machine
            {
                Name = "Proxxon MF70",
                ComPort = "com4",
                Axis = 5,
                SizeX = 130m,
                SizeY = 45m,
                SizeZ = 81m,
                SizeA = 360m,
                SizeB = 360m,
                SizeC = 360m,
                BaudRate = 115200,
                BufferSize = 63,
                CommandToUpper = false,
                ProbeSizeZ = 25m,
                ProbeDist = 10m,
                ProbeDistUp = 3m,
                ProbeFeed = 100m,
                SDSupport = true,
                Spindle = true,
                Coolant = true,
                Rotate = true,
                Laser = false
            };

            var kk1000s = new Machine
            {
                Name = "KK1000S",
                ComPort = "com5",
                Axis = 3,
                SizeX = 830m,
                SizeY = 500m,
                SizeZ = 100m,
                SizeA = 360m,
                SizeB = 360m,
                SizeC = 360m,
                BaudRate = 115200,
                BufferSize = 63,
                CommandToUpper = false,
                ProbeSizeZ = 24.8m,
                ProbeDist = 10m,
                ProbeDistUp = 3m,
                ProbeFeed = 100m,
                SDSupport = true,
                Spindle = true,
                Coolant = true,
                Rotate = true,
                Laser = false
            };

            var laser = new Machine
            {
                Name = "Laser",
                ComPort = "com6",
                Axis = 2,
                SizeX = 400m,
                SizeY = 380m,
                SizeZ = 100m,
                SizeA = 360m,
                SizeB = 360m,
                SizeC = 360m,
                BaudRate = 250000,
                BufferSize = 63,
                CommandToUpper = false,
                ProbeSizeZ = 25m,
                ProbeDist = 10m,
                ProbeDistUp = 3m,
                ProbeFeed = 100m,
                SDSupport = false,
                Spindle = false,
                Coolant = false,
                Rotate = false,
                Laser = true
            };

            var minilaser = new Machine
            {
                Name = "MinLaser",
                ComPort = "com4",
                Axis = 2,
                SizeX = 36m,
                SizeY = 36m,
                SizeZ = 1m,
                SizeA = 360m,
                SizeB = 360m,
                SizeC = 360m,
                BaudRate = 250000,
                BufferSize = 63,
                CommandToUpper = false,
                ProbeSizeZ = 25m,
                ProbeDist = 10m,
                ProbeDistUp = 3m,
                ProbeFeed = 100m,
                SDSupport = false,
                Spindle = false,
                Coolant = false,
                Rotate = false,
                Laser = true
            };

            var dck40laser = new Machine
            {
                Name = "DC-K40-Laser",
                ComPort = "com3",
                Axis = 2,
                SizeX = 320m,
                SizeY = 220m,
                SizeZ = 1m,
                SizeA = 360m,
                SizeB = 360m,
                SizeC = 360m,
                BaudRate = 115200,
                BufferSize = 63,
                CommandToUpper = false,
                ProbeSizeZ = 25m,
                ProbeDist = 10m,
                ProbeDistUp = 3m,
                ProbeFeed = 100m,
                SDSupport = false,
                Spindle = false,
                Coolant = false,
                Rotate = false,
                Laser = true
            };


            var machines = new []
            {
                proxonMF70,
                kk1000s,
                laser,
                minilaser,
                dck40laser
            };

            context.Machines.AddRange(machines);

            var machinecommands = new []
            {
                //ProxxonMF70
                new MachineCommand{ Machine=proxonMF70, CommandName = "Set XY = 0",   CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0,PosY=0,	JoystickMessage=";btn4" },
				new MachineCommand{ Machine=proxonMF70, CommandName = "Set X = 0",    CommandString =@"g92 x0",    PosX=0, PosY=1,		JoystickMessage=";btn4s" },
                new MachineCommand{ Machine=proxonMF70, CommandName = "Set Y = 0",    CommandString =@"g92 y0",    PosX=0, PosY=2,		JoystickMessage=";btn4c" },
                new MachineCommand{ Machine=proxonMF70, CommandName = "Set Z = 0",    CommandString =@"g92 z0",    PosX=0, PosY=3,		JoystickMessage=";btn3" },
				new MachineCommand{ Machine=proxonMF70, CommandName = "Probe Z",	  CommandString =@";probe:z",  PosX=0, PosY=4,      JoystickMessage=";btn3s" },
				new MachineCommand{ Machine=proxonMF70, CommandName = "Spindle On",   CommandString =@"m3",        PosX=1, PosY=0,      JoystickMessage=";btn1" },
                new MachineCommand{ Machine=proxonMF70, CommandName = "Spindle Off",  CommandString =@"m5",        PosX=1, PosY=1,		JoystickMessage=";btn1s" },
                new MachineCommand{ Machine=proxonMF70, CommandName = "Coolant On",   CommandString =@"m7",        PosX=1, PosY=2,      JoystickMessage=";btn2" },
                new MachineCommand{ Machine=proxonMF70, CommandName = "Coolant Off",  CommandString =@"m9",        PosX=1, PosY=3,      JoystickMessage=";btn2s" },

                //kk1000s
                new MachineCommand{ Machine=kk1000s, CommandName = "Set XY = 0",    CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0, PosY=0 ,  JoystickMessage=";btn4" },
				new MachineCommand{ Machine=kk1000s, CommandName = "Set X = 0",		CommandString =@"g92 x0",    PosX=0, PosY=1,		JoystickMessage=";btn4s" },
                new MachineCommand{ Machine=kk1000s, CommandName = "Set Y = 0",		CommandString =@"g92 y0",    PosX=0, PosY=2,		JoystickMessage=";btn4c" },
                new MachineCommand{ Machine=kk1000s, CommandName = "Set Z = 0",		CommandString =@"g92 z0",    PosX=0, PosY=3,		JoystickMessage=";btn3" },
				new MachineCommand{ Machine=kk1000s, CommandName = "Probe Z",		CommandString = @";probe:z", PosX = 0, PosY = 4,	JoystickMessage=";btn3s" },
                new MachineCommand{ Machine=kk1000s, CommandName = "Spindle On",	CommandString =@"m3",        PosX=1, PosY=0,		JoystickMessage=";btn1" },
                new MachineCommand{ Machine=kk1000s, CommandName = "Spindle Off",	CommandString =@"m5",        PosX=1, PosY=1,		JoystickMessage=";btn1s" },
                new MachineCommand{ Machine=kk1000s, CommandName = "Coolant On",	CommandString =@"m7",        PosX=1, PosY=2,		JoystickMessage=";btn2" },
                new MachineCommand{ Machine=kk1000s, CommandName = "Coolant Off",	CommandString =@"m9",        PosX=1, PosY=3,		JoystickMessage=";btn2s" },   
																																	   
                //laser
                new MachineCommand{ Machine=laser, CommandName = "Set XY = 0",  CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0, PosY=0,		JoystickMessage=";btn4" },
                new MachineCommand{ Machine=laser, CommandName = "Set X = 0",   CommandString =@"g92 x0",       PosX=0, PosY=1,			JoystickMessage=";btn4s" },
                new MachineCommand{ Machine=laser, CommandName = "Set Y = 0",   CommandString =@"g92 y0",       PosX=0, PosY=2,			JoystickMessage=";btn4c" },
                new MachineCommand{ Machine=laser, CommandName = "Laser Off",   CommandString =@"m107",         PosX=1, PosY=0,			JoystickMessage=";btn1" },
                new MachineCommand{ Machine=laser, CommandName = "Laser On",    CommandString =@"m106",         PosX=1, PosY=1,			JoystickMessage=";btn2:0" },
                new MachineCommand{ Machine=laser, CommandName = "Laser Min",   CommandString =@"m106 s1",      PosX=1, PosY=2,			JoystickMessage=";btn2:1" },
                new MachineCommand{ Machine=laser, CommandName = "Laser Max",   CommandString =@"m106 s255",    PosX=1, PosY=3,			JoystickMessage=";btn2:2" },

                //minlaser
                new MachineCommand{ Machine=minilaser, CommandName = "Set XY = 0",  CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0,PosY=0,	JoystickMessage=";btn4" },
                new MachineCommand{ Machine=minilaser, CommandName = "Set X = 0",   CommandString =@"g92 x0\n;beep",PosX=0, PosY=1,			JoystickMessage=";btn4s" },
                new MachineCommand{ Machine=minilaser, CommandName = "Set Y = 0",   CommandString =@"g92 y0\n;beep",PosX=0, PosY=2,			JoystickMessage=";btn4c" },
                new MachineCommand{ Machine=minilaser, CommandName = "Laser Off",   CommandString =@"m107",         PosX=1, PosY=0,			JoystickMessage=";btn1" },
                new MachineCommand{ Machine=minilaser, CommandName = "Laser On",    CommandString =@"m106",         PosX=1, PosY=1,			JoystickMessage=";btn2:0" },
                new MachineCommand{ Machine=minilaser, CommandName = "Laser Min",   CommandString =@"m106 s1",      PosX=1, PosY=2,			JoystickMessage=";btn2:1" },
                new MachineCommand{ Machine=minilaser, CommandName = "Laser Max",   CommandString =@"m106 s255",    PosX=1, PosY=3,			JoystickMessage=";btn2:2" },
                new MachineCommand{ Machine=minilaser, CommandName = "Sqare",       CommandString =@"m106 s2\ng0x0y0\ng0x36\ng0y36\ng0x0\ng0y0m107",    PosX=3, PosY=0 },

                //co2 laser
                new MachineCommand{ Machine=dck40laser, CommandName = "Set XY = 0",  CommandString =@"g92 x0\ng92 y0\n;beep", PosX=0, PosY=0,      JoystickMessage=";btn4" },
                new MachineCommand{ Machine=dck40laser, CommandName = "Set X = 0",   CommandString =@"g92 x0",       PosX=0, PosY=1,		JoystickMessage=";btn4s" },
                new MachineCommand{ Machine=dck40laser, CommandName = "Set Y = 0",   CommandString =@"g92 y0",       PosX=0, PosY=2,		JoystickMessage=";btn4c" },
                new MachineCommand{ Machine=dck40laser, CommandName = "Laser Off",   CommandString =@"m107",         PosX=1, PosY=0,		JoystickMessage=";btn1" },
                new MachineCommand{ Machine=dck40laser, CommandName = "Laser On",    CommandString =@"m106",         PosX=1, PosY=1,		JoystickMessage=";btn2:0" },
                new MachineCommand{ Machine=dck40laser, CommandName = "Laser Min",   CommandString =@"m106 s1",      PosX=1, PosY=2,		JoystickMessage=";btn2:1" },
                new MachineCommand{ Machine=dck40laser, CommandName = "Laser Max",   CommandString =@"m106 s255",    PosX=1, PosY=3,		JoystickMessage=";btn2:2" },
            };

            var machineinitcommands = new[]
            {
                new MachineInitCommand { Machine = minilaser, SeqNo=0, CommandString = @"g0 x2"  },
                new MachineInitCommand { Machine = minilaser, SeqNo=1, CommandString = @"g28 x0"  },
                new MachineInitCommand { Machine = minilaser, SeqNo=2, CommandString = @"g0 x36"  },
                new MachineInitCommand { Machine = minilaser, SeqNo=3, CommandString = @"g0 x0"  },
                new MachineInitCommand { Machine = minilaser, SeqNo=4, CommandString = @"g0 y2"  },
                new MachineInitCommand { Machine = minilaser, SeqNo=5, CommandString = @"g28 y0",  },
                new MachineInitCommand { Machine = minilaser, SeqNo=6, CommandString = @"g0 y36"  },
                new MachineInitCommand { Machine = minilaser, SeqNo=7, CommandString = @"g0 y0"  }
            };

            context.MachineCommands.AddRange(machinecommands);
            context.MachineInitCommands.AddRange(machineinitcommands);
        }