public async void Dispose()
        {
            await this.plotterHardware?.PenUp();

            await this.plotterHardware?.MoveTo(0, 0);

            this.plotterHardware?.Dispose();
            this.plotterHardware = null;
        }
        public async Task <PlotResult> GetReady()
        {
            if (this.plotterHardware == null)
            {
                var hardware = new SovolS01Hardware();
                try
                {
                    await hardware.Init(this.comPortName, autoHome : false);
                }
                catch (Exception e)
                {
                    return(new PlotResult {
                        Success = false, ErrorMessage = e.Message
                    });
                }
                this.plotterHardware = hardware;
                await this.plotterHardware.PenUp();

                await this.plotterHardware.TravelSpeed();
            }
            return(new PlotResult {
                Success = true
            });
        }