예제 #1
0
        private async Task HandleMessageAsync(InkAction value)
        {
            try
            {
                switch (value.InkActionType)
                {
                case InkAction.InkActionTypes.Reset:
                    await InkHostServer.ActiveDevice.Reset();

                    break;

                case InkAction.InkActionTypes.Init:
                    await InkHostServer.ActiveDevice.Init();

                    break;

                case InkAction.InkActionTypes.Draw:
                    var canvas = EInkCanvas.ImportJson(value.CanvasJson);
                    Console.WriteLine($"[{this.Id}] Drawing {canvas.AvailableInkColors.Length} colors to {canvas.Width}x{canvas.Height} canvas.");
                    Console.WriteLine($"...   {canvas.Width}x{canvas.Height}");
                    Console.WriteLine($"...   Colors: {string.Join(", ", canvas.AvailableInkColors.Select(c => c.Name))}");
                    await InkHostServer.ActiveDevice.Draw(canvas);

                    break;

                case InkAction.InkActionTypes.Clear:
                    await InkHostServer.ActiveDevice.Clear();

                    break;
                }
                Console.WriteLine($"[{this.Id}] Action complete.");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }