示例#1
0
 public PreheatAndPrint(ILogger <PreheatAndPrint> logger, Migo migo, string fileName, double?preheat)
 {
     _logger   = logger;
     _migo     = migo;
     _fileName = fileName;
     _preheat  = preheat;
 }
示例#2
0
        public void Setup()
        {
            var endpoint = new MigoEndpoint(Ip, Port);

            _migo        = new Migo(Init.LoggerFactory, endpoint);
            _tokenSource = new CancellationTokenSource();
        }
示例#3
0
        private async Task SetBedTemperature(Migo migo, double bedTemperature)
        {
            var gcode = new[]
            {
                $"M140 S{bedTemperature.ToString("###")}"
            };

            await migo.ExecuteGCode(gcode)
            .ConfigureAwait(false);
        }
示例#4
0
        public async Task Should_get_migo_state()
        {
            var endpoint = new MigoEndpoint(MigoIp, MigoPort);
            var migo     = new Migo(Init.LoggerFactory, endpoint);

            var state = await migo.GetState().ConfigureAwait(false);

            Log.Information(JsonConvert.SerializeObject(state));
            state.NozzleTemp.Should().BePositive();
        }
示例#5
0
        public async Task Should_set_zoffset_and_receive_correct_response()
        {
            var endpoint = new MigoEndpoint(MigoIp, MigoPort);
            var migo     = new Migo(Init.LoggerFactory, endpoint);

            var expectedOffset = -0.8;
            var actualOffset   = await migo.SetZOffset(expectedOffset).ConfigureAwait(false);

            actualOffset.Should().Be(expectedOffset);
        }
示例#6
0
        private async Task UploadFile(Migo migo, string fileName, CancellationTokenSource cts)
        {
            var result = await migo.UploadGCodeFile(fileName)
                         .ConfigureAwait(false);

            var json = JsonSerializer.Serialize(result);

            Log.Information(json);

            cts.Cancel();
        }
示例#7
0
        public async Task Should_exec_gcode()
        {
            var endpoint = new MigoEndpoint(MigoIp, MigoPort);
            var migo     = new Migo(Init.LoggerFactory, endpoint);

            var gcode  = "G28 X0 Y0";
            var result = await migo.ExecuteGCode(new[] { gcode })
                         .ConfigureAwait(false);

            result.Success.Should().BeTrue();
        }
示例#8
0
        public async Task Should_get_migo_printerinfo()
        {
            var endpoint = new MigoEndpoint(MigoIp, MigoPort);
            var migo     = new Migo(Init.LoggerFactory, endpoint);

            var state = await migo.GetPrinterInfo().ConfigureAwait(false);

            Log.Information(JsonConvert.SerializeObject(state));

            state.Success.Should().BeTrue();
        }
示例#9
0
 private async Task CheckStream(Migo migo, CancellationToken token)
 {
     try
     {
         await foreach (var _ in migo.GetStateStream(token))
         {
             // nop
         }
     }
     catch (TaskCanceledException _)
     {
         // ignore
     }
 }
示例#10
0
        public void OneTimeSetup()
        {
            var logger = Init.LoggerFactory.CreateLogger <FakeMigo>();

            var fileInfo = new FileInfo(GCodeFile);

            _gCodeSize = fileInfo.Length + 33;

            _fakeMigo = new FakeMigo(Ip, Port, logger);
            _fakeMigo.Start();

            var endpoint = new MigoEndpoint(Ip, Port);

            _migo = new Migo(Init.LoggerFactory, endpoint);
        }
示例#11
0
        private async Task OnProgressUpdate(Migo migo, CancellationToken token)
        {
            try
            {
                var(left, top) = Console.GetCursorPosition();

                await foreach (var percentResult in migo.GetProgressStream(token))
                {
                    Console.Write($"{percentResult.Percent.ToString()}%");
                    Console.SetCursorPosition(left, top);
                }
            }
            catch (TaskCanceledException _)
            {
                // ignore
            }
        }
示例#12
0
        private void OnDownloadDataReceived(object sender, Migo.Net.DownloadStringCompletedEventArgs args)
        {
            bool notify_on_save = true;
            lock (SyncRoot) {
                if (cancelled)
                    return;

                wc.DownloadStringCompleted -= OnDownloadDataReceived;
                FeedDownloadError error;

                WebException we = args.Error as WebException;
                if (we == null) {
                     try {
                        DateTime last_built_at = feed.LastBuildDate;
                        RssParser parser = new RssParser (feed.Url, args.Result);
                        parser.UpdateFeed (feed);
                        feed.SetItems (parser.GetFeedItems (feed));
                        error = FeedDownloadError.None;
                        notify_on_save = feed.LastBuildDate > last_built_at;
                    } catch (FormatException e) {
                        Log.Warning (e);
                        error = FeedDownloadError.InvalidFeedFormat;
                    }
                } else {
                    error = FeedDownloadError.DownloadFailed;
                    HttpWebResponse resp = we.Response as HttpWebResponse;
                    if (resp != null) {
                        switch (resp.StatusCode) {
                        case HttpStatusCode.NotFound:
                        case HttpStatusCode.Gone:
                            error = FeedDownloadError.DoesNotExist;
                            break;
                        case HttpStatusCode.NotModified:
                            notify_on_save = false;
                            error = FeedDownloadError.None;
                            break;
                        case HttpStatusCode.Unauthorized:
                            error = FeedDownloadError.UnsupportedAuth;
                            break;
                        default:
                            error = FeedDownloadError.DownloadFailed;
                            break;
                        }
                    }
                }

                feed.LastDownloadError = error;
                feed.LastDownloadTime = DateTime.Now;

                feed.Save (notify_on_save);

                EmitCompletionEvents (error);
                completed = true;
            }
        }
示例#13
0
 public BedLevelingCalibration(ILogger <BedLevelingCalibration> logger, Migo migo, BedLevelingCalibrationMode calibrationMode)
 {
     _calibrationMode = calibrationMode;
     _migo            = migo;
     _logger          = logger;
 }