public SparseWriteCommand(FilePartLoadCommand loadCommand, string[] commandTokens) : base(loadCommand) { if (commandTokens.Length != 5) { throw new Exception("Неверное количество параметров sparse_write mmc (" + (commandTokens.Length - 2) + ", должно быть 3)."); } Address = commandTokens[2]; PartitionName = commandTokens[3]; SizeFromLoadCommand = true; if (commandTokens[4] == "$(filesize)") { Size = loadCommand.Size; } else { try { Size = Convert.ToInt64(commandTokens[4], 16); } catch (Exception error) { throw new Exception($"Ошибка разбора размера сегмента в команде sparse_write mmc (третий параметр)", error); } SizeFromLoadCommand = false; } }
public WriteBootCommand(FilePartLoadCommand loadCommand, string[] commandTokens, int orderNumber) : base(loadCommand) { if (commandTokens.Length != 6) { throw new Exception("Неверное количество параметров mmc write.boot (" + (commandTokens.Length - 2) + ", должно быть 4)."); } BootTypeValue = commandTokens[2] == "0" ? BootType.RomBoot : BootType.SecureBoot; Address = commandTokens[3]; Unknown2 = commandTokens[4]; try { Size = Convert.ToInt64(commandTokens[5], 16); } catch (Exception error) { throw new Exception($"Ошибка разбора размера сегмента в команде mmc write.boot (четвёртый параметр)", error); } if (BootTypeValue == BootType.SecureBoot) { PartitionName = "sboot"; } else if (BootTypeValue == BootType.RomBoot) { PartitionName = "rboot"; } else { PartitionName = "BOOT" + orderNumber; } }
public StoreNuttxConfigCommand(FilePartLoadCommand loadCommand, string[] commandTokens) : base(loadCommand) { if (commandTokens.Length != 3) { throw new Exception("Неверное количество параметров store_nuttx_config (" + (commandTokens.Length - 1) + ", должно быть 2)."); } PartitionName = commandTokens[1]; Address = commandTokens[2]; Offset = loadCommand.Offset; Size = loadCommand.Size; }
public UnlzoCommand(FilePartLoadCommand loadCommand, string[] commandTokens) : base(loadCommand) { if (commandTokens.Length != 5 && commandTokens.Length != 6) { throw new Exception("Неверное количество параметров mmc unlzo (" + (commandTokens.Length - 2) + ", должно быть 3 или 4)."); } FirstChunk = commandTokens[1] == "unlzo"; Address = commandTokens[2]; try { Size = Convert.ToInt64(commandTokens[3], 16); } catch (Exception error) { throw new Exception($"Ошибка разбора размера сегмента в команде mmc unlzo (второй параметр)", error); } PartitionName = commandTokens[4]; Unknown = (commandTokens.Length == 6) ? commandTokens[5] : ""; }
public WritePiCommand(FilePartLoadCommand loadCommand, string[] commandTokens) : base(loadCommand) { if (commandTokens.Length != 5 && commandTokens.Length != 6) { throw new Exception("Неверное количество параметров mmc write.p (" + (commandTokens.Length - 2) + ", должно быть 3 или 4)."); } Address = commandTokens[2]; PartitionName = commandTokens[3]; try { Size = Convert.ToInt64(commandTokens[4], 16); } catch (Exception error) { throw new Exception($"Ошибка разбора размера сегмента в команде mmc write.p (третий параметр)", error); } if (commandTokens.Length == 6) { Unknown = commandTokens[5]; } }