internal override void Apply(Sensor.BaseSensorDevice sensor) { if (!(sensor is TemperatureControllableSensor)) throw new ArgumentException(); ((TemperatureControllableSensor)sensor).SetTemperatureSensor(thermistor); Refresh(sensor); }
public SSDSandforce(ISmart smart, string name, string firmwareRevision, int index, ISettings settings) : base(smart, name, firmwareRevision, index, smartAttributes, settings) { this.writeAmplification = new Sensor("Write Amplification", 1, SensorType.Factor, this, settings); }
internal override void Refresh(Sensor.BaseSensorDevice sensor) { if (!(sensor is TemperatureControllableSensor)) throw new ArgumentException(); if (CoreUtil.DoesThermistorNeedManualPush(sensor, thermistor)) ((TemperatureControllableSensor)sensor).SetTemperature(GetTemperature()); }
public ATIGPU(string name, int adapterIndex, int busNumber, int deviceNumber, ISettings settings) : base(name, new Identifier("atigpu", adapterIndex.ToString(CultureInfo.InvariantCulture)), settings) { this.adapterIndex = adapterIndex; this.busNumber = busNumber; this.deviceNumber = deviceNumber; this.temperature = new Sensor("GPU Core", 0, SensorType.Temperature, this, settings); this.fan = new Sensor("GPU Fan", 0, SensorType.Fan, this, settings); this.coreClock = new Sensor("GPU Core", 0, SensorType.Clock, this, settings); this.memoryClock = new Sensor("GPU Memory", 1, SensorType.Clock, this, settings); this.coreVoltage = new Sensor("GPU Core", 0, SensorType.Voltage, this, settings); this.coreLoad = new Sensor("GPU Core", 0, SensorType.Load, this, settings); this.controlSensor = new Sensor("GPU Fan", 0, SensorType.Control, this, settings); ADLOD6ThermalControllerCaps adltcc = new ADLOD6ThermalControllerCaps(); if (ADL.ADL_Overdrive6_ThermalController_Caps(adapterIndex, ref adltcc) != ADL.ADL_OK) { adltcc.iFanMinPercent = 0; adltcc.iFanMaxPercent = 100; } this.fanControl = new Control(controlSensor, settings, adltcc.iFanMinPercent, adltcc.iFanMaxPercent); this.fanControl.ControlModeChanged += ControlModeChanged; this.fanControl.SoftwareControlValueChanged += SoftwareControlValueChanged; ControlModeChanged(fanControl); this.controlSensor.Control = fanControl; Update(); }
void OnDataReportChanged(Sensor sender, EventArgs e) { // get sensor WeTabSensor sensor = sender as WeTabSensor; if (sensor != null) { Logger.Debug("Sensor reported"); // get data object WeTabSensorData r = sensor.CurrentWeTabSensorData; switch (r.Message) { case WeTabSensorMessage.SensorButtonDown: Logger.Debug("Sensor button pressed"); _timer.Enabled = true; Logger.Debug("Sensortimer started"); break; case WeTabSensorMessage.SensorButtonUp: Logger.Debug("Sensor button released"); _timer.Enabled = false; Logger.Debug("Sensortimer interupted"); break; } } }
protected override bool ActivateDeviceSensor(Type sensorID, Sensor.Delay sensorSpeed) { switch (sensorID) { case Type.Accelerometer: SetSensorOn(sensorID); return true; case Type.Orientation: case Type.MagneticField: Input.compass.enabled = true; SetSensorOn(sensorID); return true; case Type.Gyroscope: case Type.Gravity: case Type.RotationVector: case Type.LinearAcceleration: Input.gyro.enabled = true; SetSensorOn(sensorID); return true; case Type.Light: case Type.Pressure: case Type.Temperature: case Type.Proximity: default: return base.ActivateDeviceSensor(sensorID, sensorSpeed); } }
// Insertion of a new sensor into sensor table. public int AddSensor(Sensor sensor) { MySqlConnection sqlConnection = new MySqlConnection(connectionString); MySqlCommand sqlCmd = sqlConnection.CreateCommand(); int id = -1; try { sqlConnection.Open(); sqlCmd.CommandText = "INSERT INTO " + "SENSORS ( ISENABLE, THRESHOLD, LOCATION, SENSORTYPE, PARENTID ) " + "VALUES ( " + sensor.IsEnabled + ", " + sensor.Threshold + ", \"" + sensor.Location + "\", \"" + sensor.Type + "\", " + sensor.ParentId + ")"; sqlCmd.ExecuteNonQuery(); sqlCmd.CommandText = "SELECT LAST_INSERT_ID() FROM SENSORS"; id = Convert.ToInt32(sqlCmd.ExecuteScalar()); } catch (Exception e) { Console.WriteLine("Could not connect to database!"); Console.WriteLine("{0} Exception caught.", e); } finally { sqlConnection.Close(); } return id; }
void Update() { leftRayDirection = transform.TransformDirection(new Vector3(-1, 0, 1)); rightRayDirection = transform.TransformDirection(new Vector3(1, 0, 1)); if(Physics.Raycast(transform.position, leftRayDirection, out hitLeft, minimumDistanceToAvoid)) { if(hitLeft.transform != transform) { // Intersection with own collider is omitted touch = Sensor.LEFT; } } if(Physics.Raycast(transform.position, rightRayDirection, out hitRight, minimumDistanceToAvoid)) { if(hitRight.transform != transform) { // Intersection with own collider is omitted touch = Sensor.RIGHT; } } switch(touch) { case Sensor.LEFT: Vector3 leftHitNormal = hitLeft.normal; Debug.DrawRay(hitLeft.point, leftHitNormal, Color.red); leftHitNormal.y = 0.0f; // Restrict movement in y direction direction = transform.forward + leftHitNormal * steerForce; break; case Sensor.RIGHT: Vector3 rightHitNormal = hitRight.normal; Debug.DrawRay(hitRight.point, rightHitNormal, Color.blue); rightHitNormal.y = 0.0f; // Restrict movement in y direction direction = transform.forward + rightHitNormal * steerForce; break; } rotate = Quaternion.LookRotation(direction.normalized); transform.rotation = Quaternion.Slerp(transform.rotation, rotate, Time.deltaTime * rotateSpeed); transform.position += transform.forward * Time.deltaTime * translateSpeed; }
//----------------------------------------------------------------------------// // Constructors // //----------------------------------------------------------------------------// //////////////////////////////////////////////////////////////////////////////// /// <summary> </summary> public SensorControl(Sensor sensor) { sensor.Control = this; InitializeComponent(); // Load static resources if (uiBrushCenter == null) { // Brushes uiBrushCenter = (Brush) FindResource ("uiBrushCenter" ); uiBrushCenterS = (Brush) FindResource ("uiBrushCenterS"); uiBrushAngle = (Brush) FindResource ("uiBrushAngle" ); uiBrushRange = (Brush) FindResource ("uiBrushRange" ); uiBrushStroke = (Brush) FindResource ("uiBrushStroke"); uiBrushOrientation = (Brush) FindResource ("uiBrushOrientation"); // Storyboards uiStoryboardFadeIn = (Storyboard) FindResource ("uiStoryboardFadeIn" ); uiStoryboardFadeOut = (Storyboard) FindResource ("uiStoryboardFadeOut" ); uiStoryboardExpand = (Storyboard) FindResource ("uiStoryboardExpand" ); uiStoryboardContract = (Storyboard) FindResource ("uiStoryboardContract"); } sensor.PropertyChanged += ActionPropertyChanged; sensor.MouseOver += ActionMouseOver; sensor.Selected += ActionSelected; ActionPropertyChanged (sensor); ActionMouseOver (sensor); ActionSelected (sensor); }
protected override void Activate() { ipw = registry.Sensor("InjectorPulseWidth"); rpm = registry.Sensor("RPM"); registry.AddListener(ipw, OnSensorChange, ListenInterval); registry.AddListener(rpm, OnSensorChange, ListenInterval); }
protected void btnSeleziona_Click(object sender, EventArgs e) { if (DropDownList1.SelectedIndex == 0) { lblUnitàDiMisura.Text = "Gradi"; lblNomeSensore.Text = "DS-1822"; lblInterfaccia.Text = "1-Wire"; // creazione del temometro conoscendo l'ID: //k = new Temperature_DS1822("Temperatura aria", false, "48-02034234", logger); // creazione del termometro con identificazione automatica del codice k = new Temperature_DS1822("Temperatura aria", false, logger); } else if (DropDownList1.SelectedIndex == 1) { lblUnitàDiMisura.Text = "Percentuale"; lblNomeSensore.Text = "HIH-4000"; lblInterfaccia.Text = "1-Wire"; k = new Humidity_Air_HIH4000("Air humidity", false, new Adc_MCP3208(), 1, logger); } else if (DropDownList1.SelectedIndex == 2) { lblUnitàDiMisura.Text = "Percentuale"; lblNomeSensore.Text = "YL-69-YL-38"; lblInterfaccia.Text = "1-Wire"; k = new Humidity_Terrain_YL69YL38("Terrain Humidity", false, new Adc_MCP3208(), 1, logger); } else if (DropDownList1.SelectedIndex == 3) { lblUnitàDiMisura.Text = "[lx]"; lblNomeSensore.Text = "Fotoresistor"; lblInterfaccia.Text = "###"; k = new Light_PhotoResistor("Temperature", false, new Adc_MCP3208(), 1, logger); } }
public BearTrap(Vector3 pos) : base("BearTrap", PlayState.ComponentManager.RootComponent, Matrix.CreateTranslation(pos), new Vector3(1.0f, 1.0f, 1.0f), Vector3.Zero, true) { Allies = PlayState.PlayerFaction; Sensor = new Sensor("Sensor", this, Matrix.Identity, new Vector3(0.5f, 0.5f, 0.5f), Vector3.Zero) { FireTimer = new Timer(0.5f, false) }; Sensor.OnSensed += Sensor_OnSensed; DeathTimer = new Timer(0.6f, true); DeathParticles = new ParticleTrigger("puff", PlayState.ComponentManager, "DeathParticles", this, Matrix.Identity, new Vector3(0.5f, 0.5f, 0.5f), Vector3.Zero) { SoundToPlay = "" }; DamageAmount = 200; Voxel voxUnder = new Voxel(); PlayState.ChunkManager.ChunkData.GetFirstVoxelUnder(pos, ref voxUnder); VoxListener = new VoxelListener(PlayState.ComponentManager, this, PlayState.ChunkManager, voxUnder); Sprite = new Sprite(PlayState.ComponentManager, "Sprite", this, Matrix.Identity, new SpriteSheet(ContentPaths.Entities.DwarfObjects.beartrap), false); Sprite.AddAnimation(new Animation(0, ContentPaths.Entities.DwarfObjects.beartrap, 32, 32, 0) {Name = IdleAnimation}); Sprite.AddAnimation(new Animation(1, ContentPaths.Entities.DwarfObjects.beartrap, 32, 32, 0, 1, 2, 3) {Name = TriggerAnimation, Speeds = new List<float>() {6.6f}, Loops = true}); }
public float getDistance(Sensor type) { float value = 0; float[] values = new float[5]; float[] auxValues = new float[5]; switch (type) { case Sensor.Central: for (int i = 0; i < 5; i++) { //value += central.GetDistance_cm(); values[i] = central.GetDistance_cm(); } break; case Sensor.Wall: for (int i = 0; i < 5; i++) { //value += wall.GetDistance_cm(); values[i] = wall.GetDistance_cm(); } break; case Sensor.wall_back: for (int i = 0; i < 5; i++) { //value += wall_back.GetDistance_cm(); values[i] = wall_back.GetDistance_cm(); } break; case Sensor.Right: for (int i = 0; i < 5; i++) { //value += right.GetDistance_cm(); values[i] = right.GetDistance_cm(); } break; default: return 0; } int count = 0; while (count < 5) { float min = float.MaxValue; short lastMin = -1; for (short i = 0; i < 5; i++) { if (values[i] < min) { min = values[i]; lastMin = i; } } auxValues[count++] = values[lastMin]; values[lastMin] = float.MaxValue; } //MEdIAN FILTER return auxValues[2]; }
internal override void Apply(Sensor.BaseSensorDevice sensor) { if(!(sensor is Sensor.LED)) throw new ArgumentException(); base.Apply(sensor); ((Sensor.LED)sensor).SetControlCurve(curve); }
protected override bool ActivateDeviceSensor(Type sensorID, Sensor.Delay sensorSpeed) { Input.gyro.enabled = true; Input.compass.enabled = true; Get (sensorID).available = this.GetSensorDebugAvailable((int)sensorID); Get (sensorID).active = true; return true; }
internal override void Apply(Sensor.BaseSensorDevice sensor) { if (!(sensor is Sensor.LED)) throw new ArgumentException(); base.Apply(sensor); ((Sensor.LED)sensor).SetFixedRGBCycleColors(m_color.ToArray()); }
private void HardwareSensorAdded(ISensor data) { Sensor sensor = new Sensor(data); activeInstances.Add(sensor); try { Instrumentation.Publish(sensor); } catch (Exception) { } }
/** * Calculates as following: * LPH = 3600 * maf / (14.7 * 454*6.17 / 3.78 ) 14.7 grams of air to 1 gram of gasoline - ideal air/fuel ratio 6.17 pounds per gallon - density of gasoline 454 grams per pound - conversion 454*6.17/3.78 - grams per liter 3600 seconds per hour - conversion MAF - mass air flow rate in grams per second * */ public void OnSensorChange(Sensor maf) { TimeStamp = maf.TimeStamp; // per second Value = maf.Value / (stoich * 454*6.17 / 3.78 ); // to hour Value = Value*3600; registry.TriggerListeners(this); }
public DataGridSensorToAddView(Sensor s) { _timeout = s.MeasuringTimeout.ToString(); _add = "yes"; Optimal = s.MeasurableParameter.Optimal.ToString(); Min = s.MeasurableParameter.Min.ToString(); Max = s.MeasurableParameter.Max.ToString(); Measurable = s.MeasurableType; }
internal static byte GetRelativeThermistorByte(Sensor.BaseSensorDevice sensor, IThermistor thermistor) { if (thermistor == null) return 0; if (!(thermistor is Thermistor)) return 7; Thermistor thermistorCast = (Thermistor)thermistor; return (byte)((sensor.device == thermistorCast.device) ? thermistorCast.id : 7); }
double FEValue(Sensor distance, Sensor fuel) { if (distance.Value <= 0 || fuel.Value <= 0) { return Double.PositiveInfinity; }else{ return fuel.Value * 100 / distance.Value; } }
/** * Calculates as following: * * rpm/60 * cilinders * injector * 0.001 * injectorFlow * 60 / 1000 * * rpm/60 is rotations per second * cilinders number of cilinders * injector*0.001 is how long injector is open during one rotation (in seconds) * injectorFlow how much cubic centimeters (CC) come through the injector in 1 minute * /60 is to give an second * /1000 is to give liters from CC * */ public void OnSensorChange(Sensor s) { TimeStamp = s.TimeStamp; // liters per second Value = rpm.Value/60 * cylinders * ipw.Value * 0.001 * injectorccpm/60 / 1000; // to hour Value = Value*3600; registry.TriggerListeners(this); }
public TBalancer(int portIndex, byte protocolVersion, ISettings settings) : base("T-Balancer bigNG", new Identifier("bigng", portIndex.ToString(CultureInfo.InvariantCulture)), settings) { this.portIndex = portIndex; this.protocolVersion = protocolVersion; ParameterDescription[] parameter = new [] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }; int offset = 0; for (int i = 0; i < digitalTemperatures.Length; i++) digitalTemperatures[i] = new Sensor("Digital Sensor " + i, offset + i, SensorType.Temperature, this, parameter, settings); offset += digitalTemperatures.Length; for (int i = 0; i < analogTemperatures.Length; i++) analogTemperatures[i] = new Sensor("Analog Sensor " + (i + 1), offset + i, SensorType.Temperature, this, parameter, settings); offset += analogTemperatures.Length; for (int i = 0; i < sensorhubTemperatures.Length; i++) sensorhubTemperatures[i] = new Sensor("Sensorhub Sensor " + i, offset + i, SensorType.Temperature, this, parameter, settings); offset += sensorhubTemperatures.Length; for (int i = 0; i < miniNGTemperatures.Length; i++) miniNGTemperatures[i] = new Sensor("miniNG #" + (i / 2 + 1) + " Sensor " + (i % 2 + 1), offset + i, SensorType.Temperature, this, parameter, settings); offset += miniNGTemperatures.Length; for (int i = 0; i < sensorhubFlows.Length; i++) sensorhubFlows[i] = new Sensor("Flowmeter " + (i + 1), i, SensorType.Flow, this, new [] { new ParameterDescription("Impulse Rate", "The impulse rate of the flowmeter in pulses/L", 509) }, settings); for (int i = 0; i < controls.Length; i++) { controls[i] = new Sensor("Fan Channel " + i, i, SensorType.Control, this, settings); } for (int i = 0; i < miniNGControls.Length; i++) { miniNGControls[i] = new Sensor("miniNG #" + (i / 2 + 1) + " Fan Channel " + (i % 2 + 1), 4 + i, SensorType.Control, this, settings); } alternativeRequest = new MethodDelegate(DelayedAlternativeRequest); Open(); Update(); }
public MongoSensor(Sensor sensor) { objId = sensor.Id.ToString(); plantsareaId = sensor.PlantsAreaId.ToString(); measurableType = sensor.MeasurableType; measuringTimeout = sensor.MeasuringTimeout; isOn = sensor.IsOn.ToString(); dateTime = DateTime.Now; isCustom = sensor.IsCustom.ToString(); }
public void AddSensor(string sensorType, string sensorUnit) { Sensor sensor = new Sensor(sensorType, sensorUnit, this); Sensors.Add(sensorType,sensor); if (sensorType=="temperature") { Temperature = sensor; } }
public EventManager(Sensor.SensorManager snrmgr) { // SSHMC01Entities1 db = new SSHMC01Entities1(); foreach (Sensor.SensorBase snr in snrmgr.getAllDeviceEnum()) { snr.OnDegreeChanged += new Sensor.OnDegreeChangedHandler(snr_OnDegreeChanged); } }
protected override void Activate() { load = registry.Sensor(OBD2Sensors.EngineLoad); registry.AddListener(load, OnSensorChange, ListenInterval); if (rpm_matrix != null) { rpm = registry.Sensor(OBD2Sensors.RPM); registry.AddListener(rpm, OnSensorChange, ListenInterval); } }
public void OnSensorChange(Sensor s) { TimeStamp = s.TimeStamp; int lowidx = (int) (rpm.Value / rpm_step); int nextidx = rpm_matrix.Length-1 == lowidx ? lowidx : lowidx + 1; var coeff = rpm_matrix[lowidx] + (rpm_matrix[nextidx]-rpm_matrix[lowidx]) * (rpm.Value - lowidx*rpm_step) / rpm_step; Value = load.Value * coeff * engine_load_coeff; registry.TriggerListeners(this); }
/** * Calculates as following: (credits to ECUTracker) IMAP = RPM * MAP / IAT MAF = (IMAP/120)*(VE/100)*(ED)*(MM)/(R) RPM - Revs per Minute MAP - Pressure in kPa IAT degrees Kelvin R - 8.314 J/K/mole MM - Average Molecular Mass of Air 28.97 g/mole. VE - Percentage Volumetric Efficiency ED - Engine Displacement in Liters * * */ public void OnSensorChange(Sensor s) { TimeStamp = s.TimeStamp; // per second double imap = rpm.Value * map.Value / (iat.Value + 273.15); double maf = imap/120 * (this.ve/100) * this.displacement * (28.97) / 8.314; // to hour Value = maf / (stoich * 454*6.17 / 3.78 ) * 3600; registry.TriggerListeners(this); }
public void AssignFrom(Sensor.LED led) { byte[] colorData = led.GetFixedRGBCycleColors(); int numColors = GetNumColors(); int j; for (int i = 0; i < numColors; i++) { j = i * 3; colors[i] = new Color(colorData[j], colorData[j + 1], colorData[j + 2]); } }
/// <summary> /// 增加模块,只需要改变这个方法中的算法就行了。 /// </summary> private void ConvertToRealValue() { Dictionary <int, string> tempDic; string forceData; string disData; Sensor forceSensor; Sensor disSensor; for (int i = 0; i < adamList.Count; i++) { allDataDic.TryGetValue(adamList[i].id, out tempDic); if (i == 0) { ////读取模块192.168.1.3数据,吊杆位移0,1,2,3与吊杆力4,5,6,7通道 //若更换 ?。;j=0 标号 17080383 空载 4.026mA forceSensor = new Sensor(SensorType.forceSensor, 4, 20, 300, 1, 0); tempDic.TryGetValue(4, out forceData); forceSensor.readValue = double.Parse(forceData); disSensor = new Sensor(SensorType.displaceSensor, 4, 20, 29.8, 100, 20); tempDic.TryGetValue(0, out disData); disSensor.readValue = double.Parse(disData); Steeve steeve0 = new Steeve(0, forceSensor, disSensor); steeveDic[steeve0.id] = steeve0; //j=1标号17110130空载3.992mA forceSensor = new Sensor(SensorType.forceSensor, 4, 20, 300, 1, 0); tempDic.TryGetValue(5, out forceData); forceSensor.readValue = double.Parse(forceData); disSensor = new Sensor(SensorType.displaceSensor, 4, 20, 29.8, 100, 20); tempDic.TryGetValue(1, out disData); disSensor.readValue = double.Parse(disData); Steeve steeve1 = new Steeve(1, forceSensor, disSensor); steeveDic[steeve1.id] = steeve1; //j=2 17080285 空载 4.012mA forceSensor = new Sensor(SensorType.forceSensor, 4, 20, 300, 1, 0); tempDic.TryGetValue(6, out forceData); forceSensor.readValue = double.Parse(forceData); disSensor = new Sensor(SensorType.displaceSensor, 4, 20, 29.8, 100, 20); tempDic.TryGetValue(2, out disData); disSensor.readValue = double.Parse(disData); Steeve steeve2 = new Steeve(2, forceSensor, disSensor); steeveDic[steeve2.id] = steeve2; //j=3 17080386 空载4.014mA forceSensor = new Sensor(SensorType.forceSensor, 4, 20, 300, 1, 0); tempDic.TryGetValue(7, out forceData); forceSensor.readValue = double.Parse(forceData); disSensor = new Sensor(SensorType.displaceSensor, 4, 20, 29.8, 100, 20); tempDic.TryGetValue(3, out disData); disSensor.readValue = double.Parse(disData); Steeve steeve3 = new Steeve(3, forceSensor, disSensor); steeveDic[steeve3.id] = steeve3; } else if (i == 1) { int j = 0; // int count = 0; for (j = 0; j < 3; j++) //前支架位移电流 { disSensor = new Sensor(SensorType.displaceSensor, 4, 20, 1.2, 1000, 0); //传感器量程0.2-4 m;//单位mm tempDic.TryGetValue(j, out disData); disSensor.readValue = double.Parse(disData); FrontPivot pivot = new FrontPivot(j, disSensor); frontPivotDic[pivot.id] = pivot; } disSensor = new Sensor(SensorType.displaceSensor, 4, 20, 1.2, 1000, 0);//传感器量程0.2-4 m; tempDic.TryGetValue(3, out disData); disSensor.readValue = double.Parse(disData); FrontPivot pivot1 = new FrontPivot(3, disSensor); frontPivotDic[pivot1.id] = pivot1; #region 锚杆力,接收但不显示,不保存,不后台报警 // for (j = 4; j < 8; j++)//锚杆力 forceSensor = new Sensor(SensorType.forceSensor, 4, 20, 300, 1, 0); tempDic.TryGetValue(4, out forceData); forceSensor.readValue = double.Parse(forceData); Anchor anchor0 = new Anchor(0, forceSensor); anchorDic[anchor0.id] = anchor0; forceSensor = new Sensor(SensorType.forceSensor, 4, 20, 300, 1, 0); tempDic.TryGetValue(5, out forceData); forceSensor.readValue = double.Parse(forceData); Anchor anchor1 = new Anchor(1, forceSensor); anchorDic[anchor1.id] = anchor1; forceSensor = new Sensor(SensorType.forceSensor, 4, 20, 300, 1, 0); tempDic.TryGetValue(6, out forceData); forceSensor.readValue = double.Parse(forceData); Anchor anchor2 = new Anchor(2, forceSensor); anchorDic[anchor2.id] = anchor2; forceSensor = new Sensor(SensorType.forceSensor, 4, 20, 300, 1, 0); tempDic.TryGetValue(7, out forceData); forceSensor.readValue = double.Parse(forceData); Anchor anchor3 = new Anchor(3, forceSensor); anchorDic[anchor3.id] = anchor3; #endregion } } }
/// <summary> /// Проверка данных на стабильность /// </summary> /// <param name="sensor">Сенсор</param> /// <param name="data"> Самые свежие данные сенсора</param> /// <returns>константа стабильности Program.Service.CHECK_*</returns> public static int checkOk(Sensor sensor, PointD[] data) { if (data == null || sensor == null || data.Length == 0) { return(CHECK_NO_SIGNAL); } PointD startPoint = data[0]; PointD finalPoint = data[data.Length - 1]; if (finalPoint.Y < 1d) { return(CHECK_NO_SIGNAL); } bool inPassportFork = true; foreach (PointD point in data) { if ((point.Y > sensor.PassportFrequency + sensor.PassportAmplitude) || (point.Y < sensor.PassportFrequency - sensor.PassportAmplitude) ) { inPassportFork = false; } } if (!inPassportFork) { return(CHECK_NOT_IN_PASSPORT); } if (finalPoint.X - startPoint.X <= Presets.stableTime) { return(CHECK_NOT_STABLE); } double max = double.MinValue; double min = double.MaxValue; foreach (PointD point in data) { if ((point.X <= finalPoint.X) && (point.X >= finalPoint.X - Presets.stableTime)) { if (point.Y < min) { min = point.Y; } if (point.Y > max) { max = point.Y; } } } if (max - min > Presets.stableAmp) { return(CHECK_NOT_STABLE); } return(CHECK_STABLE); }
protected Cpu(int processorIndex, CpuId[][] cpuId) : base(cpuId[0][0].Name) { CpuId = cpuId; Vendor = cpuId[0][0].Vendor; Identifier = $"{Vendor}/{processorIndex}"; family = cpuId[0][0].Family; model = cpuId[0][0].Model; stepping = cpuId[0][0].Stepping; this.processorIndex = processorIndex; CoreCount = cpuId.Length; // check if processor has MSRs if (cpuId[0][0].Data.GetLength(0) > 1 && (cpuId[0][0].Data[1, 3] & 0x20) != 0) { HasModelSpecificRegisters = true; } else { HasModelSpecificRegisters = false; } // check if processor has a TSC if (cpuId[0][0].Data.GetLength(0) > 1 && (cpuId[0][0].Data[1, 3] & 0x10) != 0) { HasTimeStampCounter = true; } else { HasTimeStampCounter = false; } // check if processor supports an invariant TSC if (cpuId[0][0].ExtData.GetLength(0) > 7 && (cpuId[0][0].ExtData[7, 3] & 0x100) != 0) { isInvariantTimeStampCounter = true; } else { isInvariantTimeStampCounter = false; } TotalLoad = CoreCount > 1 ? new Sensor("CPU Total", 0, SensorType.Load, this) : null; CoreLoads = new Sensor[CoreCount]; for (var i = 0; i < CoreLoads.Length; i++) { CoreLoads[i] = new Sensor(CoreString(i), i + 1, SensorType.Load, this); } CpuLoad = new CpuLoad(cpuId); if (CpuLoad.IsAvailable) { foreach (var sensor in CoreLoads) { ActivateSensor(sensor); } if (TotalLoad != null) { ActivateSensor(TotalLoad); } } if (HasTimeStampCounter) { var mask = ThreadAffinity.Set(1UL << cpuId[0][0].Thread); EstimateTimeStampCounterFrequency(); ThreadAffinity.Set(mask); } else { EstimatedTimeStampCounterFrequency = 0; } TimeStampCounterFrequency = EstimatedTimeStampCounterFrequency; }
public AMD10CPU(int processorIndex, CPUID[][] cpuid, ISettings settings) : base(processorIndex, cpuid, settings) { // AMD family 1Xh processors support only one temperature sensor coreTemperature = new Sensor( "Core" + (coreCount > 1 ? " #1 - #" + coreCount : ""), 0, SensorType.Temperature, this, new [] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }, settings); switch (family) { case 0x10: miscellaneousControlDeviceId = FAMILY_10H_MISCELLANEOUS_CONTROL_DEVICE_ID; break; case 0x11: miscellaneousControlDeviceId = FAMILY_11H_MISCELLANEOUS_CONTROL_DEVICE_ID; break; case 0x12: miscellaneousControlDeviceId = FAMILY_12H_MISCELLANEOUS_CONTROL_DEVICE_ID; break; case 0x14: miscellaneousControlDeviceId = FAMILY_14H_MISCELLANEOUS_CONTROL_DEVICE_ID; break; case 0x15: switch (model & 0xF0) { case 0x00: miscellaneousControlDeviceId = FAMILY_15H_MODEL_00_MISC_CONTROL_DEVICE_ID; break; case 0x10: miscellaneousControlDeviceId = FAMILY_15H_MODEL_10_MISC_CONTROL_DEVICE_ID; break; case 0x30: miscellaneousControlDeviceId = FAMILY_15H_MODEL_30_MISC_CONTROL_DEVICE_ID; break; default: miscellaneousControlDeviceId = 0; break; } break; case 0x16: switch (model & 0xF0) { case 0x00: miscellaneousControlDeviceId = FAMILY_16H_MODEL_00_MISC_CONTROL_DEVICE_ID; break; case 0x30: miscellaneousControlDeviceId = FAMILY_16H_MODEL_30_MISC_CONTROL_DEVICE_ID; break; default: miscellaneousControlDeviceId = 0; break; } break; default: miscellaneousControlDeviceId = 0; break; } // get the pci address for the Miscellaneous Control registers miscellaneousControlAddress = GetPciAddress( MISCELLANEOUS_CONTROL_FUNCTION, miscellaneousControlDeviceId); busClock = new Sensor("Bus Speed", 0, SensorType.Clock, this, settings); coreClocks = new Sensor[coreCount]; for (int i = 0; i < coreClocks.Length; i++) { coreClocks[i] = new Sensor(CoreString(i), i + 1, SensorType.Clock, this, settings); if (HasTimeStampCounter) { ActivateSensor(coreClocks[i]); } } corePerformanceBoostSupport = (cpuid[0][0].ExtData[7, 3] & (1 << 9)) > 0; // set affinity to the first thread for all frequency estimations ulong mask = ThreadAffinity.Set(1UL << cpuid[0][0].Thread); // disable core performance boost uint hwcrEax, hwcrEdx; Ring0.Rdmsr(HWCR, out hwcrEax, out hwcrEdx); if (corePerformanceBoostSupport) { Ring0.Wrmsr(HWCR, hwcrEax | (1 << 25), hwcrEdx); } uint ctlEax, ctlEdx; Ring0.Rdmsr(PERF_CTL_0, out ctlEax, out ctlEdx); uint ctrEax, ctrEdx; Ring0.Rdmsr(PERF_CTR_0, out ctrEax, out ctrEdx); timeStampCounterMultiplier = estimateTimeStampCounterMultiplier(); // restore the performance counter registers Ring0.Wrmsr(PERF_CTL_0, ctlEax, ctlEdx); Ring0.Wrmsr(PERF_CTR_0, ctrEax, ctrEdx); // restore core performance boost if (corePerformanceBoostSupport) { Ring0.Wrmsr(HWCR, hwcrEax, hwcrEdx); } // restore the thread affinity. ThreadAffinity.Set(mask); // the file reader for lm-sensors support on Linux temperatureStream = null; int p = (int)Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) { string[] devicePaths = Directory.GetDirectories("/sys/class/hwmon/"); foreach (string path in devicePaths) { string name = null; try { using (StreamReader reader = new StreamReader(path + "/device/name")) name = reader.ReadLine(); } catch (IOException) { } switch (name) { case "k10temp": temperatureStream = new FileStream(path + "/device/temp1_input", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); break; } } } Update(); }
public AMD17CPU(int processorIndex, CPUID[][] cpuid, ISettings settings) : base(processorIndex, cpuid, settings) { string cpuName = cpuid[0][0].BrandString; if (!string.IsNullOrEmpty(cpuName)) { foreach (var item in tctlOffsetItems) { if (cpuName.StartsWith(item.Name)) { tctlOffset = item.Offset; break; } } } coreTemperature = new Sensor( "CPU Package", 0, SensorType.Temperature, this, new[] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }, this.settings); if (tctlOffset != 0.0f) { tctlTemperature = new Sensor( "CPU Tctl", 1, true, SensorType.Temperature, this, new[] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }, this.settings); } ccdMaxTemperature = new Sensor( "CPU CCD Max", 2, SensorType.Temperature, this, this.settings); ccdAvgTemperature = new Sensor( "CPU CCD Average", 3, SensorType.Temperature, this, this.settings); switch (model & 0xf0) { case 0x30: case 0x70: maxCcdCount = 8; break; default: maxCcdCount = 4; break; } ccdTemperatures = new Sensor[maxCcdCount]; for (int i = 0; i < ccdTemperatures.Length; i++) { ccdTemperatures[i] = new Sensor( "CPU CCD #" + (i + 1), i + 4, SensorType.Temperature, this, new[] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }, this.settings); } if (Ring0.Rdmsr(MSR_RAPL_PWR_UNIT, out uint eax, out _)) { energyUnitMultiplier = 1.0f / (1 << (int)((eax >> 8) & 0x1F)); } if (energyUnitMultiplier != 0) { if (Ring0.Rdmsr(MSR_PKG_ENERGY_STAT, out uint energyConsumed, out _)) { lastEnergyTime = DateTime.UtcNow; lastEnergyConsumed = energyConsumed; packagePowerSensor = new Sensor( "CPU Package", 0, SensorType.Power, this, settings); ActivateSensor(packagePowerSensor); } } coresPowerSensor = new Sensor("CPU Cores", 1, SensorType.Power, this, settings); busClock = new Sensor("Bus Speed", 0, SensorType.Clock, this, settings); timeStampCounterMultiplier = GetTimeStampCounterMultiplier(); if (timeStampCounterMultiplier > 0) { busClock.Value = (float)(TimeStampCounterFrequency / timeStampCounterMultiplier); ActivateSensor(busClock); } this.cores = new Core[coreCount]; for (int i = 0; i < this.cores.Length; i++) { this.cores[i] = new Core(i, cpuid[i], this, settings); } }
/// <summary> /// Initializes the platform resources required for the compass sensor. /// </summary> static void Initialize() { sensorManager = (SensorManager)Game.Activity.GetSystemService(Context.SensorService); sensorMagneticField = sensorManager.GetDefaultSensor(SensorType.MagneticField); sensorAccelerometer = sensorManager.GetDefaultSensor(SensorType.Accelerometer); }
public JsonResult Post([FromBody] Sensor sensor) { var valuepairs = _repo.GetReadings(sensor, r => new object[] { r.Time.TimeOfDay.TotalMilliseconds, r.Value }); return(new JsonResult(valuepairs)); }
void DrawOption(Sensor sensor, IOption opt) { if (!cachedValue.ContainsKey(opt)) { cachedValue[opt] = opt.Value; } string k = opt.Key.ToString(); float v = cachedValue[opt]; if (opt.ReadOnly) { EditorGUILayout.BeginHorizontal(); GUI.enabled = false; EditorGUILayout.LabelField(k, GUILayout.Width(EditorGUIUtility.labelWidth - 4)); GUI.enabled = true; EditorGUILayout.SelectableLabel(v.ToString(), EditorStyles.textField, GUILayout.Height(EditorGUIUtility.singleLineHeight)); EditorGUILayout.EndHorizontal(); } else if (opt.IsCheckbox()) { bool isChecked = Convert.ToBoolean(v); if (isChecked != EditorGUILayout.Toggle(k, isChecked)) { cachedValue[opt] = opt.Value = Convert.ToSingle(!isChecked); } } else if (opt.IsEnum(sensor.Options)) { var valuesStrings = new List <string>(); int selected = 0; int counter = 0; for (float i = opt.Min; i <= opt.Max; i += opt.Step, counter++) { if (Math.Abs(i - v) < 0.001) { selected = counter; } valuesStrings.Add(sensor.Options.OptionValueDescription(opt.Key, i)); } var newSelection = EditorGUILayout.Popup(k, selected, valuesStrings.ToArray()); if (newSelection != selected) { cachedValue[opt] = opt.Value = Convert.ToSingle(newSelection); } } else if (opt.IsIntegersOnly()) { var newVal = EditorGUILayout.IntSlider(k, (int)v, (int)opt.Min, (int)opt.Max); if (newVal != Convert.ToInt32(v)) { cachedValue[opt] = opt.Value = Convert.ToSingle(newVal); } } else { float s = EditorGUILayout.Slider(k, v, opt.Min, opt.Max); if (!Mathf.Approximately(s, v)) { cachedValue[opt] = opt.Value = s; } } }
private void Sensor(object sender, RoutedEventArgs e) { DataContext = new Sensor(); }
public KelvinToCelsiusConverter(Sensor sensor) : base(sensor) { }
private void Awake() { _sensor = GetComponent <Sensor>(); _sensor.OnActivated += Activated; _sensor.OnDeactivated += Deactivated; }
public void RegisterSensor(Sensor sensor) { sensors.Add(sensor); }
public void OnAccuracyChanged(Sensor sensor, [GeneratedEnum] SensorStatus accuracy) { }
protected override void OnCreate(Bundle savedInstanceState) { try { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.AgoraAudioCallActivityLayout); GlobalContext = MsgTabbedMainActivity.GetInstance(); SensorManager = (SensorManager)GetSystemService(SensorService); Proximity = SensorManager.GetDefaultSensor(SensorType.Proximity); UserId = Intent?.GetStringExtra("UserID"); Avatar = Intent?.GetStringExtra("avatar"); Name = Intent?.GetStringExtra("name"); var dataCallId = Intent?.GetStringExtra("CallID") ?? "Data not available"; if (dataCallId != "Data not available" && !string.IsNullOrEmpty(dataCallId)) { CallId = dataCallId; FromId = Intent?.GetStringExtra("from_id"); Active = Intent?.GetStringExtra("active"); var time = Intent?.GetStringExtra("time"); Status = Intent?.GetStringExtra("status"); RoomName = Intent?.GetStringExtra("room_name"); CallType = Intent?.GetStringExtra("type"); Console.WriteLine(time); } SpeakerAudioButton = FindViewById <CircleButton>(Resource.Id.speaker_audio_button); EndCallButton = FindViewById <CircleButton>(Resource.Id.end_audio_call_button); MuteAudioButton = FindViewById <CircleButton>(Resource.Id.mute_audio_call_button); UserImageView = FindViewById <ImageView>(Resource.Id.audiouserImageView); UserNameTextView = FindViewById <TextView>(Resource.Id.audiouserNameTextView); DurationTextView = FindViewById <TextView>(Resource.Id.audiodurationTextView); SpeakerAudioButton.Click += Speaker_audio_button_Click; EndCallButton.Click += End_call_button_Click; MuteAudioButton.Click += Mute_audio_button_Click; SpeakerAudioButton.SetImageResource(Resource.Drawable.ic_speaker_close); LoadUserInfo(UserId); if (CallType == "Agora_audio_calling_start") { Start_Call_Action("call"); } else { Start_Call_Action("recieve_call"); } } catch (Exception e) { Methods.DisplayReportResultTrack(e); } }
public AMD0FCPU(int processorIndex, CPUID[][] cpuid, ISettings settings) : base(processorIndex, cpuid, settings) { float offset = -49.0f; // AM2+ 65nm +21 offset uint model = cpuid[0][0].Model; if (model >= 0x69 && model != 0xc1 && model != 0x6c && model != 0x7c) { offset += 21; } if (model < 40) { // AMD Athlon 64 Processors thermSenseCoreSelCPU0 = 0x0; thermSenseCoreSelCPU1 = 0x4; } else { // AMD NPT Family 0Fh Revision F, G have the core selection swapped thermSenseCoreSelCPU0 = 0x4; thermSenseCoreSelCPU1 = 0x0; } // check if processor supports a digital thermal sensor if (cpuid[0][0].ExtData.GetLength(0) > 7 && (cpuid[0][0].ExtData[7, 3] & 1) != 0) { coreTemperatures = new Sensor[coreCount]; for (int i = 0; i < coreCount; i++) { coreTemperatures[i] = new Sensor("Core #" + (i + 1), i, SensorType.Temperature, this, new [] { new ParameterDescription("Offset [°C]", "Temperature offset of the thermal sensor.\n" + "Temperature = Value + Offset.", offset) }, settings); } } else { coreTemperatures = new Sensor[0]; } miscellaneousControlAddress = GetPciAddress( MISCELLANEOUS_CONTROL_FUNCTION, MISCELLANEOUS_CONTROL_DEVICE_ID); busClock = new Sensor("Bus Speed", 0, SensorType.Clock, this, settings); coreClocks = new Sensor[coreCount]; for (int i = 0; i < coreClocks.Length; i++) { coreClocks[i] = new Sensor(CoreString(i), i + 1, SensorType.Clock, this, settings); if (HasTimeStampCounter) { ActivateSensor(coreClocks[i]); } } Update(); }
public AMD0FCPU(int processorIndex, CPUID[][] cpuid) { this.processorIndex = processorIndex; this.name = cpuid[0][0].Name; this.icon = Utilities.EmbeddedResources.GetImage("cpu.png"); int coreCount = cpuid.Length; totalLoad = new Sensor("CPU Total", 0, SensorType.Load, this); float offset = -49.0f; // AM2+ 65nm +21 offset uint model = cpuid[0][0].Model; if (model >= 0x69 && model != 0xc1 && model != 0x6c && model != 0x7c) { offset += 21; } // check if processor supports a digital thermal sensor if (cpuid[0][0].ExtData.GetLength(0) > 7 && (cpuid[0][0].ExtData[7, 3] & 1) != 0) { coreTemperatures = new Sensor[coreCount]; for (int i = 0; i < coreCount; i++) { coreTemperatures[i] = new Sensor("Core #" + (i + 1), i, null, SensorType.Temperature, this, new ParameterDescription[] { new ParameterDescription("Offset", "Temperature offset of the thermal sensor.\n" + "Temperature = Value + Offset.", offset) }); } } else { coreTemperatures = new Sensor[0]; } coreLoads = new Sensor[coreCount]; for (int i = 0; i < coreCount; i++) { coreLoads[i] = new Sensor("Core #" + (i + 1), i + 1, SensorType.Load, this); } cpuLoad = new CPULoad(cpuid); if (cpuLoad.IsAvailable) { foreach (Sensor sensor in coreLoads) { ActivateSensor(sensor); } ActivateSensor(totalLoad); } pciAddress = WinRing0.FindPciDeviceById(PCI_AMD_VENDOR_ID, PCI_AMD_0FH_MISCELLANEOUS_DEVICE_ID, (byte)processorIndex); Update(); }
protected DateTimeFormatInfo _dtformat; // 时间字段格式 public virtual IEnumerable <byte[]> ReadData(Sensor si, string filePath) { return(null); }
public void OnAccuracyChanged(Sensor sensor, SensorStatus accuracy) { //do nothing }
public SuperIOHardware(Mainboard mainboard, ISuperIO superIO, Manufacturer manufacturer, Model model, ISettings settings) { this.mainboard = mainboard; this.superIO = superIO; this.name = ChipName.GetName(superIO.Chip); List <Voltage> v = new List <Voltage>(); List <Temperature> t = new List <Temperature>(); List <Fan> f = new List <Fan>(); switch (superIO.Chip) { case Chip.IT8712F: case Chip.IT8716F: case Chip.IT8718F: case Chip.IT8720F: case Chip.IT8726F: switch (manufacturer) { case Manufacturer.ASUS: switch (model) { case Model.Crosshair_III_Formula: // IT8720F v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("CPU", 0)); for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; case Model.M2N_SLI_DELUXE: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("+3.3V", 1)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 4, 30, 10)); v.Add(new Voltage("+5VSB", 7, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 1)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("Chassis Fan #1", 1)); f.Add(new Fan("Power Fan", 2)); break; case Model.M4A79XTD_EVO: // IT8720F v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 1)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("Chassis Fan #1", 1)); f.Add(new Fan("Chassis Fan #2", 2)); break; default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("Voltage #4", 3, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("Voltage #8", 7, true)); v.Add(new Voltage("VBat", 8)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } break; case Manufacturer.DFI: switch (model) { case Model.LP_BI_P45_T2RS_Elite: // IT8718F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("FSB VTT", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 4, 30, 10)); v.Add(new Voltage("NB Core", 5)); v.Add(new Voltage("VDIMM", 6)); v.Add(new Voltage("+5VSB", 7, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("System", 1)); t.Add(new Temperature("Chipset", 2)); f.Add(new Fan("Fan #1", 0)); f.Add(new Fan("Fan #2", 1)); f.Add(new Fan("Fan #3", 2)); break; case Model.LP_DK_P55_T3eH9: // IT8720F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("VTT", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 4, 30, 10)); v.Add(new Voltage("CPU PLL", 5)); v.Add(new Voltage("DRAM", 6)); v.Add(new Voltage("+5VSB", 7, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("Chipset", 0)); t.Add(new Temperature("CPU PWM", 1)); t.Add(new Temperature("CPU", 2)); f.Add(new Fan("Fan #1", 0)); f.Add(new Fan("Fan #2", 1)); f.Add(new Fan("Fan #3", 2)); break; default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("VTT", 1, true)); v.Add(new Voltage("+3.3V", 2, true)); v.Add(new Voltage("+5V", 3, 6.8f, 10, 0, true)); v.Add(new Voltage("+12V", 4, 30, 10, 0, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("DRAM", 6, true)); v.Add(new Voltage("+5VSB", 7, 6.8f, 10, 0, true)); v.Add(new Voltage("VBat", 8)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } break; case Manufacturer.Gigabyte: switch (model) { case Model._965P_S3: // IT8718F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 7, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan", 1)); break; case Model.EP45_DS3R: // IT8718F case Model.EP45_UD3R: case Model.X38_DS5: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 7, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan #2", 1)); f.Add(new Fan("Power Fan", 2)); f.Add(new Fan("System Fan #1", 3)); break; case Model.EX58_EXTREME: // IT8720F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); t.Add(new Temperature("Northbridge", 2)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan #2", 1)); f.Add(new Fan("Power Fan", 2)); f.Add(new Fan("System Fan #1", 3)); break; case Model.P35_DS3: // IT8718F case Model.P35_DS3L: // IT8718F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 7, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan #1", 1)); f.Add(new Fan("System Fan #2", 2)); f.Add(new Fan("Power Fan", 3)); break; case Model.P55_UD4: // IT8720F case Model.P55M_UD4: // IT8720F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 5, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 2)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan #2", 1)); f.Add(new Fan("Power Fan", 2)); f.Add(new Fan("System Fan #1", 3)); break; case Model.GA_MA770T_UD3: // IT8720F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 4, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan #1", 1)); f.Add(new Fan("System Fan #2", 2)); f.Add(new Fan("Power Fan", 3)); break; case Model.GA_MA785GMT_UD2H: // IT8718F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 4, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan", 1)); f.Add(new Fan("NB Fan", 2)); break; case Model.X58A_UD3R: // IT8720F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1)); v.Add(new Voltage("+3.3V", 2)); v.Add(new Voltage("+5V", 3, 6.8f, 10)); v.Add(new Voltage("+12V", 5, 27, 9.1f)); v.Add(new Voltage("VBat", 8)); t.Add(new Temperature("System", 0)); t.Add(new Temperature("CPU", 1)); t.Add(new Temperature("Northbridge", 2)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan #2", 1)); f.Add(new Fan("Power Fan", 2)); f.Add(new Fan("System Fan #1", 3)); break; default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("DRAM", 1, true)); v.Add(new Voltage("+3.3V", 2, true)); v.Add(new Voltage("+5V", 3, 6.8f, 10, 0, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("+12V", 7, 27, 9.1f, 0, true)); v.Add(new Voltage("VBat", 8)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } break; default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("Voltage #4", 3, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("Voltage #8", 7, true)); v.Add(new Voltage("VBat", 8)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } break; case Chip.IT8721F: switch (manufacturer) { case Manufacturer.ECS: switch (model) { case Model.A890GXM_A: // IT8721F v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("VDIMM", 1)); v.Add(new Voltage("NB Voltage", 2)); v.Add(new Voltage("Analog +3.3V", 3, 10, 10)); // v.Add(new Voltage("VDIMM", 6, true)); v.Add(new Voltage("Standby +3.3V", 7, 10, 10)); v.Add(new Voltage("VBat", 8, 10, 10)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("System", 1)); t.Add(new Temperature("Northbridge", 2)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("System Fan", 1)); f.Add(new Fan("Power Fan", 2)); break; default: v.Add(new Voltage("Voltage #1", 0, true)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("Analog +3.3V", 3, 10, 10, 0, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true)); v.Add(new Voltage("VBat", 8, 10, 10)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } break; default: v.Add(new Voltage("Voltage #1", 0, true)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("Analog +3.3V", 3, 10, 10, 0, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true)); v.Add(new Voltage("VBat", 8, 10, 10)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } break; case Chip.F71858: v.Add(new Voltage("VCC3V", 0, 150, 150)); v.Add(new Voltage("VSB3V", 1, 150, 150)); v.Add(new Voltage("Battery", 2, 150, 150)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; case Chip.F71862: case Chip.F71869: case Chip.F71882: case Chip.F71889ED: case Chip.F71889F: switch (manufacturer) { case Manufacturer.EVGA: switch (model) { case Model.X58_SLI_Classified: // F71882 v.Add(new Voltage("VCC3V", 0, 150, 150)); v.Add(new Voltage("CPU VCore", 1, 47, 100)); v.Add(new Voltage("DIMM", 2, 47, 100)); v.Add(new Voltage("CPU VTT", 3, 24, 100)); v.Add(new Voltage("IOH Vcore", 4, 24, 100)); v.Add(new Voltage("+5V", 5, 51, 12)); v.Add(new Voltage("+12V", 6, 56, 6.8f)); v.Add(new Voltage("3VSB", 7, 150, 150)); v.Add(new Voltage("VBat", 8, 150, 150)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("VREG", 1)); t.Add(new Temperature("System", 2)); f.Add(new Fan("CPU Fan", 0)); f.Add(new Fan("Power Fan", 1)); f.Add(new Fan("Chassis Fan", 2)); break; default: v.Add(new Voltage("VCC3V", 0, 150, 150)); v.Add(new Voltage("CPU VCore", 1)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("Voltage #4", 3, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("VSB3V", 7, 150, 150)); v.Add(new Voltage("VBat", 8, 150, 150)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } break; default: v.Add(new Voltage("VCC3V", 0, 150, 150)); v.Add(new Voltage("CPU VCore", 1)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("Voltage #4", 3, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("VSB3V", 7, 150, 150)); v.Add(new Voltage("VBat", 8, 150, 150)); for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } break; case Chip.W83627EHF: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("AVCC", 2, 34, 34)); v.Add(new Voltage("3VCC", 3, 34, 34)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("3VSB", 7, 34, 34)); v.Add(new Voltage("VBAT", 8, 34, 34)); v.Add(new Voltage("Voltage #10", 9, true)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); t.Add(new Temperature("System", 2)); f.Add(new Fan("System Fan", 0)); f.Add(new Fan("CPU Fan", 1)); f.Add(new Fan("Auxiliary Fan", 2)); f.Add(new Fan("CPU Fan #2", 3)); f.Add(new Fan("Auxiliary Fan #2", 4)); break; case Chip.W83627DHG: case Chip.W83627DHGP: case Chip.W83667HG: case Chip.W83667HGB: switch (manufacturer) { case Manufacturer.ASRock: switch (model) { case Model._880GMH_USB3: // W83627DHG-P v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("+3.3V", 3, 34, 34)); v.Add(new Voltage("+5V", 5, 15, 7.5f)); v.Add(new Voltage("+12V", 6, 56, 10)); v.Add(new Voltage("Standby +3.3V", 7, 34, 34)); v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 2)); f.Add(new Fan("Chassis Fan", 0)); f.Add(new Fan("CPU Fan", 1)); f.Add(new Fan("Power Fan", 2)); break; default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("AVCC", 2, 34, 34)); v.Add(new Voltage("3VCC", 3, 34, 34)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("3VSB", 7, 34, 34)); v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); t.Add(new Temperature("System", 2)); f.Add(new Fan("System Fan", 0)); f.Add(new Fan("CPU Fan", 1)); f.Add(new Fan("Auxiliary Fan", 2)); f.Add(new Fan("CPU Fan #2", 3)); f.Add(new Fan("Auxiliary Fan #2", 4)); break; } break; case Manufacturer.ASUS: switch (model) { case Model.P6X58D_E: // W83667HG case Model.Rampage_II_GENE: // W83667HG v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("+12V", 1, 11.5f, 1.91f)); v.Add(new Voltage("Analog +3.3V", 2, 34, 34)); v.Add(new Voltage("+3.3V", 3, 34, 34)); v.Add(new Voltage("+5V", 4, 15, 7.5f)); v.Add(new Voltage("Standby +3.3V", 7, 34, 34)); v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 2)); f.Add(new Fan("Chassis Fan #1", 0)); f.Add(new Fan("CPU Fan", 1)); f.Add(new Fan("Power Fan", 2)); f.Add(new Fan("Chassis Fan #2", 3)); f.Add(new Fan("Chassis Fan #3", 4)); break; case Model.Rampage_Extreme: // W83667HG v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("+12V", 1, 12, 2)); v.Add(new Voltage("Analog +3.3V", 2, 34, 34)); v.Add(new Voltage("+3.3V", 3, 34, 34)); v.Add(new Voltage("+5V", 4, 15, 7.5f)); v.Add(new Voltage("Standby +3.3V", 7, 34, 34)); v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Motherboard", 2)); f.Add(new Fan("Chassis Fan #1", 0)); f.Add(new Fan("CPU Fan", 1)); f.Add(new Fan("Power Fan", 2)); f.Add(new Fan("Chassis Fan #2", 3)); f.Add(new Fan("Chassis Fan #3", 4)); break; default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("AVCC", 2, 34, 34)); v.Add(new Voltage("3VCC", 3, 34, 34)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("3VSB", 7, 34, 34)); v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); t.Add(new Temperature("System", 2)); f.Add(new Fan("System Fan", 0)); f.Add(new Fan("CPU Fan", 1)); f.Add(new Fan("Auxiliary Fan", 2)); f.Add(new Fan("CPU Fan #2", 3)); f.Add(new Fan("Auxiliary Fan #2", 4)); break; } break; default: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("AVCC", 2, 34, 34)); v.Add(new Voltage("3VCC", 3, 34, 34)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("3VSB", 7, 34, 34)); v.Add(new Voltage("VBAT", 8, 34, 34)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); t.Add(new Temperature("System", 2)); f.Add(new Fan("System Fan", 0)); f.Add(new Fan("CPU Fan", 1)); f.Add(new Fan("Auxiliary Fan", 2)); f.Add(new Fan("CPU Fan #2", 3)); f.Add(new Fan("Auxiliary Fan #2", 4)); break; } break; case Chip.W83627HF: case Chip.W83627THF: case Chip.W83687THF: v.Add(new Voltage("CPU VCore", 0)); v.Add(new Voltage("Voltage #2", 1, true)); v.Add(new Voltage("Voltage #3", 2, true)); v.Add(new Voltage("AVCC", 3, 34, 51)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("5VSB", 5, 34, 51)); v.Add(new Voltage("VBAT", 6)); t.Add(new Temperature("CPU", 0)); t.Add(new Temperature("Auxiliary", 1)); t.Add(new Temperature("System", 2)); f.Add(new Fan("System Fan", 0)); f.Add(new Fan("CPU Fan", 1)); f.Add(new Fan("Auxiliary Fan", 2)); break; default: for (int i = 0; i < superIO.Voltages.Length; i++) { v.Add(new Voltage("Voltage #" + (i + 1), i, true)); } for (int i = 0; i < superIO.Temperatures.Length; i++) { t.Add(new Temperature("Temperature #" + (i + 1), i)); } for (int i = 0; i < superIO.Fans.Length; i++) { f.Add(new Fan("Fan #" + (i + 1), i)); } break; } const string formula = "Voltage = value + (value - Vf) * Ri / Rf."; foreach (Voltage voltage in v) { if (voltage.Index < superIO.Voltages.Length) { Sensor sensor = new Sensor(voltage.Name, voltage.Index, voltage.Hidden, SensorType.Voltage, this, new [] { new ParameterDescription("Ri [kΩ]", "Input resistance.\n" + formula, voltage.Ri), new ParameterDescription("Rf [kΩ]", "Reference resistance.\n" + formula, voltage.Rf), new ParameterDescription("Vf [V]", "Reference voltage.\n" + formula, voltage.Vf) }, settings); voltages.Add(sensor); } } foreach (Temperature temperature in t) { if (temperature.Index < superIO.Temperatures.Length) { Sensor sensor = new Sensor(temperature.Name, temperature.Index, SensorType.Temperature, this, new [] { new ParameterDescription("Offset [°C]", "Temperature offset.", 0) }, settings); temperatures.Add(sensor); } } foreach (Fan fan in f) { if (fan.Index < superIO.Fans.Length) { Sensor sensor = new Sensor(fan.Name, fan.Index, SensorType.Fan, this, settings); fans.Add(sensor); } } }
public static Converter CreateConverter(SensorUnity expectedUnity, SensorUnity realUnity, Sensor sensor, Visualizer visualizer) { foreach (Type converterType in typeof(Converter).Assembly.GetTypes()) { ConverterAttribute converterAttribute = (ConverterAttribute)converterType.GetCustomAttribute(typeof(ConverterAttribute)); if (converterAttribute != null && converterAttribute.inputUnity == realUnity && converterAttribute.outputUnity == expectedUnity) { return((Converter)Activator.CreateInstance(converterType, sensor, visualizer)); } } throw new Exception("There is no converter supporting this conversion, expected: " + expectedUnity.ToString() + ", real: " + realUnity); }
public void OnReceivingSensorAccess(Vehicle accessor, Sensor sensor, Track track) { if (sensor.sensorType == this.counterSensorType) { if (isSelfDefenseJamming == false || track.target == self) { switch (jamType) { case JamType.DistanceJamming: { float jamStrengthAtDistance = GetJamStrengthAtDistance(accessor.position - self.position); if (sensor.IsJamSuccessful(jamStrengthAtDistance)) { var sensorPosition = accessor.position; var losVec = track.position - sensorPosition; float randomDistanceCoeff = UnityEngine.Random.Range(-jamStrength, jamStrength) + 1f; var falsePos = losVec.magnitude * randomDistanceCoeff * losVec.normalized + sensorPosition; track.position = falsePos; } break; } case JamType.PositionJamming: { float jamStrengthAtDistance = GetJamStrengthAtDistance(accessor.position - self.position); if (sensor.IsJamSuccessful(jamStrengthAtDistance)) { float randomDistanceCoeff = UnityEngine.Random.Range(0, GetJamStrengthAtDistance(accessor.position - self.position)) + 1f; var falsePos = track.position - self.velocity.magnitude * randomDistanceCoeff * self.velocity.normalized; track.position = falsePos; } break; } case JamType.DatalinkJamming: { var datalinkModules = accessor.GetComponents <DatalinkModule>(); if (datalinkModules != null && datalinkModules.Length > 0) { for (int i = 0; i < datalinkModules.Length; ++i) { DatalinkModule datalinkModule = datalinkModules[i]; datalinkModule.jamState += GetJamStrengthAtDistance(accessor.position - self.position); } } break; } case JamType.FalseTarget: { if (falseTrack == null || falseTrack.age > maxFalseTrackAge) { Vector3 falsePos = self.position + UnityEngine.Random.insideUnitSphere * jamStrength; Vector2 randCircle = UnityEngine.Random.insideUnitCircle; falsePos.x += randCircle.x * jamStrength * 10f; falsePos.z += randCircle.y * jamStrength * 10f; Vector3 falseVel = UnityEngine.Random.insideUnitCircle.normalized * 200f; falseVehicle = new Vehicle(); falseVehicle.position = falsePos; falseVehicle.speed = 200f; falseVehicle.pitch = 0f; falseVehicle.course = UnityEngine.Random.Range(0f, 1f) * 360f; falseVehicle.typeName = self.typeName; falseTrack = new Track(accessor, falseVehicle, TrackId.Unknown); falseTrack.position = falsePos; falseTrack.velocity = falseVehicle.velocity; } else { falseTrack.timeOfLastUpdate = Time.time; } break; } } } } }
private void Sensor_PointerEnter(object sender, PointerRoutedEventArgs e) { // No need to do anything if no event selected. if (_home.SelectedEventIndex < 0) { return; } // Update Layout Rectangle sensorRect = null; Sensor sensor = null; TextBlock sensorText = null; int i = 0; if (sender is Rectangle) { sensorRect = (Rectangle)sender; for (i = 0; i < canvasSensorList.Count; i++) { if (canvasSensorList[i].Item2 == sensorRect) { sensor = canvasSensorList[i].Item1; sensorText = canvasSensorList[i].Item3; break; } } } else if (sender is TextBlock) { sensorText = (TextBlock)sender; for (i = 0; i < canvasSensorList.Count; i++) { if (canvasSensorList[i].Item3 == sensorText) { sensor = canvasSensorList[i].Item1; sensorRect = canvasSensorList[i].Item2; break; } } } sensorDetail.Text = "Name: " + sensor.name + "\n"; sensorDetail.Text += "Type: " + sensor.type + "\n"; sensorDetail.Text += "Description: \n" + sensor.description; int eventIndex = _home.SensorLastFireStat[sensor.name]; if (eventIndex != -1) { sensorDetail.Text += (_home.SelectedEventIndex - eventIndex).ToString() + " events ago\n"; sensorDetail.Text += "at " + _home.sensorEventCollection[eventIndex].TimeTag.ToString("H:mm:ss"); } sensorDetail.Visibility = Visibility.Visible; double sensorDetail_x = Canvas.GetLeft(sensorRect) + sensorRect.ActualWidth; double sensorDetail_y = Canvas.GetTop(sensorRect) + sensorRect.ActualHeight; if (sensorDetail_x + sensorDetail.ActualWidth > sensorCanvas.ActualWidth) { sensorDetail_x = Canvas.GetLeft(sensorRect) - sensorDetail.ActualWidth; } if (sensorDetail_y + sensorDetail.ActualHeight > sensorCanvas.ActualHeight) { sensorDetail_y = Canvas.GetTop(sensorRect) - sensorDetail.ActualHeight; } Canvas.SetLeft(sensorDetail, sensorDetail_x); Canvas.SetTop(sensorDetail, sensorDetail_y); sensorCanvas.InvalidateArrange(); sensorCanvas.UpdateLayout(); }
public void ParseRadioBroadcast(string packet) { //parse the packet string[] tokens = packet.Split(','); string id = tokens[0]; string status = tokens[1]; // find sensor with id Sensor sensor = null; for (IEnumerator enumerator = sensors.GetEnumerator(); enumerator.MoveNext();) { if (enumerator.Current == null) { enumerator.MoveNext(); } Sensor s = (Sensor)enumerator.Current; if (s.GetId() == id) { sensor = s; break; } } //trip or reset sensor if (sensor != null) { if ("TRIPPED" == status) { sensor.Trip(); } else { sensor.Reset(); } } //get the message from the sensor and display it string message = GetSensorMessage(sensor); view.ShowMessage(message); // sound the alarm if armed if (isArmed()) { audibleAlarm.Sound(); } // check if a sensor test is running and adjust status if (runningSensorTest) { if ("TRIPPED" == status) { sensorTestStatusMap.Add(id, PASS); } // check to see if test is complete bool done = true; for (IEnumerator enumerator = sensorTestStatusMap.Values.GetEnumerator(); enumerator.MoveNext();) { if (enumerator.Current == null) { enumerator.MoveNext(); } string testStatus = (string)enumerator.Current; if (PENDING == testStatus) { done = false; break; } } //terminate test if complete if (done) { terminateSensorTest(); } } }
// Use this for initialization void Start() { sensor = transform.Find("Sensor").gameObject.GetComponent <Sensor>(); //distances that cause an immediate stop stopDistances = new List <int>(); for (var i = 0; i < 39; i++) { stopDistances.Add(0); } for (var i = 0; i < 193; i++) { stopDistances.Add(300); } for (var i = 0; i < 39; i++) { stopDistances.Add(0); } //distances that cause a turn turnDistances = new List <int>(); for (var i = 0; i < 39; i++) { turnDistances.Add(0); } for (var i = 0; i < 193; i++) { turnDistances.Add(500); } for (var i = 0; i < 39; i++) { turnDistances.Add(0); } //distances free for random left freeDistancesLeft = new List <int>(); for (var i = 0; i < 39; i++) { freeDistancesLeft.Add(0); } for (var i = 0; i < 97; i++) { freeDistancesLeft.Add(550); } for (var i = 0; i < 96; i++) { freeDistancesLeft.Add(500); } for (var i = 0; i < 39; i++) { freeDistancesLeft.Add(0); } //distances free for random right freeDistancesRight = new List <int>(); for (var i = 0; i < 39; i++) { freeDistancesRight.Add(0); } for (var i = 0; i < 96; i++) { freeDistancesRight.Add(500); } for (var i = 0; i < 97; i++) { freeDistancesRight.Add(550); } for (var i = 0; i < 39; i++) { freeDistancesRight.Add(0); } }
protected override void OnCreate(Bundle savedInstanceState) { try { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.AgoraVideoCallActivityLayout); GlobalContext = TabbedMainActivity.GetInstance(); SensorManager = (SensorManager)GetSystemService(SensorService); Proximity = SensorManager.GetDefaultSensor(SensorType.Proximity); UserId = Intent.GetStringExtra("UserID"); Avatar = Intent.GetStringExtra("avatar"); Name = Intent.GetStringExtra("name"); var dataCallId = Intent.GetStringExtra("CallID") ?? "Data not available"; if (dataCallId != "Data not available" && !string.IsNullOrEmpty(dataCallId)) { CallId = dataCallId; FromId = Intent.GetStringExtra("from_id"); Active = Intent.GetStringExtra("active"); var time = Intent.GetStringExtra("time"); Status = Intent.GetStringExtra("status"); RoomName = Intent.GetStringExtra("room_name"); CallType = Intent.GetStringExtra("type"); Console.WriteLine(time); } SwitchCamButton = FindViewById <Button>(Resource.Id.switch_cam_button); MuteVideoButton = FindViewById <CircleButton>(Resource.Id.mute_video_button); EndCallButton = FindViewById <CircleButton>(Resource.Id.end_call_button); MuteAudioButton = FindViewById <CircleButton>(Resource.Id.mute_audio_button); UserInfoviewContainer = FindViewById <RelativeLayout>(Resource.Id.userInfoview_container); UserImageView = FindViewById <ImageView>(Resource.Id.userImageView); UserNameTextView = FindViewById <TextView>(Resource.Id.userNameTextView); NoteTextView = FindViewById <TextView>(Resource.Id.noteTextView); PictureInToPictureButton = FindViewById <ImageView>(Resource.Id.pictureintopictureButton); if (!PackageManager.HasSystemFeature(PackageManager.FeaturePictureInPicture)) { PictureInToPictureButton.Visibility = ViewStates.Gone; } SwitchCamButton.Click += Switch_cam_button_Click; MuteVideoButton.Click += Mute_video_button_Click; EndCallButton.Click += End_call_button_Click; MuteAudioButton.Click += Mute_audio_button_Click; PictureInToPictureButton.Click += PictureInToPictureButton_Click; LoadUserInfo(); if (CallType == "Agora_video_calling_start") { Start_Call_Action("call"); } else { Start_Call_Action("recieve_call"); } } catch (Exception e) { Console.WriteLine(e); } }
public SsdSandforce(StorageInfo storageInfo, ISmart smart, string name, string firmwareRevision, int index, ISettings settings) : base(storageInfo, smart, name, firmwareRevision, "ssd", index, _smartAttributes, settings) { _writeAmplification = new Sensor("Write Amplification", 1, SensorType.Factor, this, settings); }
public void OnAccuracyChanged(Sensor sensor, [GeneratedEnum] SensorStatus accuracy) { //throw new NotImplementedException(); }
public override void OnInspectorGUI() { if (Application.isPlaying) { GUILayout.Label("Mover settings can't be changed in the inspector while the game is running.", EditorStyles.centeredGreyMiniLabel); return; } if (mover == null) { Setup(); return; } GUILayout.Label("Mover Options", EditorStyles.boldLabel); Rect _space; EditorGUI.BeginChangeCheck(); mover.stepHeightRatio = EditorGUILayout.Slider("Step Height Ratio", mover.stepHeightRatio, 0f, 1f); GUILayout.Label("Collider Options", EditorStyles.boldLabel); mover.colliderHeight = EditorGUILayout.FloatField("Collider Height", mover.colliderHeight); mover.colliderThickness = EditorGUILayout.FloatField("Collider Thickness", mover.colliderThickness); mover.colliderOffset = EditorGUILayout.Vector3Field("Collider Offset", mover.colliderOffset); if (EditorGUI.EndChangeCheck()) { mover.RecalculateColliderDimensions(); OnEditorVariableChanged(); } GUILayout.Label("Sensor Options", EditorStyles.boldLabel); EditorGUI.BeginChangeCheck(); mover.sensorType = (Sensor.CastType)EditorGUILayout.EnumPopup("Sensor Type", mover.sensorType); mover.sensorLayermask = EditorGUILayout.MaskField("Layermask", mover.sensorLayermask, physicsLayers); mover.isInDebugMode = EditorGUILayout.Toggle("Debug Mode", mover.isInDebugMode); if (EditorGUI.EndChangeCheck()) { OnEditorVariableChanged(); } if (mover.sensorType == Sensor.CastType.RaycastArray) { GUILayout.Label("Advanced Options", EditorStyles.centeredGreyMiniLabel); } GUILayout.Space(5); if (mover.sensorType == Sensor.CastType.Raycast) { } else if (mover.sensorType == Sensor.CastType.Spherecast) { } else if (mover.sensorType == Sensor.CastType.RaycastArray) { if (raycastArrayPositions == null) { raycastArrayPositions = Sensor.GetRaycastStartPositions(mover.sensorArrayRows, mover.sensorArrayRayCount, mover.sensorArrayRowsAreOffset, 1f); } EditorGUI.BeginChangeCheck(); mover.sensorArrayRayCount = EditorGUILayout.IntSlider("Number", mover.sensorArrayRayCount, 3, 9); mover.sensorArrayRows = EditorGUILayout.IntSlider("Rows", mover.sensorArrayRows, 1, 5); mover.sensorArrayRowsAreOffset = EditorGUILayout.Toggle("Offset Rows", mover.sensorArrayRowsAreOffset); if (EditorGUI.EndChangeCheck()) { raycastArrayPositions = Sensor.GetRaycastStartPositions(mover.sensorArrayRows, mover.sensorArrayRayCount, mover.sensorArrayRowsAreOffset, 1f); OnEditorVariableChanged(); } GUILayout.Space(5); _space = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.Height(100)); Rect background = new Rect(_space.x + (_space.width - _space.height) / 2f, _space.y, _space.height, _space.height); EditorGUI.DrawRect(background, Color.grey); float point_size = 3f; Vector2 center = new Vector2(background.x + background.width / 2f, background.y + background.height / 2f); if (raycastArrayPositions != null && raycastArrayPositions.Length != 0) { for (int i = 0; i < raycastArrayPositions.Length; i++) { Vector2 position = center + new Vector2(raycastArrayPositions[i].x, raycastArrayPositions[i].z) * background.width / 2f * 0.9f; EditorGUI.DrawRect(new Rect(position.x - point_size / 2f, position.y - point_size / 2f, point_size, point_size), Color.white); } } if (raycastArrayPositions != null && raycastArrayPositions.Length != 0) { GUILayout.Label("Number of rays = " + raycastArrayPositions.Length, EditorStyles.centeredGreyMiniLabel); } } }
public IntelCpu(int processorIndex, CpuId[][] cpuId, ISettings settings) : base(processorIndex, cpuId, settings) { // set tjMax float[] tjMax; switch (_family) { case 0x06: { switch (_model) { case 0x0F: // Intel Core 2 (65nm) _microArchitecture = MicroArchitecture.Core; switch (_stepping) { case 0x06: // B2 switch (_coreCount) { case 2: tjMax = Floats(80 + 10); break; case 4: tjMax = Floats(90 + 10); break; default: tjMax = Floats(85 + 10); break; } break; case 0x0B: // G0 tjMax = Floats(90 + 10); break; case 0x0D: // M0 tjMax = Floats(85 + 10); break; default: tjMax = Floats(85 + 10); break; } break; case 0x17: // Intel Core 2 (45nm) _microArchitecture = MicroArchitecture.Core; tjMax = Floats(100); break; case 0x1C: // Intel Atom (45nm) _microArchitecture = MicroArchitecture.Atom; switch (_stepping) { case 0x02: // C0 tjMax = Floats(90); break; case 0x0A: // A0, B0 tjMax = Floats(100); break; default: tjMax = Floats(90); break; } break; case 0x1A: // Intel Core i7 LGA1366 (45nm) case 0x1E: // Intel Core i5, i7 LGA1156 (45nm) case 0x1F: // Intel Core i5, i7 case 0x25: // Intel Core i3, i5, i7 LGA1156 (32nm) case 0x2C: // Intel Core i7 LGA1366 (32nm) 6 Core case 0x2E: // Intel Xeon Processor 7500 series (45nm) case 0x2F: // Intel Xeon Processor (32nm) _microArchitecture = MicroArchitecture.Nehalem; tjMax = GetTjMaxFromMsr(); break; case 0x2A: // Intel Core i5, i7 2xxx LGA1155 (32nm) case 0x2D: // Next Generation Intel Xeon, i7 3xxx LGA2011 (32nm) _microArchitecture = MicroArchitecture.SandyBridge; tjMax = GetTjMaxFromMsr(); break; case 0x3A: // Intel Core i5, i7 3xxx LGA1155 (22nm) case 0x3E: // Intel Core i7 4xxx LGA2011 (22nm) _microArchitecture = MicroArchitecture.IvyBridge; tjMax = GetTjMaxFromMsr(); break; case 0x3C: // Intel Core i5, i7 4xxx LGA1150 (22nm) case 0x3F: // Intel Xeon E5-2600/1600 v3, Core i7-59xx // LGA2011-v3, Haswell-E (22nm) case 0x45: // Intel Core i5, i7 4xxxU (22nm) case 0x46: _microArchitecture = MicroArchitecture.Haswell; tjMax = GetTjMaxFromMsr(); break; case 0x3D: // Intel Core M-5xxx (14nm) case 0x47: // Intel i5, i7 5xxx, Xeon E3-1200 v4 (14nm) case 0x4F: // Intel Xeon E5-26xx v4 case 0x56: // Intel Xeon D-15xx _microArchitecture = MicroArchitecture.Broadwell; tjMax = GetTjMaxFromMsr(); break; case 0x36: // Intel Atom S1xxx, D2xxx, N2xxx (32nm) _microArchitecture = MicroArchitecture.Atom; tjMax = GetTjMaxFromMsr(); break; case 0x37: // Intel Atom E3xxx, Z3xxx (22nm) case 0x4A: case 0x4D: // Intel Atom C2xxx (22nm) case 0x5A: case 0x5D: _microArchitecture = MicroArchitecture.Silvermont; tjMax = GetTjMaxFromMsr(); break; case 0x4E: case 0x5E: // Intel Core i5, i7 6xxxx LGA1151 (14nm) case 0x55: // Intel Core X i7, i9 7xxx LGA2066 (14nm) _microArchitecture = MicroArchitecture.Skylake; tjMax = GetTjMaxFromMsr(); break; case 0x4C: // Intel Airmont (Cherry Trail, Braswell) _microArchitecture = MicroArchitecture.Airmont; tjMax = GetTjMaxFromMsr(); break; case 0x8E: // Intel Core i5, i7 7xxxx (14nm) (Kaby Lake) and 8xxxx (14nm++) (Coffee Lake) case 0x9E: _microArchitecture = MicroArchitecture.KabyLake; tjMax = GetTjMaxFromMsr(); break; case 0x5C: // Goldmont (Apollo Lake) case 0x5F: // (Denverton) _microArchitecture = MicroArchitecture.Goldmont; tjMax = GetTjMaxFromMsr(); break; case 0x7A: // Goldmont plus (Gemini Lake) _microArchitecture = MicroArchitecture.GoldmontPlus; tjMax = GetTjMaxFromMsr(); break; case 0x66: // Intel Core i3 8xxx (10nm) (Cannon Lake) _microArchitecture = MicroArchitecture.CannonLake; tjMax = GetTjMaxFromMsr(); break; case 0x7D: // Intel Core i3, i5, i7 10xxx (10nm) (Ice Lake) case 0x7E: case 0x6A: // Ice Lake server case 0x6C: _microArchitecture = MicroArchitecture.IceLake; tjMax = GetTjMaxFromMsr(); break; case 0xA6: // Intel Core i3, i5, i7 10xxxU (14nm) _microArchitecture = MicroArchitecture.CometLake; tjMax = GetTjMaxFromMsr(); break; case 0x86: // Tremont (10nm) (Elkhart Lake, Skyhawk Lake) _microArchitecture = MicroArchitecture.Tremont; tjMax = GetTjMaxFromMsr(); break; case 0x8C: // Tiger Lake (10nm) case 0x8D: _microArchitecture = MicroArchitecture.TigerLake; tjMax = GetTjMaxFromMsr(); break; default: _microArchitecture = MicroArchitecture.Unknown; tjMax = Floats(100); break; } } break; case 0x0F: { switch (_model) { case 0x00: // Pentium 4 (180nm) case 0x01: // Pentium 4 (130nm) case 0x02: // Pentium 4 (130nm) case 0x03: // Pentium 4, Celeron D (90nm) case 0x04: // Pentium 4, Pentium D, Celeron D (90nm) case 0x06: // Pentium 4, Pentium D, Celeron D (65nm) _microArchitecture = MicroArchitecture.NetBurst; tjMax = Floats(100); break; default: _microArchitecture = MicroArchitecture.Unknown; tjMax = Floats(100); break; } } break; default: _microArchitecture = MicroArchitecture.Unknown; tjMax = Floats(100); break; } // set timeStampCounterMultiplier switch (_microArchitecture) { case MicroArchitecture.Atom: case MicroArchitecture.Core: case MicroArchitecture.NetBurst: { if (Ring0.ReadMsr(IA32_PERF_STATUS, out uint _, out uint edx)) { _timeStampCounterMultiplier = ((edx >> 8) & 0x1f) + 0.5 * ((edx >> 14) & 1); } break; } case MicroArchitecture.Airmont: case MicroArchitecture.Broadwell: case MicroArchitecture.CannonLake: case MicroArchitecture.CometLake: case MicroArchitecture.Goldmont: case MicroArchitecture.GoldmontPlus: case MicroArchitecture.Haswell: case MicroArchitecture.IceLake: case MicroArchitecture.IvyBridge: case MicroArchitecture.KabyLake: case MicroArchitecture.Nehalem: case MicroArchitecture.SandyBridge: case MicroArchitecture.Silvermont: case MicroArchitecture.Skylake: case MicroArchitecture.TigerLake: case MicroArchitecture.Tremont: { if (Ring0.ReadMsr(MSR_PLATFORM_INFO, out uint eax, out uint _)) { _timeStampCounterMultiplier = (eax >> 8) & 0xff; } } break; default: _timeStampCounterMultiplier = 0; break; } int coreSensorId = 0; // check if processor supports a digital thermal sensor at core level if (cpuId[0][0].Data.GetLength(0) > 6 && (cpuId[0][0].Data[6, 0] & 1) != 0 && _microArchitecture != MicroArchitecture.Unknown) { _coreTemperatures = new Sensor[_coreCount]; for (int i = 0; i < _coreTemperatures.Length; i++) { _coreTemperatures[i] = new Sensor(CoreString(i), coreSensorId, SensorType.Temperature, this, new[] { new ParameterDescription("TjMax [°C]", "TjMax temperature of the core sensor.\n" + "Temperature = TjMax - TSlope * Value.", tjMax[i]), new ParameterDescription("TSlope [°C]", "Temperature slope of the digital thermal sensor.\n" + "Temperature = TjMax - TSlope * Value.", 1) }, settings); ActivateSensor(_coreTemperatures[i]); coreSensorId++; } } else { _coreTemperatures = new Sensor[0]; } // check if processor supports a digital thermal sensor at package level if (cpuId[0][0].Data.GetLength(0) > 6 && (cpuId[0][0].Data[6, 0] & 0x40) != 0 && _microArchitecture != MicroArchitecture.Unknown) { _packageTemperature = new Sensor("CPU Package", coreSensorId, SensorType.Temperature, this, new[] { new ParameterDescription("TjMax [°C]", "TjMax temperature of the package sensor.\n" + "Temperature = TjMax - TSlope * Value.", tjMax[0]), new ParameterDescription("TSlope [°C]", "Temperature slope of the digital thermal sensor.\n" + "Temperature = TjMax - TSlope * Value.", 1) }, settings); ActivateSensor(_packageTemperature); coreSensorId++; } // dist to tjmax sensor if (cpuId[0][0].Data.GetLength(0) > 6 && (cpuId[0][0].Data[6, 0] & 1) != 0 && _microArchitecture != MicroArchitecture.Unknown) { _distToTjMaxTemperatures = new Sensor[_coreCount]; for (int i = 0; i < _distToTjMaxTemperatures.Length; i++) { _distToTjMaxTemperatures[i] = new Sensor(CoreString(i) + " Distance to TjMax", coreSensorId, SensorType.Temperature, this, settings); ActivateSensor(_distToTjMaxTemperatures[i]); coreSensorId++; } } else { _distToTjMaxTemperatures = new Sensor[0]; } //core temp avg and max value //is only available when the cpu has more than 1 core if (cpuId[0][0].Data.GetLength(0) > 6 && (cpuId[0][0].Data[6, 0] & 0x40) != 0 && _microArchitecture != MicroArchitecture.Unknown && _coreCount > 1) { _coreMax = new Sensor("Core Max", coreSensorId, SensorType.Temperature, this, settings); ActivateSensor(_coreMax); coreSensorId++; _coreAvg = new Sensor("Core Average", coreSensorId, SensorType.Temperature, this, settings); ActivateSensor(_coreAvg); } else { _coreMax = null; _coreAvg = null; } _busClock = new Sensor("Bus Speed", 0, SensorType.Clock, this, settings); _coreClocks = new Sensor[_coreCount]; for (int i = 0; i < _coreClocks.Length; i++) { _coreClocks[i] = new Sensor(CoreString(i), i + 1, SensorType.Clock, this, settings); if (HasTimeStampCounter && _microArchitecture != MicroArchitecture.Unknown) { ActivateSensor(_coreClocks[i]); } } if (_microArchitecture == MicroArchitecture.Airmont || _microArchitecture == MicroArchitecture.Broadwell || _microArchitecture == MicroArchitecture.CannonLake || _microArchitecture == MicroArchitecture.CometLake || _microArchitecture == MicroArchitecture.Goldmont || _microArchitecture == MicroArchitecture.GoldmontPlus || _microArchitecture == MicroArchitecture.Haswell || _microArchitecture == MicroArchitecture.IceLake || _microArchitecture == MicroArchitecture.IvyBridge || _microArchitecture == MicroArchitecture.KabyLake || _microArchitecture == MicroArchitecture.SandyBridge || _microArchitecture == MicroArchitecture.Silvermont || _microArchitecture == MicroArchitecture.Skylake || _microArchitecture == MicroArchitecture.TigerLake || _microArchitecture == MicroArchitecture.Tremont) { _powerSensors = new Sensor[_energyStatusMsrs.Length]; _lastEnergyTime = new DateTime[_energyStatusMsrs.Length]; _lastEnergyConsumed = new uint[_energyStatusMsrs.Length]; if (Ring0.ReadMsr(MSR_RAPL_POWER_UNIT, out uint eax, out uint _)) { switch (_microArchitecture) { case MicroArchitecture.Silvermont: case MicroArchitecture.Airmont: _energyUnitMultiplier = 1.0e-6f * (1 << (int)((eax >> 8) & 0x1F)); break; default: _energyUnitMultiplier = 1.0f / (1 << (int)((eax >> 8) & 0x1F)); break; } } if (_energyUnitMultiplier != 0) { string[] powerSensorLabels = { "CPU Package", "CPU Cores", "CPU Graphics", "CPU Memory" }; for (int i = 0; i < _energyStatusMsrs.Length; i++) { if (!Ring0.ReadMsr(_energyStatusMsrs[i], out eax, out uint _)) { continue; } _lastEnergyTime[i] = DateTime.UtcNow; _lastEnergyConsumed[i] = eax; _powerSensors[i] = new Sensor(powerSensorLabels[i], i, SensorType.Power, this, settings); ActivateSensor(_powerSensors[i]); } } } Update(); }