static void StringArg(CRC crc, Cli cli) { ushort result = crc.Checksum(cli.opt.Argument); ShowHex(result); }
static void Main(string[] args) { Cli cli; try { cli = new Cli(args); } catch { Console.WriteLine("Command Line error"); return; } if (cli.opt == null) { return; } CRC crc; if (cli.opt.Noise > 0) { crc = new NoiseCRC(cli.opt.Noise); if (cli.opt.Verbose) { Console.WriteLine($"Enabling noise level {cli.opt.Noise}"); } } else { crc = new CRC(); } if ((cli.opt.Polynomial != null) && (cli.opt.Polynomial.Length > 0)) { try { ushort poly = System.Convert.ToUInt16(cli.opt.Polynomial, 16); crc.Generate(poly); } catch { Console.WriteLine($"Invalid polynomial spec {cli.opt.Polynomial}"); return; } } if (cli.opt.Table) { crc.ShowTable(); return; } if (cli.opt.Argument == null) { return; } if (cli.opt.File) { FileArg(crc, cli); return; } else if (cli.opt.Lines) { LinesArg(crc, cli); return; } else if (cli.opt.HexString) { HexStringArg(crc, cli); return; } else { StringArg(crc, cli); } }
static void FileArg(CRC crc, Cli cli) { ushort csum = crc.Checksum(cli.opt.Argument); ShowHex(csum); }