private SystemDDs EncodeSingleModule(SingleModuleSystem system, List <int> currentAvailStartBits) { int moduleIndex = modules.GetModuleIndex(system.moduleName); Module module = modules.GetModule(moduleIndex); SystemDDs result = new SystemDDs(); //encode not sync command result.ind = EncodeModule(moduleIndex, module, string.Empty, 0); // build mtbdd for each synchronising action for (int i = 0; i < synchs.Count; i++) { result.synchs.Add(EncodeModule(moduleIndex, module, synchs.ElementAt(i), currentAvailStartBits[i])); } // store identity matrix CUDD.Ref(moduleIdentities[moduleIndex]); result.id = moduleIdentities[moduleIndex]; // store synchs used result.allSynchs.UnionWith(module.GetAllSynchs()); return(result); }
public ModuleState( SingleModuleSystem module, bool isWorking, int?recoveriesLeft) { RecoveriesLeft = recoveriesLeft; IsWorking = isWorking; Module = module; }