예제 #1
0
파일: Parser.cs 프로젝트: ngbrown/Mcs3Rob
 private static RobDependantAxis ReadRobDependantAxis(AstSeq dependantAxis)
 {
     return(new RobDependantAxis()
     {
         ElementType = (RobElementType)dependantAxis.ReadAsInt(0),
         ValueDirection = (RobDirection)dependantAxis.ReadAsInt(1),
         MinimumLimit = dependantAxis.ReadAsLong(2),
         MaximumLimit = dependantAxis.ReadAsLong(3),
         Reserve4 = dependantAxis.ReadAsInt(4),
         Reserve5 = dependantAxis.ReadAsInt(5),
         Description = dependantAxis.ReadAsText(6),
         PhysicalLabelAbbreviation = dependantAxis.ReadAsText(7),
         EngineeringUnit = dependantAxis.ReadAsText(8),
         ConversionEquation = dependantAxis.ReadAsText(9),
         DecimalPlaces = dependantAxis.ReadAsInt(10),
         Reserve11 = dependantAxis.ReadAsInt(11),
         Reserve12 = dependantAxis.ReadAsInt(12),
         Reserve13 = dependantAxis.ReadAsInt(13),
     });
 }
예제 #2
0
파일: Parser.cs 프로젝트: ngbrown/Mcs3Rob
        private static RobFileHeader ReadRobFileHeader(AstSeq astFileHeader)
        {
            var           robControlUnitType = (RobControlUnitType)astFileHeader.ReadAsInt(2);
            RobFileHeader robFileHeader;

            if (robControlUnitType.HasFlag(RobControlUnitType.CAN))
            {
                robFileHeader = new RobFileHeaderCan()
                {
                    EmulationModuleNumber = astFileHeader.ReadAsInt(0),
                    RomSize                    = astFileHeader.ReadAsInt(1),
                    ControlUnitType            = robControlUnitType,
                    CanBusFrequency            = astFileHeader.ReadAsInt(3),
                    CanEcuNodeId               = astFileHeader.ReadAsInt(4),
                    CanDefaultSamplingInterval = astFileHeader.ReadAsInt(5),
                    CanIdentifierDtoCcp        = astFileHeader.ReadAsInt(6),
                    CanIdentifierCroCcp        = astFileHeader.ReadAsInt(7),
                };
            }
            else if (robControlUnitType.HasFlag(RobControlUnitType.ABUS))
            {
                robFileHeader = new RobFileHeaderAnio()
                {
                    EmulationModuleNumber = astFileHeader.ReadAsInt(0),
                    RomSize                 = astFileHeader.ReadAsInt(1),
                    ControlUnitType         = robControlUnitType,
                    AnioSignalAveragingTime = astFileHeader.ReadAsInt(3),
                    AnioReserved4           = astFileHeader.ReadAsInt(4),
                    AnioScanRate            = astFileHeader.ReadAsInt(5),
                    AnioReserved6           = astFileHeader.ReadAsInt(6),
                    AnioReserved7           = astFileHeader.ReadAsInt(7),
                };
            }
            else
            {
                robFileHeader = new RobFileHeaderRom()
                {
                    EmulationModuleNumber = astFileHeader.ReadAsInt(0),
                    RomSize                  = astFileHeader.ReadAsInt(1),
                    ControlUnitType          = robControlUnitType,
                    RomCycleTriggerAddress   = astFileHeader.ReadAsInt(3),
                    RomReserved4             = astFileHeader.ReadAsInt(4),
                    RomBusMonitoringTimeGate = astFileHeader.ReadAsInt(5),
                    RomReserved6             = astFileHeader.ReadAsInt(6),
                    RomRamOffset             = astFileHeader.ReadAsUInt(7),
                };
            }
            return(robFileHeader);
        }