public void ParseData() { ModuleSize = BitConverter.ToInt32(ModuleData, 0); ModuleTypeId = BitConverter.ToInt32(ModuleData, 4); ZoiaDictionaryModule dictionaryModule = FormatDictionary.findModuleByTypeId(ModuleTypeId); ModuleUserName = Encoding.UTF8.GetString(ModuleData, ModuleData.Length - 16, 16); for (int moduleSection = 0; moduleSection < 9; moduleSection++) { string parameterName = GetParameterName(moduleSection); int moduleParameterValue = BitConverter.ToInt32(ModuleData, (moduleSection + 1) * 4); string moduleParameterValueDescription = ""; if (moduleSection == 0) { moduleParameterValueDescription = ModuleTypeName; } if (moduleSection == 3) { moduleParameterValueDescription = GetColorName(moduleParameterValue); } int parameterSize = 4; byte[] parameterData = new byte[parameterSize]; Array.Copy(ModuleData, (moduleSection + 1) * 4, parameterData, 0, parameterSize); ZoiaModuleParameter parameter = new ZoiaModuleParameter(parameterData) { ParameterName = parameterName, ParameterValue = moduleParameterValue, ParameterValueDescription = moduleParameterValueDescription }; ParameterList.Add(parameter); } for (int i = 0; i < dictionaryModule.options.Count; i++) { byte[] parameterData = new byte[1]; Array.Copy(ModuleData, 8 * 4 + i, parameterData, 0, 1); ZoiaDictionaryOption dictionaryOption = dictionaryModule.options[i]; string parameterName = dictionaryOption.name; int moduleParameterValue = parameterData[0]; string moduleParameterValueDescription = dictionaryOption.values[moduleParameterValue]; ZoiaModuleParameter parameter = new ZoiaModuleParameter(parameterData) { ParameterName = parameterName, ParameterValue = moduleParameterValue, ParameterValueDescription = moduleParameterValueDescription }; ParameterList.Add(parameter); } int numberOfParameterBlocks = ModuleSize - 5; // excluding ModuleSize(1), ModuleUserName(4) }
public int GetParameterNumber(ZoiaModuleParameter parameter) { return(ParameterList.IndexOf(parameter)); }