/// <summary> /// Converts the machine direction indicated by Value into a forwards or reverse gear, and injects it into the machine gear events list /// </summary> /// <param name="Value"></param> public override void SetMachineDirection(MachineDirection Value) { base.SetMachineDirection(Value); if (GearValueReceived) { return; } MachineGear Gear = MachineGear.Null; if (Value == MachineDirection.Forward) { Gear = MachineGear.Forward; } else if (Value == MachineDirection.Reverse) { Gear = MachineGear.Reverse; } if (_DataTime != Consts.MIN_DATETIME_AS_UTC && (Gear == MachineGear.Forward || Gear == MachineGear.Reverse)) { MachineTargetValueChangesAggregator.MachineGearStateEvents.PutValueAtDate(_DataTime, Gear); } //else //{ //{$IFDEF DENSE_TAG_FILE_LOGGING} //SIGLogProcessMessage.Publish(Self, '_DataTime = 0 or Gear not Forward/Reverse in SetMachineDirection', slpmcDebug); //{$ENDIF} //} }
public void FormatMachineGear(MachineGear value, string expectedResult) { var userPreferences = new UserPreferences(); var csvUserPreference = AutoMapperUtility.Automapper.Map <CSVExportUserPreferences>(userPreferences); var formatter = new CSVExportFormatter(csvUserPreference, OutputTypes.PassCountLastPass); var result = formatter.FormatMachineGearValue(value); result.Should().Be(expectedResult); }
/// <summary> /// Sets the machine gear into the machine gear events list /// </summary> /// <param name="Value"></param> protected override void SetICGear(MachineGear Value) { base.SetICGear(Value); if (_DataTime != Consts.MIN_DATETIME_AS_UTC && Value != MachineGear.SensorFailedDeprecated) { MachineTargetValueChangesAggregator.MachineGearStateEvents.PutValueAtDate(_DataTime, Value); } //else //{ //{$IFDEF DENSE_TAG_FILE_LOGGING} //SIGLogProcessMessage.Publish(Self, '_DataTime = 0 in SetICGear', slpmcDebug); //{$ENDIF} //} }
/// <summary> /// Serializes content of the cell from the writer /// </summary> public void FromBinary(IBinaryRawReader reader) { EventElevationMappingMode = (ElevationMappingMode)reader.ReadByte(); EventInAvoidZoneState = reader.ReadByte(); EventDesignNameID = reader.ReadInt(); EventVibrationState = (VibrationState)reader.ReadByte(); EventAutoVibrationState = (AutoVibrationState)reader.ReadByte(); EventMachineGear = (MachineGear)reader.ReadByte(); EventMachineRMVThreshold = reader.ReadShort(); EventMachineAutomatics = (AutomaticsType)reader.ReadByte(); PositioningTechnology = (PositioningTech)reader.ReadByte(); GPSTolerance = (ushort)reader.ReadInt(); GPSAccuracy = (GPSAccuracy)reader.ReadByte(); MapReset_PriorDate = DateTime.FromBinary(reader.ReadLong()); MapReset_DesignNameID = reader.ReadInt(); LayerID = (ushort)reader.ReadInt(); EventFlags = reader.ReadByte(); }
public void Clear() { EventDesignNameID = NoDesignNameID; EventVibrationState = VibrationState.Invalid; EventAutoVibrationState = AutoVibrationState.Unknown; EventFlags = 0; EventMachineGear = MachineGear.Neutral; EventMachineRMVThreshold = CellPassConsts.NullRMV; EventMachineAutomatics = AutomaticsType.Unknown; EventElevationMappingMode = ElevationMappingMode.LatestElevation; EventInAvoidZoneState = 0; MapReset_PriorDate = CellPassConsts.NullTime; MapReset_DesignNameID = NoDesignNameID; GPSAccuracy = GPSAccuracy.Unknown; GPSTolerance = CellPassConsts.NullGPSTolerance; PositioningTechnology = PositioningTech.Unknown; LayerID = NullLayerID; }
/// <summary> /// Assign the contents of one Cell Events instance to this instance /// </summary> /// <param name="source"></param> public void Assign(CellEvents source) { EventDesignNameID = source.EventDesignNameID; EventVibrationState = source.EventVibrationState; EventAutoVibrationState = source.EventAutoVibrationState; EventFlags = source.EventFlags; EventMachineGear = source.EventMachineGear; EventMachineRMVThreshold = source.EventMachineRMVThreshold; EventMachineAutomatics = source.EventMachineAutomatics; EventElevationMappingMode = source.EventElevationMappingMode; EventInAvoidZoneState = source.EventInAvoidZoneState; MapReset_PriorDate = source.MapReset_PriorDate; MapReset_DesignNameID = source.MapReset_DesignNameID; GPSAccuracy = source.GPSAccuracy; GPSTolerance = source.GPSTolerance; PositioningTechnology = source.PositioningTechnology; LayerID = source.LayerID; }
public string FormatMachineGearValue(MachineGear value) { string result; switch (value) { case MachineGear.Neutral: result = "Neutral"; break; case MachineGear.Forward: result = "Forward"; break; case MachineGear.Reverse: result = "Reverse"; break; case MachineGear.Forward2: result = "Forward_2"; break; case MachineGear.Forward3: result = "Forward_3"; break; case MachineGear.Forward4: result = "Forward_4"; break; case MachineGear.Forward5: result = "Forward_5"; break; case MachineGear.Reverse2: result = "Reverse_2"; break; case MachineGear.Reverse3: result = "Reverse_3"; break; case MachineGear.Reverse4: result = "Reverse_4"; break; case MachineGear.Reverse5: result = "Reverse_5"; break; case MachineGear.Park: result = "Park"; break; case MachineGear.SensorFailed: result = "Sensor_Failed"; break; case MachineGear.Null: result = NullString; break; default: result = $"unknown: {value}"; break; } return(result); }
private string FormatADataRow(ClientCellProfileLeafSubgridRecord cell, double easting, double northing, int runningIndexLLHCoords) { var resultString = new StringBuilder(); if (!cell.LastPassTime.Equals(_runningLastPassTime)) { _cellPassTimeString = _csvExportFormatter.FormatCellPassTime(cell.LastPassTime); _runningLastPassTime = cell.LastPassTime; } resultString.Append($"{_cellPassTimeString},"); if (!(_runningNorthing.Equals(northing) && _runningEasting.Equals(easting))) { _coordString = FormatCoordinate(northing, easting, runningIndexLLHCoords); _runningNorthing = northing; _runningEasting = easting; } resultString.Append($"{_coordString},"); if (!cell.Height.Equals(_runningHeight)) { _heightString = _csvExportFormatter.FormatElevation(cell.Height); _runningHeight = cell.Height; } resultString.Append($"{_heightString},"); resultString.Append($"{cell.PassCount},"); var lastPassValidRadioLatencyString = _csvExportFormatter.FormatRadioLatency(cell.LastPassValidRadioLatency); resultString.Append($"{lastPassValidRadioLatencyString},"); if (!cell.EventDesignNameID.Equals(_runningDesignNameId)) { _lastDesignNameString = FormatDesignNameID(cell.EventDesignNameID); _runningDesignNameId = cell.EventDesignNameID; } resultString.Append($"{_lastDesignNameString},"); if (!cell.InternalSiteModelMachineIndex.Equals(_runningMachineId)) { _lastMachineNameString = FormatMachineName(cell.InternalSiteModelMachineIndex); _runningMachineId = cell.InternalSiteModelMachineIndex; } resultString.Append($"{_lastMachineNameString},"); if (!cell.MachineSpeed.Equals(_runningMachineSpeed)) { _machineSpeedString = _csvExportFormatter.FormatSpeed(cell.MachineSpeed); _runningMachineSpeed = cell.MachineSpeed; } resultString.Append($"{_machineSpeedString},"); if (!cell.LastPassValidGPSMode.Equals(_runningGpsMode)) { _gpsModeString = _csvExportFormatter.FormatGPSMode(cell.LastPassValidGPSMode); _runningGpsMode = cell.LastPassValidGPSMode; } resultString.Append($"{_gpsModeString},"); if (!(cell.GPSAccuracy.Equals(_runningGpsAccuracy) && cell.GPSTolerance.Equals(_runningGpsTolerance))) { _gpsAccuracyToleranceString = _csvExportFormatter.FormatGPSAccuracy(cell.GPSAccuracy, cell.GPSTolerance); _runningGpsAccuracy = cell.GPSAccuracy; _runningGpsTolerance = cell.GPSTolerance; } resultString.Append($"{_gpsAccuracyToleranceString},"); if (!cell.TargetPassCount.Equals(_runningTargetPassCount)) { _targetPassCountString = _csvExportFormatter.FormatPassCount(cell.TargetPassCount); _runningTargetPassCount = cell.TargetPassCount; } resultString.Append($"{_targetPassCountString},"); resultString.Append($"{cell.TotalWholePasses},"); resultString.Append($"{cell.LayersCount},"); // for cellPasses this contains layerID if (!cell.LastPassValidCCV.Equals(_runningLastPassValidCcv)) { _lastPassValidCcvString = _csvExportFormatter.FormatCompactionCCVTypes(cell.LastPassValidCCV); _runningLastPassValidCcv = cell.LastPassValidCCV; } resultString.Append($"{_lastPassValidCcvString},"); if (!cell.TargetCCV.Equals(_runningTargetCcv)) { _lastTargetCcvString = _csvExportFormatter.FormatCompactionCCVTypes(cell.TargetCCV); _runningTargetCcv = cell.TargetCCV; } resultString.Append($"{_lastTargetCcvString},"); if (!cell.LastPassValidMDP.Equals(_runningLastPassValidMdp)) { _lastPassValidMdpString = _csvExportFormatter.FormatCompactionCCVTypes(cell.LastPassValidMDP); _runningLastPassValidMdp = cell.LastPassValidMDP; } resultString.Append($"{_lastPassValidMdpString},"); if (!cell.TargetMDP.Equals(_runningTargetMdp)) { _lastTargetMdpString = _csvExportFormatter.FormatCompactionCCVTypes(cell.TargetMDP); _runningTargetMdp = cell.TargetMDP; } resultString.Append($"{_lastTargetMdpString},"); if (!cell.LastPassValidRMV.Equals(_runningValidRmv)) { _lastValidRmvString = _csvExportFormatter.FormatCompactionCCVTypes(cell.LastPassValidRMV); _runningValidRmv = cell.LastPassValidRMV; } resultString.Append($"{_lastValidRmvString},"); if (!cell.LastPassValidFreq.Equals(_runningValidFreq)) { _lastValidFreqString = _csvExportFormatter.FormatFrequency(cell.LastPassValidFreq); _runningValidFreq = cell.LastPassValidFreq; } resultString.Append($"{_lastValidFreqString},"); if (!cell.LastPassValidAmp.Equals(_runningValidAmp)) { _lastValidAmpString = _csvExportFormatter.FormatAmplitude(cell.LastPassValidAmp); _runningValidAmp = cell.LastPassValidAmp; } resultString.Append($"{_lastValidAmpString},"); if (!cell.TargetThickness.Equals(_runningTargetThickness)) { _lastTargetThicknessString = _csvExportFormatter.FormatTargetThickness(cell.TargetThickness); _runningTargetThickness = cell.TargetThickness; } resultString.Append($"{_lastTargetThicknessString},"); if (!cell.EventMachineGear.Equals(_runningEventMachineGear)) { _lastEventMachineGearString = _csvExportFormatter.FormatMachineGearValue(cell.EventMachineGear); _runningEventMachineGear = cell.EventMachineGear; } resultString.Append($"{_lastEventMachineGearString},"); if (!cell.EventVibrationState.Equals(_runningEventVibrationState)) { _lastEventVibrationStateString = _csvExportFormatter.FormatEventVibrationState(cell.EventVibrationState); _runningEventVibrationState = cell.EventVibrationState; } resultString.Append($"{_lastEventVibrationStateString},"); if (!cell.LastPassValidTemperature.Equals(_runningLastPassValidTemperature)) { _lastPassValidTemperatureString = _csvExportFormatter.FormatLastPassValidTemperature(cell.LastPassValidTemperature); _runningLastPassValidTemperature = cell.LastPassValidTemperature; } resultString.Append($"{_lastPassValidTemperatureString}"); // no training comma return(resultString.ToString()); }
public static bool Equals(MachineGear x, MachineGear y) => x == y;
public void Initialise(IFilteredValuePopulationControl populationControl) { TrackingUseMachineRMVThreshold = false; TrackingOverrideRMVJumpThreshold = CellPassConsts.NullRMV; if (populationControl.WantsTargetCCVValues) { TargetCCV = CellPassConsts.NullCCV; TargetCCV_Tracking = new SiteModelMachineTargetValueTrackingState <short>(MachineTargetValues, ProductionEventType.TargetCCV); } if (populationControl.WantsTargetMDPValues) { TargetMDP = CellPassConsts.NullMDP; TargetMDP_Tracking = new SiteModelMachineTargetValueTrackingState <short>(MachineTargetValues, ProductionEventType.TargetMDP); } if (populationControl.WantsTargetCCAValues) { TargetCCA = CellPassConsts.NullCCA; TargetCCA_Tracking = new SiteModelMachineTargetValueTrackingState <byte>(MachineTargetValues, ProductionEventType.TargetCCA); } if (populationControl.WantsTargetPassCountValues) { TargetPassCount = 0; // kICNullPassCountValue; TargetPassCount_Tracking = new SiteModelMachineTargetValueTrackingState <ushort>(MachineTargetValues, ProductionEventType.TargetPassCount); } if (populationControl.WantsTargetLiftThicknessValues) { TargetLiftThickness = CellPassConsts.NullHeight; TargetLiftThickness_Tracking = new SiteModelMachineTargetValueTrackingState <float>(MachineTargetValues, ProductionEventType.TargetLiftThickness); } /* TODO map reset events not included * if (populationControl.WantsEventMapResetValues) * { * EventMapResetPriorDate = 0; * EventMapResetDesignID = kNoDesignNameID; * EventMapReset_Tracking.Initialise(); * } */ if (populationControl.WantsEventDesignNameValues) { EventDesignNameID = Consts.kNoDesignNameID; EventDesignNameID_Tracking = new SiteModelMachineTargetValueTrackingState <int>(MachineTargetValues, ProductionEventType.DesignChange); } if (populationControl.WantsEventVibrationStateValues) { EventVibrationState = VibrationState.Invalid; EventVibrationState_Tracking = new SiteModelMachineTargetValueTrackingState <VibrationState>(MachineTargetValues, ProductionEventType.VibrationStateChange); } if (populationControl.WantsEventAutoVibrationStateValues) { EventAutoVibrationState = AutoVibrationState.Unknown; EventAutoVibrationState_Tracking = new SiteModelMachineTargetValueTrackingState <AutoVibrationState>(MachineTargetValues, ProductionEventType.AutoVibrationStateChange); } if (populationControl.WantsEventElevationMappingModeValues) { ElevationMappingModeState = ElevationMappingMode.LatestElevation; ElevationMappingModeState_Tracking = new SiteModelMachineTargetValueTrackingState <ElevationMappingMode>(MachineTargetValues, ProductionEventType.ElevationMappingModeStateChange); } if (populationControl.WantsEventICFlagsValues) { EventICFlag = 0; EventICFlag_Tracking = new SiteModelMachineTargetValueTrackingState <byte>(MachineTargetValues, ProductionEventType.ICFlagsChange); } if (populationControl.WantsEventMachineGearValues) { EventMachineGear = MachineGear.Null; EventMachineGear_Tracking = new SiteModelMachineTargetValueTrackingState <MachineGear>(MachineTargetValues, ProductionEventType.MachineGearChange); } if (populationControl.WantsEventMachineCompactionRMVJumpThreshold) { EventMachineRMVThreshold = CellPassConsts.NullRMV; EventMachineRMVThreshold_Tracking = new SiteModelMachineTargetValueTrackingState <short>(MachineTargetValues, ProductionEventType.MachineRMVJumpValueChange); } if (populationControl.WantsEventMachineAutomaticsValues) { EventMachineAutomatics = AutomaticsType.Unknown; EventMachineAutomatics_Tracking = new SiteModelMachineTargetValueTrackingState <AutomaticsType>(MachineTargetValues, ProductionEventType.MachineAutomaticsChange); } if (populationControl.WantsEventGPSAccuracyValues) { GPSAccuracyAndTolerance = new GPSAccuracyAndTolerance(GPSAccuracy.Unknown, CellPassConsts.NullGPSTolerance); GPSAccuracyState_Tracking = new SiteModelMachineTargetValueTrackingState <GPSAccuracyAndTolerance>(MachineTargetValues, ProductionEventType.GPSAccuracyChange); } if (populationControl.WantsEventPositioningTechValues) { PositioningTechState = PositioningTech.Unknown; PositioningTechState_Tracking = new SiteModelMachineTargetValueTrackingState <PositioningTech>(MachineTargetValues, ProductionEventType.PositioningTech); } if (populationControl.WantsTempWarningLevelMinValues) { TempWarningLevelMin = CellPassConsts.NullMaterialTemperatureValue; TempWarningLevelMin_Tracking = new SiteModelMachineTargetValueTrackingState <ushort>(MachineTargetValues, ProductionEventType.TempWarningLevelMinChange); } if (populationControl.WantsTempWarningLevelMaxValues) { TempWarningLevelMax = CellPassConsts.NullMaterialTemperatureValue; TempWarningLevelMax_Tracking = new SiteModelMachineTargetValueTrackingState <ushort>(MachineTargetValues, ProductionEventType.TempWarningLevelMaxChange); } if (populationControl.WantsLayerIDValues) { EventLayerID = CellPassConsts.NullLayerID; EventLayerID_Tracking = new SiteModelMachineTargetValueTrackingState <ushort>(MachineTargetValues, ProductionEventType.LayerID); } }
public void LoadMachine(string description) { description = MachineGear.RemoveString(description, Environment.NewLine); description = MachineGear.RemoveString(description, "{"); description = MachineGear.RemoveString(description, "\t"); List <String> refine = new List <string>(); foreach (String m in description.Split('}')) { if (m.Length > 1) { refine.Add(m); } } String[] allMachines = refine.ToArray(); foreach (String m in allMachines) { String[] desc = m.Split('#'); string machineName = desc[0]; Alphabet alph = new Alphabet(); string mDesc = desc[4]; foreach (char c in desc[1]) { alph.InsertSymbol(c); } int nStates = int.Parse(desc[2]); List <State> states = new List <State>(); desc[4] = MachineGear.ReplaceString(desc[4], "def", ":"); String[] rawDFunctions = desc[4].Split(':'); for (int i = 0; i < rawDFunctions.Length; i++) { rawDFunctions[i] = MachineGear.RemoveString(rawDFunctions[i], " "); } foreach (string dFuncString in rawDFunctions) { List <DeltaFunction> functions = new List <DeltaFunction>(); if (dFuncString.Length > 2) { if (dFuncString.Contains("void")) { states.Add(new State()); } else { string[] atomicFuncString = dFuncString.Split(';'); foreach (string function in atomicFuncString) { if (!function.Contains("void") && function.Length > 3) { string[] aChar = function.Split(','); List <char> fchar = new List <char>(); foreach (string s in aChar) { if (s.Length == 1) { fchar.Add(char.Parse(s)); } } DeltaFunction df = new DeltaFunction(fchar[0], fchar[1], fchar[2], int.Parse(fchar[3] + "")); functions.Add(df); } } states.Add(new State(functions)); } } } states[int.Parse(desc[2])].DefineIdentity(Constants.FINAL); states[int.Parse(desc[1])].DefineInitial(); } }