From edaa28a0f8e07c0c3ac0cf126f7b82ae82ea2a47 Mon Sep 17 00:00:00 2001 From: EJ Dohmen <ezekiel.dohmen@ligo.org> Date: Mon, 24 Jul 2023 15:45:04 -0700 Subject: [PATCH] Adding unwrap phase --- src/epics/simLink/CDS_PARTS.mdl | 38 +- src/epics/simLink/lib/cdsUnwrapPhase.mdl | 1166 +++++++++++++++++ src/epics/util/lib/UnwrapPhase.pm | 82 ++ src/include/fe.h | 2 +- .../util/{phaseUnwrap.h => unwrapPhase.h} | 6 +- src/librts/models/x1unittest.mdl | 214 ++- 6 files changed, 1481 insertions(+), 27 deletions(-) create mode 100644 src/epics/simLink/lib/cdsUnwrapPhase.mdl create mode 100644 src/epics/util/lib/UnwrapPhase.pm rename src/include/util/{phaseUnwrap.h => unwrapPhase.h} (92%) diff --git a/src/epics/simLink/CDS_PARTS.mdl b/src/epics/simLink/CDS_PARTS.mdl index d57e97c47..6ad755021 100644 --- a/src/epics/simLink/CDS_PARTS.mdl +++ b/src/epics/simLink/CDS_PARTS.mdl @@ -51,7 +51,7 @@ Library { LoadSaveID "0" Extents [1631.0, 906.0] ZoomFactor [1.25] - Offset [-333.0, -144.89999999999998] + Offset [-324.73333333333335, -131.29999999999984] } Object { $PropName "DockComponentsInfo" @@ -86,9 +86,9 @@ Library { ModifiedByFormat "%<Auto>" LastModifiedBy "ezekiel.dohmen" ModifiedDateFormat "%<Auto>" - LastModifiedDate "Mon Jul 24 10:19:57 2023" - RTWModifiedTimeStamp 612094783 - ModelVersionFormat "1.%<AutoIncrement:412>" + LastModifiedDate "Mon Jul 24 13:31:46 2023" + RTWModifiedTimeStamp 612106254 + ModelVersionFormat "1.%<AutoIncrement:414>" SampleTimeColors off SampleTimeAnnotations off LibraryLinkDisplay "all" @@ -1251,7 +1251,7 @@ Library { ShowPageBoundaries off ZoomFactor "125" ReportName "simulink-default.rpt" - SIDHighWatermark "396" + SIDHighWatermark "399" SimulinkSubDomain "Simulink" Block { BlockType SubSystem @@ -3630,7 +3630,7 @@ Library { RequestExecContextInheritance off System { Name "EpicsParts" - Location [729, 64, 1765, 941] + Location [3840, 0, 5760, 1080] Open off PortBlocksUseCompactNotation off SetExecutionDomain off @@ -5325,7 +5325,7 @@ Library { RequestExecContextInheritance off System { Name "Osc/Phase" - Location [2078, 203, 3114, 1080] + Location [3840, 0, 5760, 1080] Open off PortBlocksUseCompactNotation off SetExecutionDomain off @@ -5709,6 +5709,28 @@ Library { PropagateVariantConditions off ContentPreviewEnabled off } + Block { + BlockType Reference + Name "phaseUnwrap_0" + SID "399" + Tag "cdsUnwrapPhase" + Ports [2, 1] + Position [370, 72, 465, 123] + ZOrder 18 + BackgroundColor "lightBlue" + DropShadow on + AttributesFormatString "%<Tag>" + LibraryVersion "1.10" + FontName "Liberation Sans" + SourceBlock "cdsUnwrapPhase/phaseUnwrap_0" + SourceType "" + ShowPortLabels "FromPortIcon" + SystemSampleTime "-1" + GeneratePreprocessorConditionals off + AllowZeroVariantControls off + PropagateVariantConditions off + ContentPreviewEnabled off + } Line { ZOrder 1 SrcBlock "Ground" @@ -6272,7 +6294,7 @@ Library { TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off - ZoomFactor "125" + ZoomFactor "60" SimulinkSubDomain "Simulink" Block { BlockType Abs diff --git a/src/epics/simLink/lib/cdsUnwrapPhase.mdl b/src/epics/simLink/lib/cdsUnwrapPhase.mdl new file mode 100644 index 000000000..849cccbf3 --- /dev/null +++ b/src/epics/simLink/lib/cdsUnwrapPhase.mdl @@ -0,0 +1,1166 @@ +Library { + Name "cdsUnwrapPhase" + Version 9.3 + SavedCharacterEncoding "UTF-8" + LogicAnalyzerPlugin "on" + WebScopes_FoundationPlugin "on" + DiagnosticSuppressor "on" + SLCCPlugin "on" + NotesPlugin "on" + LibraryType "BlockLibrary" + EnableAccessToBaseWorkspace on + ScopeRefreshTime 0.035000 + OverrideScopeRefreshTime on + DisableAllScopes off + FPTRunName "Run 1" + MaxMDLFileLineLength 120 + LastSavedArchitecture "glnxa64" + Object { + $PropName "BdWindowsInfo" + $ObjectID 1 + $ClassName "Simulink.BDWindowsInfo" + Object { + $PropName "WindowsInfo" + $ObjectID 2 + $ClassName "Simulink.WindowInfo" + IsActive [1] + Location [2624.0, 199.0, 785.0, 623.0] + Object { + $PropName "ModelBrowserInfo" + $ObjectID 3 + $ClassName "Simulink.ModelBrowserInfo" + Visible [0] + DockPosition "Left" + Width [50] + Height [50] + Filter [9] + Minimized "Unset" + } + Object { + $PropName "ExplorerBarInfo" + $ObjectID 4 + $ClassName "Simulink.ExplorerBarInfo" + Visible [1] + } + Object { + $PropName "EditorsInfo" + $ObjectID 5 + $ClassName "Simulink.EditorInfo" + IsActive [1] + ViewObjType "SimulinkTopLevel" + LoadSaveID "0" + Extents [747.0, 449.0] + ZoomFactor [1.0] + Offset [-176.30908147957189, -75.2547619047615] + } + Object { + $PropName "DockComponentsInfo" + $ObjectID 6 + $ClassName "Simulink.DockComponentInfo" + Type "GLUE2:PropertyInspector" + ID "Property Inspector" + Visible [0] + CreateCallback "" + UserData "" + Floating [0] + DockPosition "Right" + Width [640] + Height [480] + Minimized "Unset" + } + WindowState "AAAA/wAAAAD9AAAAAgAAAAAAAAC9AAAB+PwCAAAAA/sAAAAWAEQAbwBjAGsAVwBpAGQAZwBlAHQAMwEAAAAxAAAB+AAAA" + "AAAAAAA+wAAABYARABvAGMAawBXAGkAZABnAGUAdAA0AAAAAAD/////AAAAAAAAAAD7AAAAUgBHAEwAVQBFADIAIAB0AHIAZQBlACAAYwBvAG0Ac" + "ABvAG4AZQBuAHQALwBHAEwAVQBFADIAIAB0AHIAZQBlACAAYwBvAG0AcABvAG4AZQBuAHQAAAAAAP////8AAABiAP///wAAAAEAAAAAAAAAAPwCA" + "AAAAfsAAABUAEcATABVAEUAMgA6AFAAcgBvAHAAZQByAHQAeQBJAG4AcwBwAGUAYwB0AG8AcgAvAFAAcgBvAHAAZQByAHQAeQAgAEkAbgBzAHAAZ" + "QBjAHQAbwByAAAAAAD/////AAABrAD///8AAAMRAAAB+wAAAAEAAAACAAAAAQAAAAL8AAAAAQAAAAIAAAAP/////wAAAAAA/////wAAAAAAAAAA/" + "////wEAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/" + "////wEAAACA/////wAAAAAAAAAA/////wEAAADo/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/" + "////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA/////wEAAAE7/////wAAAAAAAAAA/" + "////wAAAAAA/////wAAAAAAAAAA/////wAAAAAA/////wAAAAAAAAAA" + } + } + HideAutomaticNames on + Created "Mon Jul 17 15:03:57 2006" + Creator "rolfbork" + UpdateHistory "UpdateHistoryNever" + ModifiedByFormat "%<Auto>" + LastModifiedBy "ezekiel.dohmen" + ModifiedDateFormat "%<Auto>" + LastModifiedDate "Mon Jul 24 13:31:32 2023" + RTWModifiedTimeStamp 612106243 + ModelVersionFormat "1.%<AutoIncrement:10>" + SampleTimeColors off + SampleTimeAnnotations off + LibraryLinkDisplay "none" + WideLines off + ShowLineDimensions off + ShowPortDataTypes off + ShowAllPropagatedSignalLabels off + PortDataTypeDisplayFormat "AliasTypeOnly" + ShowEditTimeErrors on + ShowEditTimeWarnings on + ShowEditTimeAdvisorChecks off + ShowPortUnits off + ShowDesignRanges off + ShowLoopsOnError on + IgnoreBidirectionalLines off + ShowStorageClass off + ShowTestPointIcons on + ShowSignalResolutionIcons on + ShowViewerIcons on + SortedOrder off + VariantCondition off + ShowSubsystemDomainSpec off + ExecutionContextIcon off + ShowLinearizationAnnotations on + ShowVisualizeInsertedRTB on + ShowMarkup on + BlockNameDataTip off + BlockParametersDataTip off + BlockDescriptionStringDataTip off + BlockVariantConditionDataTip off + ToolBar on + StatusBar on + BrowserShowLibraryLinks off + FunctionConnectors off + BrowserLookUnderMasks off + MultiThreadCoSim on + SimulationMode "normal" + PauseTimes "5" + NumberOfSteps 1 + SnapshotBufferSize 10 + SnapshotInterval 10 + NumberOfLastSnapshots 0 + LinearizationMsg "none" + Profile off + ParamWorkspaceSource "MATLABWorkspace" + ExtModeBatchMode off + ExtModeEnableFloating on + ExtModeTrigType "manual" + ExtModeTrigMode "normal" + ExtModeTrigPort "1" + ExtModeTrigElement "any" + ExtModeTrigDuration 1000 + ExtModeTrigDurationFloating "auto" + ExtModeTrigHoldOff 0 + ExtModeTrigDelay 0 + ExtModeTrigDirection "rising" + ExtModeTrigLevel 0 + ExtModeArchiveMode "off" + ExtModeAutoIncOneShot off + ExtModeIncDirWhenArm off + ExtModeAddSuffixToVar off + ExtModeWriteAllDataToWs off + ExtModeArmWhenConnect on + ExtModeSkipDownloadWhenConnect off + ExtModeLogAll on + ExtModeAutoUpdateStatusClock on + ShowModelReferenceBlockVersion off + ShowModelReferenceBlockIO off + OrderedModelArguments on + Array { + Type "Handle" + Dimension 1 + Simulink.ConfigSet { + $ObjectID 7 + Version "19.0.0" + DisabledProps [] + Description "" + Array { + Type "Handle" + Dimension 9 + Simulink.SolverCC { + $ObjectID 8 + Version "19.0.0" + DisabledProps [] + Description "" + Components [] + StartTime "0.0" + StopTime "10.0" + AbsTol "auto" + AutoScaleAbsTol on + FixedStep "auto" + InitialStep "auto" + MaxOrder 5 + ZcThreshold "auto" + ConsecutiveZCsStepRelTol "10*128*eps" + MaxConsecutiveZCs "1000" + ExtrapolationOrder 4 + NumberNewtonIterations 1 + MaxStep "auto" + MinStep "auto" + MaxConsecutiveMinStep "1" + RelTol "1e-3" + EnableMultiTasking off + ConcurrentTasks off + Solver "ode45" + SolverName "ode45" + SolverJacobianMethodControl "auto" + ShapePreserveControl "DisableAll" + ZeroCrossControl "UseLocalSettings" + ZeroCrossAlgorithm "Nonadaptive" + AlgebraicLoopSolver "TrustRegion" + SolverInfoToggleStatus off + IsAutoAppliedInSIP off + SolverResetMethod "Fast" + PositivePriorityOrder off + AutoInsertRateTranBlk off + SampleTimeConstraint "Unconstrained" + InsertRTBMode "Whenever possible" + SampleTimeProperty [] + DecoupledContinuousIntegration off + MinimalZcImpactIntegration off + SolverOrder 3 + } + Simulink.DataIOCC { + $ObjectID 9 + Version "19.0.0" + DisabledProps [] + Description "" + Components [] + Decimation "1" + ExternalInput "[t, u]" + FinalStateName "xFinal" + InitialState "xInitial" + LimitDataPoints on + MaxDataPoints "1000" + LoadExternalInput off + LoadInitialState off + SaveFinalState off + SaveOperatingPoint off + SaveFormat "Array" + SignalLoggingSaveFormat "ModelDataLogs" + SaveOutput on + SaveState off + SignalLogging on + DSMLogging on + InspectSignalLogs off + VisualizeSimOutput on + StreamToWorkspace off + StreamVariableName "streamout" + SaveTime on + ReturnWorkspaceOutputs off + StateSaveName "xout" + TimeSaveName "tout" + OutputSaveName "yout" + SignalLoggingName "logsout" + DSMLoggingName "dsmout" + OutputOption "RefineOutputTimes" + OutputTimes "[]" + ReturnWorkspaceOutputsName "out" + Refine "1" + LoggingToFile off + DatasetSignalFormat "timeseries" + LoggingFileName "out.mat" + LoggingIntervals "[-inf, inf]" + } + Simulink.OptimizationCC { + $ObjectID 10 + Version "19.0.0" + Array { + Type "Cell" + Dimension 8 + Cell "BooleansAsBitfields" + Cell "PassReuseOutputArgsAs" + Cell "PassReuseOutputArgsThreshold" + Cell "ZeroExternalMemoryAtStartup" + Cell "ZeroInternalMemoryAtStartup" + Cell "OptimizeModelRefInitCode" + Cell "NoFixptDivByZeroProtection" + Cell "UseSpecifiedMinMax" + PropName "DisabledProps" + } + Description "" + Components [] + BlockReduction off + BooleanDataType off + ConditionallyExecuteInputs on + DefaultParameterBehavior "Tunable" + UseDivisionForNetSlopeComputation "off" + GainParamInheritBuiltInType off + UseFloatMulNetSlope off + DefaultUnderspecifiedDataType "double" + UseSpecifiedMinMax off + InlineInvariantSignals off + OptimizeBlockIOStorage on + BufferReuse on + EnhancedBackFolding off + CachingGlobalReferences off + GlobalBufferReuse on + StrengthReduction off + AdvancedOptControl "" + ExpressionFolding on + BooleansAsBitfields off + BitfieldContainerType "uint_T" + EnableMemcpy on + MemcpyThreshold 64 + PassReuseOutputArgsAs "Structure reference" + PassReuseOutputArgsThreshold 12 + ExpressionDepthLimit 2147483647 + LocalBlockOutputs on + RollThreshold 5 + StateBitsets off + DataBitsets off + ActiveStateOutputEnumStorageType "Native Integer" + ZeroExternalMemoryAtStartup on + ZeroInternalMemoryAtStartup on + InitFltsAndDblsToZero off + NoFixptDivByZeroProtection off + EfficientFloat2IntCast off + EfficientMapNaN2IntZero on + LifeSpan "inf" + MaxStackSize "Inherit from target" + BufferReusableBoundary on + SimCompilerOptimization "off" + AccelVerboseBuild off + OptimizeBlockOrder "off" + OptimizeDataStoreBuffers on + BusAssignmentInplaceUpdate on + DifferentSizesBufferReuse off + OptimizationLevel "level2" + OptimizationPriority "Balanced" + OptimizationCustomize on + UseRowMajorAlgorithm off + LabelGuidedReuse off + MultiThreadedLoops off + DenormalBehavior "GradualUnderflow" + } + Simulink.DebuggingCC { + $ObjectID 11 + Version "19.0.0" + Array { + Type "Cell" + Dimension 1 + Cell "UseOnlyExistingSharedCode" + PropName "DisabledProps" + } + Description "" + Components [] + RTPrefix "error" + ConsistencyChecking "none" + ArrayBoundsChecking "none" + SignalInfNanChecking "none" + StringTruncationChecking "error" + SignalRangeChecking "none" + ReadBeforeWriteMsg "UseLocalSettings" + WriteAfterWriteMsg "UseLocalSettings" + WriteAfterReadMsg "UseLocalSettings" + AlgebraicLoopMsg "warning" + ArtificialAlgebraicLoopMsg "warning" + SaveWithDisabledLinksMsg "warning" + SaveWithParameterizedLinksMsg "none" + CheckSSInitialOutputMsg on + UnderspecifiedInitializationDetection "Classic" + MergeDetectMultiDrivingBlocksExec "none" + CheckExecutionContextPreStartOutputMsg off + CheckExecutionContextRuntimeOutputMsg off + SignalResolutionControl "TryResolveAllWithWarning" + BlockPriorityViolationMsg "warning" + MinStepSizeMsg "warning" + TimeAdjustmentMsg "none" + MaxConsecutiveZCsMsg "error" + MaskedZcDiagnostic "warning" + IgnoredZcDiagnostic "warning" + SolverPrmCheckMsg "none" + InheritedTsInSrcMsg "warning" + MultiTaskDSMMsg "error" + MultiTaskCondExecSysMsg "none" + MultiTaskRateTransMsg "error" + SingleTaskRateTransMsg "none" + TasksWithSamePriorityMsg "warning" + ExportedTasksRateTransMsg "none" + SigSpecEnsureSampleTimeMsg "warning" + CheckMatrixSingularityMsg "none" + IntegerOverflowMsg "warning" + Int32ToFloatConvMsg "warning" + ParameterDowncastMsg "error" + ParameterOverflowMsg "error" + ParameterUnderflowMsg "none" + ParameterPrecisionLossMsg "warning" + ParameterTunabilityLossMsg "warning" + FixptConstUnderflowMsg "none" + FixptConstOverflowMsg "none" + FixptConstPrecisionLossMsg "none" + UnderSpecifiedDataTypeMsg "none" + UnnecessaryDatatypeConvMsg "none" + VectorMatrixConversionMsg "none" + InvalidFcnCallConnMsg "error" + FcnCallInpInsideContextMsg "error" + SignalLabelMismatchMsg "none" + UnconnectedInputMsg "warning" + UnconnectedOutputMsg "warning" + UnconnectedLineMsg "warning" + UseOnlyExistingSharedCode "error" + SFcnCompatibilityMsg "none" + FrameProcessingCompatibilityMsg "error" + UniqueDataStoreMsg "none" + BusObjectLabelMismatch "warning" + RootOutportRequireBusObject "warning" + AssertControl "UseLocalSettings" + AllowSymbolicDim off + RowMajorDimensionSupport off + ModelReferenceIOMsg "none" + ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" + ModelReferenceVersionMismatchMessage "none" + ModelReferenceIOMismatchMessage "none" + UnknownTsInhSupMsg "warning" + ModelReferenceDataLoggingMessage "warning" + ModelReferenceSymbolNameMessage "warning" + ModelReferenceExtraNoncontSigs "error" + StateNameClashWarn "warning" + OperatingPointInterfaceChecksumMismatchMsg "warning" + NonCurrentReleaseOperatingPointMsg "error" + ChecksumConsistencyForSSReuse "none" + PregeneratedLibrarySubsystemCodeDiagnostic "warning" + MatchCodeGenerationContextForUpdateDiagram "none" + InitInArrayFormatMsg "warning" + StrictBusMsg "ErrorLevel1" + BusNameAdapt "WarnAndRepair" + NonBusSignalsTreatedAsBus "none" + SymbolicDimMinMaxWarning "warning" + LossOfSymbolicDimsSimulationWarning "warning" + LossOfSymbolicDimsCodeGenerationWarning "error" + SymbolicDimsDataTypeCodeGenerationDiagnostic "error" + BlockIODiagnostic "none" + SFUnusedDataAndEventsDiag "warning" + SFUnexpectedBacktrackingDiag "warning" + SFInvalidInputDataAccessInChartInitDiag "warning" + SFNoUnconditionalDefaultTransitionDiag "warning" + SFTransitionOutsideNaturalParentDiag "warning" + SFUnreachableExecutionPathDiag "warning" + SFUndirectedBroadcastEventsDiag "warning" + SFTransitionActionBeforeConditionDiag "warning" + SFOutputUsedAsStateInMooreChartDiag "error" + SFTemporalDelaySmallerThanSampleTimeDiag "warning" + SFSelfTransitionDiag "warning" + SFExecutionAtInitializationDiag "none" + SFMachineParentedDataDiag "warning" + IntegerSaturationMsg "warning" + AllowedUnitSystems "all" + UnitsInconsistencyMsg "warning" + AllowAutomaticUnitConversions on + RCSCRenamedMsg "warning" + RCSCObservableMsg "warning" + ForceCombineOutputUpdateInSim off + UnitDatabase "" + UnderSpecifiedDimensionMsg "none" + DebugExecutionForFMUViaOutOfProcess off + ArithmeticOperatorsInVariantConditions "warning" + } + Simulink.HardwareCC { + $ObjectID 12 + Version "19.0.0" + DisabledProps [] + Description "" + Components [] + ProdBitPerChar 8 + ProdBitPerShort 16 + ProdBitPerInt 32 + ProdBitPerLong 32 + ProdBitPerLongLong 64 + ProdBitPerFloat 32 + ProdBitPerDouble 64 + ProdBitPerPointer 32 + ProdBitPerSizeT 32 + ProdBitPerPtrDiffT 32 + ProdLargestAtomicInteger "Char" + ProdLargestAtomicFloat "None" + ProdIntDivRoundTo "Undefined" + ProdEndianess "Unspecified" + ProdWordSize 32 + ProdShiftRightIntArith on + ProdLongLongMode off + ProdHWDeviceType "32-bit Generic" + TargetBitPerChar 8 + TargetBitPerShort 16 + TargetBitPerInt 32 + TargetBitPerLong 32 + TargetBitPerLongLong 64 + TargetBitPerFloat 32 + TargetBitPerDouble 64 + TargetBitPerPointer 32 + TargetBitPerSizeT 32 + TargetBitPerPtrDiffT 32 + TargetLargestAtomicInteger "Char" + TargetLargestAtomicFloat "None" + TargetShiftRightIntArith on + TargetLongLongMode off + TargetIntDivRoundTo "Undefined" + TargetEndianess "Unspecified" + TargetWordSize 32 + TargetPreprocMaxBitsSint 32 + TargetPreprocMaxBitsUint 32 + TargetHWDeviceType "Specified" + TargetUnknown on + ProdEqTarget on + UseEmbeddedCoderFeatures on + UseSimulinkCoderFeatures on + HardwareBoardFeatureSet "EmbeddedCoderHSP" + } + Simulink.ModelReferenceCC { + $ObjectID 13 + Version "19.0.0" + DisabledProps [] + Description "" + Components [] + UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" + EnableRefExpFcnMdlSchedulingChecks on + CheckModelReferenceTargetMessage "error" + EnableParallelModelReferenceBuilds off + ParallelModelReferenceErrorOnInvalidPool on + ParallelModelReferenceMATLABWorkerInit "None" + ModelReferenceNumInstancesAllowed "Multi" + PropagateVarSize "Infer from blocks in model" + ModelDependencies "" + ModelReferencePassRootInputsByReference on + ModelReferenceMinAlgLoopOccurrences off + PropagateSignalLabelsOutOfModel off + SupportModelReferenceSimTargetCustomCode off + } + Simulink.SFSimCC { + $ObjectID 14 + Version "19.0.0" + DisabledProps [] + Description "" + Components [] + SimCustomSourceCode "" + SimCustomHeaderCode "" + SimCustomInitializer "" + SimCustomTerminator "" + SimReservedNameArray [] + SimUserSources "" + SimUserIncludeDirs "" + SimUserLibraries "" + SimUserDefines "" + SimCustomCompilerFlags "" + SimCustomLinkerFlags "" + SFSimEcho on + SimCtrlC on + SimIntegrity on + SimUseLocalCustomCode off + SimParseCustomCode on + SimAnalyzeCustomCode off + SimBuildMode "sf_incremental_build" + SimGenImportedTypeDefs off + ModelFunctionsGlobalVisibility "on" + CompileTimeRecursionLimit 50 + EnableRuntimeRecursion on + MATLABDynamicMemAlloc on + MATLABDynamicMemAllocThreshold 65536 + CustomCodeFunctionArrayLayout [] + DefaultCustomCodeFunctionArrayLayout "NotSpecified" + } + Simulink.RTWCC { + $BackupClass "Simulink.RTWCC" + $ObjectID 15 + Version "19.0.0" + Array { + Type "Cell" + Dimension 16 + Cell "IncludeHyperlinkInReport" + Cell "GenerateTraceInfo" + Cell "GenerateTraceReport" + Cell "GenerateTraceReportSl" + Cell "GenerateTraceReportSf" + Cell "GenerateTraceReportEml" + Cell "PortableWordSizes" + Cell "GenerateWebview" + Cell "GenerateCodeMetricsReport" + Cell "GenerateCodeReplacementReport" + Cell "GenerateErtSFunction" + Cell "CreateSILPILBlock" + Cell "CodeExecutionProfiling" + Cell "CodeProfilingSaveOptions" + Cell "CodeProfilingInstrumentation" + Cell "GenerateMissedCodeReplacementReport" + PropName "DisabledProps" + } + SystemTargetFile "grt.tlc" + HardwareBoard "None" + ShowCustomHardwareApp off + ShowEmbeddedHardwareApp off + TLCOptions "" + GenCodeOnly off + MakeCommand "make_rtw" + GenerateMakefile on + PackageGeneratedCodeAndArtifacts off + PackageName "" + TemplateMakefile "grt_default_tmf" + PostCodeGenCommand "" + Description "" + GenerateReport off + RTWVerbose on + RetainRTWFile off + RTWBuildHooks [] + ProfileTLC off + TLCDebug off + TLCCoverage off + TLCAssert off + RTWUseLocalCustomCode off + RTWUseSimCustomCode off + CustomSourceCode "" + CustomHeaderCode "" + CustomInclude "" + CustomSource "" + CustomLibrary "" + CustomDefine "" + CustomBLASCallback "" + CustomLAPACKCallback "" + CustomFFTCallback "" + CustomInitializer "" + CustomTerminator "" + Toolchain "Automatically locate an installed toolchain" + BuildConfiguration "Faster Builds" + CustomToolchainOptions [] + IncludeHyperlinkInReport off + LaunchReport off + PortableWordSizes off + CreateSILPILBlock "None" + CodeExecutionProfiling off + CodeExecutionProfileVariable "executionProfile" + CodeProfilingSaveOptions "SummaryOnly" + CodeProfilingInstrumentation "off" + SILDebugging off + TargetLang "C" + IncludeBusHierarchyInRTWFileBlockHierarchyMap off + GenerateTraceInfo off + GenerateTraceReport off + GenerateTraceReportSl off + GenerateTraceReportSf off + GenerateTraceReportEml off + GenerateWebview off + GenerateCodeMetricsReport off + GenerateCodeReplacementReport off + GenerateMissedCodeReplacementReport off + RTWCompilerOptimization "off" + ObjectivePriorities [] + RTWCustomCompilerOptimizations "" + CheckMdlBeforeBuild "Off" + SharedConstantsCachingThreshold 1024 + Array { + Type "Handle" + Dimension 2 + Simulink.CodeAppCC { + $ObjectID 16 + Version "19.0.0" + Array { + Type "Cell" + Dimension 28 + Cell "IgnoreCustomStorageClasses" + Cell "IgnoreTestpoints" + Cell "InsertBlockDesc" + Cell "InsertPolySpaceComments" + Cell "SFDataObjDesc" + Cell "MATLABFcnDesc" + Cell "SimulinkDataObjDesc" + Cell "DefineNamingRule" + Cell "SignalNamingRule" + Cell "ParamNamingRule" + Cell "InternalIdentifier" + Cell "InlinedPrmAccess" + Cell "CustomSymbolStr" + Cell "CustomSymbolStrGlobalVar" + Cell "CustomSymbolStrType" + Cell "CustomSymbolStrField" + Cell "CustomSymbolStrFcn" + Cell "CustomSymbolStrFcnArg" + Cell "CustomSymbolStrBlkIO" + Cell "CustomSymbolStrTmpVar" + Cell "CustomSymbolStrMacro" + Cell "ReqsInCode" + Cell "BlockCommentType" + Cell "CustomSymbolStrModelFcn" + Cell "CustomSymbolStrUtil" + Cell "CustomSymbolStrEmxType" + Cell "CustomSymbolStrEmxFcn" + Cell "CustomUserTokenString" + PropName "DisabledProps" + } + Description "" + Components [] + Comment "" + ForceParamTrailComments off + GenerateComments on + CommentStyle "Auto" + IgnoreCustomStorageClasses on + IgnoreTestpoints off + MaxIdLength 31 + PreserveName off + PreserveNameWithParent off + ShowEliminatedStatement off + OperatorAnnotations off + SimulinkDataObjDesc off + SFDataObjDesc off + MATLABFcnDesc off + MangleLength 1 + SharedChecksumLength 8 + CustomSymbolStrGlobalVar "$R$N$M" + CustomSymbolStrType "$N$R$M_T" + CustomSymbolStrField "$N$M" + CustomSymbolStrFcn "$R$N$M$F" + CustomSymbolStrModelFcn "$R$N" + CustomSymbolStrFcnArg "rt$I$N$M" + CustomSymbolStrBlkIO "rtb_$N$M" + CustomSymbolStrTmpVar "$N$M" + CustomSymbolStrMacro "$R$N$M" + CustomSymbolStrUtil "$N$C" + CustomSymbolStrEmxType "emxArray_$M$N" + CustomSymbolStrEmxFcn "emx$M$N" + CustomUserTokenString "" + CustomCommentsFcn "" + DefineNamingRule "None" + DefineNamingFcn "" + ParamNamingRule "None" + ParamNamingFcn "" + SignalNamingRule "None" + SignalNamingFcn "" + InsertBlockDesc off + InsertPolySpaceComments off + SimulinkBlockComments on + BlockCommentType "BlockPathComment" + StateflowObjectComments on + MATLABSourceComments off + EnableCustomComments off + InternalIdentifierFile "" + InternalIdentifier "Shortened" + InlinedPrmAccess "Literals" + ReqsInCode off + UseSimReservedNames off + ReservedNameArray [] + } + Simulink.GRTTargetCC { + $BackupClass "Simulink.TargetCC" + $ObjectID 17 + Version "19.0.0" + Array { + Type "Cell" + Dimension 18 + Cell "GeneratePreprocessorConditionals" + Cell "IncludeMdlTerminateFcn" + Cell "GenerateAllocFcn" + Cell "SuppressErrorStatus" + Cell "ERTCustomFileBanners" + Cell "GenerateSampleERTMain" + Cell "GenerateTestInterfaces" + Cell "ModelStepFunctionPrototypeControlCompliant" + Cell "CPPClassGenCompliant" + Cell "SupportNonInlinedSFcns" + Cell "PurelyIntegerCode" + Cell "SupportComplex" + Cell "SupportAbsoluteTime" + Cell "SupportContinuousTime" + Cell "ExistingSharedCode" + Cell "RemoveDisableFunc" + Cell "RemoveResetFunc" + Cell "PreserveStateflowLocalDataDimensions" + PropName "DisabledProps" + } + Description "" + Components [] + TargetFcnLib "ansi_tfl_table_tmw.mat" + TargetLibSuffix "" + TargetPreCompLibLocation "" + GenFloatMathFcnCalls "NOT IN USE" + TargetLangStandard "C89/C90 (ANSI)" + CodeReplacementLibrary "None" + UtilityFuncGeneration "Auto" + MultiwordTypeDef "System defined" + MultiwordLength 2048 + DynamicStringBufferSize 256 + GenerateFullHeader on + InferredTypesCompatibility off + ExistingSharedCode "" + GenerateSampleERTMain off + GenerateTestInterfaces off + ModelReferenceCompliant on + ParMdlRefBuildCompliant on + CompOptLevelCompliant on + ConcurrentExecutionCompliant on + IncludeMdlTerminateFcn on + GeneratePreprocessorConditionals "Disable all" + CombineOutputUpdateFcns on + CombineSignalStateStructs off + GroupInternalDataByFunction off + SuppressErrorStatus off + IncludeFileDelimiter "Auto" + ERTCustomFileBanners off + SupportAbsoluteTime on + LogVarNameModifier "rt_" + MatFileLogging on + MultiInstanceERTCode off + CodeInterfacePackaging "Nonreusable function" + PurelyIntegerCode off + SupportNonFinite on + SupportComplex on + SupportContinuousTime on + SupportNonInlinedSFcns on + RemoveDisableFunc off + RemoveResetFunc off + SupportVariableSizeSignals off + ParenthesesLevel "Nominal" + CastingMode "Nominal" + PreserveStateflowLocalDataDimensions off + MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" + ModelStepFunctionPrototypeControlCompliant off + CPPClassGenCompliant on + AutosarCompliant off + MDXCompliant off + GRTInterface off + GenerateAllocFcn off + UseToolchainInfoCompliant on + GenerateSharedConstants on + CoderGroups [] + AccessMethods [] + LookupTableObjectStructAxisOrder "1,2,3,4,..." + LUTObjectStructOrderExplicitValues "Size,Breakpoints,Table" + LUTObjectStructOrderEvenSpacing "Size,Breakpoints,Table" + ArrayLayout "Column-major" + UnsupportedSFcnMsg "error" + ERTHeaderFileRootName "$R$E" + ERTSourceFileRootName "$R$E" + ERTDataFileRootName "$R_data" + UseMalloc off + ExtMode off + ExtModeStaticAlloc off + ExtModeTesting off + ExtModeStaticAllocSize 1000000 + ExtModeTransport 0 + ExtModeMexFile "ext_comm" + ExtModeMexArgs "" + ExtModeIntrfLevel "Level1" + RTWCAPISignals off + RTWCAPIParams off + RTWCAPIStates off + RTWCAPIRootIO off + GenerateASAP2 off + MultiInstanceErrorCode "Error" + } + PropName "Components" + } + } + SlCovCC.ConfigComp { + $ObjectID 18 + Version "19.0.0" + DisabledProps [] + Description "Simulink Coverage Configuration Component" + Components [] + Name "Simulink Coverage" + CovEnable off + CovScope "EntireSystem" + CovIncludeTopModel on + RecordCoverage off + CovPath "/" + CovSaveName "covdata" + CovCompData "" + CovMetricSettings "dw" + CovFilter "" + CovHTMLOptions "" + CovNameIncrementing off + CovHtmlReporting on + CovForceBlockReductionOff on + CovEnableCumulative on + CovSaveCumulativeToWorkspaceVar on + CovSaveSingleToWorkspaceVar on + CovCumulativeVarName "covCumulativeData" + CovCumulativeReport off + CovSaveOutputData on + CovOutputDir "slcov_output/$ModelName$" + CovDataFileName "$ModelName$_cvdata" + CovShowResultsExplorer on + CovReportOnPause on + CovModelRefEnable "off" + CovModelRefExcluded "" + CovExternalEMLEnable off + CovSFcnEnable on + CovBoundaryAbsTol 1e-05 + CovBoundaryRelTol 0.01 + CovUseTimeInterval off + CovStartTime 0 + CovStopTime 0 + CovMcdcMode "Masking" + } + PropName "Components" + } + Name "Configuration" + CurrentDlgPage "Solver" + ConfigPrmDlgPosition [ 840, 405, 1720, 1035 ] + ExtraOptions "" + } + PropName "ConfigurationSets" + } + ExplicitPartitioning off + BlockDefaults { + ForegroundColor "black" + BackgroundColor "white" + DropShadow off + NamePlacement "normal" + FontName "Helvetica" + FontSize 10 + FontWeight "normal" + FontAngle "normal" + ShowName on + HideAutomaticName on + BlockRotation 0 + BlockMirror off + } + AnnotationDefaults { + HorizontalAlignment "center" + VerticalAlignment "middle" + ForegroundColor "black" + BackgroundColor "white" + DropShadow off + FontName "Helvetica" + FontSize 10 + FontWeight "normal" + FontAngle "normal" + MarkupType "model" + UseDisplayTextAsClickCallback off + AnnotationType "note_annotation" + FixedHeight off + FixedWidth off + Interpreter "off" + } + LineDefaults { + FontName "Helvetica" + FontSize 9 + FontWeight "normal" + FontAngle "normal" + } + MaskDefaults { + SelfModifiable "off" + IconFrame "on" + IconOpaque "opaque" + RunInitForIconRedraw "analyze" + IconRotate "none" + PortRotate "default" + IconUnits "autoscale" + } + MaskParameterDefaults { + Evaluate "on" + Tunable "on" + NeverSave "off" + Internal "off" + ReadOnly "off" + Enabled "on" + Visible "on" + ToolTip "on" + } + BlockParameterDefaults { + Block { + BlockType Inport + Port "1" + OutputFunctionCall off + OutMin "[]" + OutMax "[]" + OutDataTypeStr "Inherit: auto" + LockScale off + BusOutputAsStruct off + Unit "inherit" + PortDimensions "-1" + VarSizeSig "Inherit" + SampleTime "-1" + SignalType "auto" + SamplingMode "auto" + LatchByDelayingOutsideSignal off + LatchInputForFeedbackSignals off + Interpolate on + } + Block { + BlockType Outport + Port "1" + OutMin "[]" + OutMax "[]" + OutDataTypeStr "Inherit: auto" + LockScale off + BusOutputAsStruct off + Unit "inherit" + PortDimensions "-1" + VarSizeSig "Inherit" + SampleTime "-1" + SignalType "auto" + SamplingMode "auto" + EnsureOutportIsVirtual off + SourceOfInitialOutputValue "Dialog" + OutputWhenDisabled "held" + InitialOutput "[]" + MustResolveToSignalObject off + OutputWhenUnConnected off + OutputWhenUnconnectedValue "0" + VectorParamsAs1DForOutWhenUnconnected off + } + Block { + BlockType SubSystem + ShowPortLabels "FromPortIcon" + Permissions "ReadWrite" + PermitHierarchicalResolution "All" + TreatAsAtomicUnit off + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + ScheduleAs "Sample time" + SystemSampleTime "-1" + RTWSystemCode "Auto" + RTWFcnNameOpts "Auto" + RTWFileNameOpts "Auto" + FunctionInterfaceSpec "void_void" + FunctionWithSeparateData off + RTWMemSecFuncInitTerm "Inherit from model" + RTWMemSecFuncExecute "Inherit from model" + RTWMemSecDataConstants "Inherit from model" + RTWMemSecDataInternal "Inherit from model" + RTWMemSecDataParameters "Inherit from model" + SimViewingDevice off + DataTypeOverride "UseLocalSettings" + DataTypeOverrideAppliesTo "AllNumericTypes" + MinMaxOverflowLogging "UseLocalSettings" + Opaque off + MaskHideContents off + SFBlockType "NONE" + VariantControlMode "Expression" + Variant off + GeneratePreprocessorConditionals off + AllowZeroVariantControls off + PropagateVariantConditions off + TreatAsGroupedWhenPropagatingVariantConditions on + ContentPreviewEnabled off + IsWebBlock off + IsObserver off + Latency "0" + AutoFrameSizeCalculation off + IsWebBlockPanel off + } + } + System { + Name "cdsUnwrapPhase" + Location [2624, 199, 3409, 822] + Open on + PortBlocksUseCompactNotation off + SetExecutionDomain off + ExecutionDomainType "Deduce" + ModelBrowserVisibility off + ModelBrowserWidth 200 + ScreenColor "white" + PaperOrientation "landscape" + PaperPositionMode "auto" + PaperType "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + ReportName "simulink-default.rpt" + SIDHighWatermark "11" + SimulinkSubDomain "Simulink" + Block { + BlockType Inport + Name "In1" + SID "8" + Position [110, 78, 140, 92] + ZOrder -2 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "In2" + SID "9" + Position [110, 113, 140, 127] + ZOrder -3 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType SubSystem + Name "phaseUnwrap_0" + SID "1" + Tag "cdsUnwrapPhase" + Ports [2, 1] + Position [190, 67, 300, 138] + ZOrder -1 + BackgroundColor "lightBlue" + DropShadow on + AttributesFormatString "%<Tag>" + FontName "Liberation Sans" + RequestExecContextInheritance off + Object { + $PropName "MaskObject" + $ObjectID 19 + $ClassName "Simulink.Mask" + Display "disp(char(248))\nport_label('input', 1, 'in')\nport_label('input', 2, 'reset')\nport_label('output', 1, 'out')" + RunInitForIconRedraw "off" + } + System { + Name "phaseUnwrap_0" + Location [2624, 199, 3409, 822] + Open off + PortBlocksUseCompactNotation off + SetExecutionDomain off + ExecutionDomainType "Deduce" + ModelBrowserVisibility off + ModelBrowserWidth 200 + ScreenColor "white" + PaperOrientation "landscape" + PaperPositionMode "auto" + PaperType "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SimulinkSubDomain "Simulink" + Block { + BlockType Inport + Name "in" + SID "2" + Position [25, -2, 55, 12] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "reset" + SID "3" + Position [25, 63, 55, 77] + ZOrder -2 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "out" + SID "6" + Position [180, -2, 210, 12] + ZOrder -5 + IconDisplay "Port number" + } + } + } + Block { + BlockType Outport + Name "Out1" + SID "10" + Position [335, 98, 365, 112] + ZOrder -4 + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "In1" + SrcPort 1 + DstBlock "phaseUnwrap_0" + DstPort 1 + } + Line { + ZOrder 2 + SrcBlock "phaseUnwrap_0" + SrcPort 1 + DstBlock "Out1" + DstPort 1 + } + Line { + ZOrder 3 + SrcBlock "In2" + SrcPort 1 + DstBlock "phaseUnwrap_0" + DstPort 2 + } + } +} diff --git a/src/epics/util/lib/UnwrapPhase.pm b/src/epics/util/lib/UnwrapPhase.pm new file mode 100644 index 000000000..3b5d607ef --- /dev/null +++ b/src/epics/util/lib/UnwrapPhase.pm @@ -0,0 +1,82 @@ +package CDS::UnwrapPhase; +use Exporter; +@ISA = ('Exporter'); + +#// \page UnwrapPhase UnwrapPhase.pm +#// Documentation for UnwrapPhase.pm +#// +#// \n + + +sub partType { + return UnwrapPhase; +} + +# Print Epics communication structure into a header file +# Current part number is passed as first argument +sub printHeaderStruct { + my ($i) = @_; + #print ::OUTH "\tdouble $::xpartName[$i]\_E;\n"; + #print ::OUTH "\tdouble $::xpartName[$i]\[2\];\n"; +} + +# Print Epics variable definitions +# Current part number is passed as first argument +sub printEpics { + my ($i) = @_; + #print ::EPICS "PHASE $::xpartName[$i] $::systemName\.$::xpartName[$i] double ai 0 field(PREC,\"3\")\n"; +} + + +# Print variable declarations int front-end file +# Current part number is passed as first argument +sub printFrontEndVars { + my ($i) = @_; + print ::OUT "static double \L$::xpartName[$i];\n"; + print ::OUT "static unwrapPhaseCtx_t \L$::xpartName[$i]_ctx;\n"; +} + +# Check inputs are connected +sub checkInputConnect { + my ($i) = @_; + if($::partInCnt[$i] < 2) { + print ::CONN_ERRORS "***\n$::partType[$i] with name $::xpartName[$i] has missing inputs\nRequires 2; Only $::partInCnt[$i] provided: \n"; + return "ERROR"; + } + return ""; +} + +# Figure out part input code +# Argument 1 is the part number +# Argument 2 is the input number +# Returns calculated input code +sub fromExp { + my ($i, $j) = @_; + #my $from = $::partInNum[$i][$j]; + #my $fromPort = $::partInputPort[$i][$j]; + #return "\L$::xpartName[$from]\[" . $fromPort . "\]"; + return ""; +} + +# Return front end initialization code +# Argument 1 is the part number +# Returns calculated code string +sub frontEndInitCode { + my ($i) = @_; + my $pname = "\L$::xpartName[$i]_ctx"; + return $pname . ".firstRun = 1;"; +} + + +# Return front end code +# Argument 1 is the part number +# Returns calculated code string +sub frontEndCode { + my ($i) = @_; + my $calcExp = "// UnwrapPhase: $::xpartName[$i]\n"; + + $calcExp .= "\L$::xpartName[$i] = "; + $calcExp .= "unwrapPhase( $::fromExp[0], $::fromExp[1], &" . "\L$::xpartName[$i]_ctx" . ");\n"; + + return $calcExp; +} diff --git a/src/include/fe.h b/src/include/fe.h index 0d3b92082..974e185d9 100644 --- a/src/include/fe.h +++ b/src/include/fe.h @@ -11,7 +11,7 @@ #include "util/timing.h" #include "util/random_bytes.h" #include "util/prng_xoroshiroPP.h" -#include "util/phaseUnwrap.h" +#include "util/unwrapPhase.h" #include "fm10Gen.h" #include "tRamp.h" #include "commData3.h" diff --git a/src/include/util/phaseUnwrap.h b/src/include/util/unwrapPhase.h similarity index 92% rename from src/include/util/phaseUnwrap.h rename to src/include/util/unwrapPhase.h index cee0c4888..7f398edbd 100644 --- a/src/include/util/phaseUnwrap.h +++ b/src/include/util/unwrapPhase.h @@ -1,7 +1,7 @@ #include "portableInline.h" #include "util/inlineMath.h" -typedef struct phaseUnwrapCtx_t +typedef struct unwrapPhaseCtx_t { int k; int firstRun; @@ -9,9 +9,9 @@ typedef struct phaseUnwrapCtx_t double uLast; double uThis; -} phaseUnwrapCtx_t; +} unwrapPhaseCtx_t; -LIGO_INLINE double phaseUnwrap(double cur_sample, double reset, phaseUnwrapCtx_t * ctx) +LIGO_INLINE double unwrapPhase(double cur_sample, double reset, unwrapPhaseCtx_t * ctx) { /* This block of code is supposed to take the output of the atan code for the SPI and unwrap any phase * jumps of greater than pi. This is similar to the MATLAB simulink unwrap block except that the reset diff --git a/src/librts/models/x1unittest.mdl b/src/librts/models/x1unittest.mdl index 2c416aadd..b5bb5bd6d 100644 --- a/src/librts/models/x1unittest.mdl +++ b/src/librts/models/x1unittest.mdl @@ -6,7 +6,7 @@ Model { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" - ComputedModelVersion "1.307" + ComputedModelVersion "1.311" NumModelReferences 0 NumTestPointedSignals 0 NumProvidedFunctions 0 @@ -18,7 +18,7 @@ Model { IsExportFunctionModel 0 IsArchitectureModel 0 NumParameterArguments 0 - NumExternalFileReferences 136 + NumExternalFileReferences 140 ExternalFileReference { Reference "cdsAdcx0/ADC0" Path "x1unittest/ADC0" @@ -613,6 +613,30 @@ Model { SID "1393" Type "LIBRARY_BLOCK" } + ExternalFileReference { + Reference "cdsEpicsIn/Subsystem" + Path "x1unittest/PHASE_UNWRAP_TEST/INPUT_0" + SID "1691" + Type "LIBRARY_BLOCK" + } + ExternalFileReference { + Reference "cdsEpicsIn/Subsystem" + Path "x1unittest/PHASE_UNWRAP_TEST/INPUT_1" + SID "1692" + Type "LIBRARY_BLOCK" + } + ExternalFileReference { + Reference "cdsEpicsOut/Subsystem" + Path "x1unittest/PHASE_UNWRAP_TEST/OUTPUT_0" + SID "1693" + Type "LIBRARY_BLOCK" + } + ExternalFileReference { + Reference "cdsUnwrapPhase/phaseUnwrap_0" + Path "x1unittest/PHASE_UNWRAP_TEST/phaseUnwrap_0" + SID "1686" + Type "LIBRARY_BLOCK" + } ExternalFileReference { Reference "cdsEpicsIn/Subsystem" Path "x1unittest/Product_Divide_Sum_Abs_Test/ABS_INPUT_1" @@ -886,11 +910,11 @@ Model { $ObjectID 5 $ClassName "Simulink.EditorInfo" IsActive [1] - ViewObjType "SimulinkTopLevel" - LoadSaveID "0" + ViewObjType "SimulinkSubsys" + LoadSaveID "1687" Extents [1402.0, 605.0] - ZoomFactor [0.59999999999999987] - Offset [-247.60635804747895, 189.03525891954268] + ZoomFactor [1.25] + Offset [-442.55714285714271, -187.59999999999994] } Object { $PropName "DockComponentsInfo" @@ -925,9 +949,9 @@ Model { ModifiedByFormat "%<Auto>" LastModifiedBy "ezekiel.dohmen" ModifiedDateFormat "%<Auto>" - LastModifiedDate "Mon Jul 24 09:52:48 2023" - RTWModifiedTimeStamp 612093155 - ModelVersionFormat "1.%<AutoIncrement:307>" + LastModifiedDate "Mon Jul 24 13:33:37 2023" + RTWModifiedTimeStamp 612106413 + ModelVersionFormat "1.%<AutoIncrement:311>" SampleTimeColors off SampleTimeAnnotations off LibraryLinkDisplay "none" @@ -1971,7 +1995,7 @@ Model { System { Name "x1unittest" Location [4107, 145, 5547, 934] - Open on + Open off PortBlocksUseCompactNotation off SetExecutionDomain off ExecutionDomainType "Deduce" @@ -1985,9 +2009,9 @@ Model { TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off - ZoomFactor "60" + ZoomFactor "150" ReportName "simulink-default.rpt" - SIDHighWatermark "1684" + SIDHighWatermark "1693" SimulinkSubDomain "Simulink" Block { BlockType Reference @@ -2038,7 +2062,7 @@ Model { TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off - ZoomFactor "150" + ZoomFactor "125" SimulinkSubDomain "Simulink" Block { BlockType Reference @@ -2131,9 +2155,14 @@ Model { ZOrder 103 ShowName off AttributesFormatString "%<Tag>" - LibraryVersion "1.19" + LibraryVersion "1.4" SourceBlock "cdsAtan2/Atan2_0" SourceType "" + ShowPortLabels "FromPortIcon" + SystemSampleTime "-1" + GeneratePreprocessorConditionals off + AllowZeroVariantControls off + PropagateVariantConditions off ContentPreviewEnabled off } Line { @@ -6898,6 +6927,161 @@ Model { PropagateVariantConditions off ContentPreviewEnabled off } + Block { + BlockType SubSystem + Name "PHASE_UNWRAP_TEST" + SID "1687" + Ports [] + Position [1540, 130, 1650, 195] + ZOrder 106 + RequestExecContextInheritance off + ContentPreviewEnabled on + System { + Name "PHASE_UNWRAP_TEST" + Location [4107, 145, 5547, 934] + Open on + PortBlocksUseCompactNotation off + SetExecutionDomain off + ExecutionDomainType "Deduce" + ModelBrowserVisibility off + ModelBrowserWidth 200 + ScreenColor "white" + PaperOrientation "landscape" + PaperPositionMode "auto" + PaperType "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "125" + SimulinkSubDomain "Simulink" + Block { + BlockType Reference + Name "INPUT_0" + SID "1691" + Tag "cdsEpicsIn" + Description "Purpose: \nCreate an E" + "PICS input channel connection to the FE realtime controls. \n " + " \nOperation: " + " \nOutputs value from an EPICS ai record. Value is floating point with a precision of 3..\n " + " \nUsage: " + " \nName the part with the desired EPICS channel name. " + " " + Ports [0, 1] + Position [-75, 22, 15, 48] + ZOrder 124 + BackgroundColor "green" + DropShadow on + AttributesFormatString "%<Tag>" + LibraryVersion "1.3" + SourceBlock "cdsEpicsIn/Subsystem" + SourceType "SubSystem" + ShowPortLabels "FromPortIcon" + SystemSampleTime "-1" + GeneratePreprocessorConditionals off + AllowZeroVariantControls off + PropagateVariantConditions off + ContentPreviewEnabled off + } + Block { + BlockType Reference + Name "INPUT_1" + SID "1692" + Tag "cdsEpicsIn" + Description "Purpose: \nCreate an E" + "PICS input channel connection to the FE realtime controls. \n " + " \nOperation: " + " \nOutputs value from an EPICS ai record. Value is floating point with a precision of 3..\n " + " \nUsage: " + " \nName the part with the desired EPICS channel name. " + " " + Ports [0, 1] + Position [-75, 87, 15, 113] + ZOrder 125 + BackgroundColor "green" + DropShadow on + AttributesFormatString "%<Tag>" + LibraryVersion "1.3" + SourceBlock "cdsEpicsIn/Subsystem" + SourceType "SubSystem" + ShowPortLabels "FromPortIcon" + SystemSampleTime "-1" + GeneratePreprocessorConditionals off + AllowZeroVariantControls off + PropagateVariantConditions off + ContentPreviewEnabled off + } + Block { + BlockType Reference + Name "OUTPUT_0" + SID "1693" + Tag "cdsEpicsOutput" + Description "Purpose: \nOutput a FE signal to an EPICS channel. " + " \n \nOperation: \nTakes " + "input value and passes it to EPICS record. \n \nUsage: " + " \nName the part with the desired EPICS rrecord name." + Ports [1, 1] + Position [220, 35, 300, 65] + ZOrder 126 + BackgroundColor "[0.686275, 0.372549, 0.313725]" + DropShadow on + AttributesFormatString "%<Tag>" + LibraryVersion "1.2" + SourceBlock "cdsEpicsOut/Subsystem" + SourceType "SubSystem" + ShowPortLabels "FromPortIcon" + SystemSampleTime "-1" + GeneratePreprocessorConditionals off + AllowZeroVariantControls off + PropagateVariantConditions off + ContentPreviewEnabled off + } + Block { + BlockType Reference + Name "phaseUnwrap_0" + SID "1686" + Tag "cdsUnwrapPhase" + Ports [2, 1] + Position [70, 22, 165, 73] + ZOrder 105 + BackgroundColor "lightBlue" + DropShadow on + AttributesFormatString "%<Tag>" + LibraryVersion "1.10" + FontName "Liberation Sans" + SourceBlock "cdsUnwrapPhase/phaseUnwrap_0" + SourceType "" + ShowPortLabels "FromPortIcon" + SystemSampleTime "-1" + GeneratePreprocessorConditionals off + AllowZeroVariantControls off + PropagateVariantConditions off + ContentPreviewEnabled off + } + Line { + ZOrder 147 + SrcBlock "phaseUnwrap_0" + SrcPort 1 + DstBlock "OUTPUT_0" + DstPort 1 + } + Line { + ZOrder 145 + SrcBlock "INPUT_0" + SrcPort 1 + DstBlock "phaseUnwrap_0" + DstPort 1 + } + Line { + ZOrder 146 + SrcBlock "INPUT_1" + SrcPort 1 + Points [23, 0; 0, -40] + DstBlock "phaseUnwrap_0" + DstPort 2 + } + } + } Block { BlockType SubSystem Name "Product_Divide_Sum_Abs_Test" @@ -8853,7 +9037,7 @@ Model { Annotation { SID "1391" Name "Below inputs are of type int" - Position [1010, 942, 1131, 957] + Position [1010, 952, 1131, 967] InternalMargins [0, 0, 0, 0] HorizontalAlignment "left" VerticalAlignment "top" -- GitLab