/// <summary> /// Constructor for built in subsystem /// Defaults: lowQualityPixels = 5000, midQualityPixels = 10000, highQualityPixels = 15000 /// lowQualityTime = 3s, midQyalityTime = 5s, highQualityTime = 7s /// </summary> /// <param name="EOSensorXmlNode"></param> /// <param name="dependencies"></param> /// <param name="asset"></param> public EOSensor(XmlNode EOSensorXmlNode, Dependency dependencies, Asset asset) { DefaultSubName = "EOSensor"; Asset = asset; GetSubNameFromXmlNode(EOSensorXmlNode); PIXELS_KEY = new StateVarKey<double>(Asset.Name +"." + "numpixels"); INCIDENCE_KEY = new StateVarKey<double>(Asset.Name + "." + "incidenceangle"); EOON_KEY = new StateVarKey<bool>(Asset.Name + "." + "eosensoron"); addKey(PIXELS_KEY); addKey(INCIDENCE_KEY); addKey(EOON_KEY); DependentSubsystems = new List<Subsystem>(); SubsystemDependencyFunctions = new Dictionary<string, Delegate>(); if (EOSensorXmlNode.Attributes["lowQualityPixels"] != null) _lowQualityPixels = (double)Convert.ChangeType(EOSensorXmlNode.Attributes["lowQualityPixels"].Value.ToString(), typeof(double)); if (EOSensorXmlNode.Attributes["lowQualityPixels"] != null) _lowQualityTime = (double)Convert.ChangeType(EOSensorXmlNode.Attributes["lowQualityTime"].Value.ToString(), typeof(double)); if (EOSensorXmlNode.Attributes["midQualityPixels"] != null) _midQualityPixels = (double)Convert.ChangeType(EOSensorXmlNode.Attributes["midQualityPixels"].Value.ToString(), typeof(double)); if (EOSensorXmlNode.Attributes["midQualityTime"] != null) _midQualityTime = (double)Convert.ChangeType(EOSensorXmlNode.Attributes["midQualityTime"].Value.ToString(), typeof(double)); if (EOSensorXmlNode.Attributes["highQualityPixels"] != null) _highQualityPixels = (double)Convert.ChangeType(EOSensorXmlNode.Attributes["highQualityPixels"].Value.ToString(), typeof(double)); if (EOSensorXmlNode.Attributes["highQualityTime"] != null) _highQualityTime = (double)Convert.ChangeType(EOSensorXmlNode.Attributes["highQualityTime"].Value.ToString(), typeof(double)); dependencies.Add("PowerfromEOSensor"+"."+Asset.Name, new Func<Event, HSFProfile<double>>(POWERSUB_PowerProfile_EOSENSORSUB)); dependencies.Add("SSDRfromEOSensor" + "." + Asset.Name, new Func<Event, HSFProfile<double>>(SSDRSUB_NewDataProfile_EOSENSORSUB)); }
/// <summary> /// Constructor for built in subsystem /// Default: BufferSize = 4098 /// </summary> /// <param name="SSDRXmlNode"></param> /// <param name="dependencies"></param> /// <param name="asset"></param> public SSDR(XmlNode SSDRXmlNode, Dependency dependencies, Asset asset) { DefaultSubName = "SSDR"; Asset = asset; GetSubNameFromXmlNode(SSDRXmlNode); if (SSDRXmlNode.Attributes["bufferSize"] != null) _bufferSize = (double)Convert.ChangeType(SSDRXmlNode.Attributes["bufferSize"].Value.ToString(), typeof(double)); DATABUFFERRATIO_KEY = new StateVarKey<double>(Asset.Name + "." +"databufferfillratio"); addKey(DATABUFFERRATIO_KEY); SubsystemDependencyFunctions = new Dictionary<string, Delegate>(); DependentSubsystems = new List<Subsystem>(); dependencies.Add("PowerfromSSDR" + "." + Asset.Name, new Func<Event, HSFProfile<double>>(POWERSUB_PowerProfile_SSDRSUB)); dependencies.Add("CommfromSSDR" + "." + Asset.Name, new Func<Event, HSFProfile<double>>(COMMSUB_DataRateProfile_SSDRSUB)); dependencies.Add("EvalfromSSDR" + "." + Asset.Name, new Func<Event, double>(EVAL_DataRateProfile_SSDRSUB)); }
/// <summary> /// Constructor for built in subsystem /// </summary> /// <param name="CommXmlNode"></param> /// <param name="dependencies"></param> /// <param name="asset"></param> public Comm(XmlNode CommXmlNode, Dependency dependencies, Asset asset) { DefaultSubName = "Comm"; Asset = asset; GetSubNameFromXmlNode(CommXmlNode); SubsystemDependencyFunctions = new Dictionary<string, Delegate>(); DependentSubsystems = new List<Subsystem>(); DATARATE_KEY = new StateVarKey<double>(Asset.Name + "." + "datarate(mb/s)"); addKey(DATARATE_KEY); dependencies.Add("PowerfromComm" + "." + Asset.Name, new Func<Event, HSFProfile<double>>(POWERSUB_PowerProfile_COMMSUB)); }
/// <summary> /// Constructor for built in subsystems /// Defaults: Slew time: 10s /// </summary> /// <param name="ADCSNode"></param> /// <param name="dependencies"></param> /// <param name="asset"></param> public ADCS(XmlNode ADCSNode, Dependency dependencies, Asset asset) { DefaultSubName = "Adcs"; Asset = asset; GetSubNameFromXmlNode(ADCSNode); /*double slewTime; if (ADCSNode.Attributes["timetoslew"].Value != null) { Double.TryParse(ADCSNode.Attributes["slewTime"].Value, out slewTime); _timetoslew = slewTime; }*/ POINTVEC_KEY = new StateVarKey<Matrix<double>>(Asset.Name + "." + "eci_pointing_vector(xyz)"); addKey(POINTVEC_KEY); DependentSubsystems = new List<Subsystem>(); SubsystemDependencyFunctions = new Dictionary<string, Delegate>(); dependencies.Add("PowerfromADCS"+"."+Asset.Name, new Func<Event, HSFProfile<double>>(POWERSUB_PowerProfile_ADCSSUB)); }