From 8f8a9fc855a037e22c0f1a8721425d7ae729cf8c Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Mon, 4 Nov 2024 11:47:29 +0100 Subject: [PATCH] Change data type of minor command fraction This is a fix for #209 --- src/DuetAPI/Commands/Code/Code.cs | 2 +- src/DuetAPI/Commands/Code/Parser.cs | 2 +- src/DuetAPI/Commands/Code/ParserAsync.cs | 2 +- src/DuetControlServer/SPI/Serialization/Writer.cs | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/DuetAPI/Commands/Code/Code.cs b/src/DuetAPI/Commands/Code/Code.cs index f25fe8fa9..8e0751587 100644 --- a/src/DuetAPI/Commands/Code/Code.cs +++ b/src/DuetAPI/Commands/Code/Code.cs @@ -95,7 +95,7 @@ public Code(string code) /// /// Minor code number (e.g. 3 in G54.3) /// - public sbyte? MinorNumber { get; set; } + public int? MinorNumber { get; set; } /// /// Flags of this code diff --git a/src/DuetAPI/Commands/Code/Parser.cs b/src/DuetAPI/Commands/Code/Parser.cs index 3b836edf1..8287d0cc0 100644 --- a/src/DuetAPI/Commands/Code/Parser.cs +++ b/src/DuetAPI/Commands/Code/Parser.cs @@ -457,7 +457,7 @@ public static bool Parse(TextReader reader, Code result) { throw new CodeParserException($"Failed to parse major {char.ToUpperInvariant((char)result.Type)}-code number ({args[0]})", result); } - if (sbyte.TryParse(args[1], out sbyte minorNumber) && minorNumber >= 0) + if (int.TryParse(args[1], out int minorNumber) && minorNumber >= 0) { result.MinorNumber = minorNumber; } diff --git a/src/DuetAPI/Commands/Code/ParserAsync.cs b/src/DuetAPI/Commands/Code/ParserAsync.cs index 7c953f6c1..c26879bfc 100644 --- a/src/DuetAPI/Commands/Code/ParserAsync.cs +++ b/src/DuetAPI/Commands/Code/ParserAsync.cs @@ -597,7 +597,7 @@ void clearValue() { throw new CodeParserException($"Failed to parse major {char.ToUpperInvariant((char)result.Type)}-code number ({args[0]})", result); } - if (sbyte.TryParse(args[1], out sbyte minorNumber) && minorNumber >= 0) + if (int.TryParse(args[1], out int minorNumber) && minorNumber >= 0) { result.MinorNumber = minorNumber; } diff --git a/src/DuetControlServer/SPI/Serialization/Writer.cs b/src/DuetControlServer/SPI/Serialization/Writer.cs index 671ce3aaa..97a5c2efc 100644 --- a/src/DuetControlServer/SPI/Serialization/Writer.cs +++ b/src/DuetControlServer/SPI/Serialization/Writer.cs @@ -72,8 +72,8 @@ public static int WriteCode(Span to, Code code) Channel = code.Channel, FilePosition = (uint)(code.FilePosition ?? 0xFFFFFFFF), Letter = (byte)code.Type, - MajorCode = (code.Type == CodeType.Comment) ? 0 : (code.MajorNumber ?? -1), - MinorCode = code.MinorNumber ?? -1, + MajorCode = (code.Type == CodeType.Comment) ? 0 : (code.MajorNumber ?? 0), + MinorCode = code.MinorNumber ?? 0, NumParameters = (byte)((code.Type == CodeType.Comment) ? 1 : code.Parameters.Count) };