Exemplo n.º 1
0
        /// <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}
            //}
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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}
            //}
        }
Exemplo n.º 4
0
 /// <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();
 }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        /// <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;
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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());
        }
Exemplo n.º 9
0
 public static bool Equals(MachineGear x, MachineGear y) => x == y;
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
0
    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();
        }
    }