Model { Name "better_control" Version 6.3 MdlSubVersion 0 GraphicalInterface { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" ComputedModelVersion "1.147" NumModelReferences 0 NumTestPointedSignals 0 } SavedCharacterEncoding "windows-1252" SaveDefaultBlockParams on SampleTimeColors off LibraryLinkDisplay "none" WideLines on ShowLineDimensions off ShowPortDataTypes off ShowLoopsOnError on IgnoreBidirectionalLines off ShowStorageClass off ShowTestPointIcons on ShowViewerIcons on SortedOrder off ExecutionContextIcon off ShowLinearizationAnnotations on RecordCoverage off CovPath "/" CovSaveName "covdata" CovMetricSettings "dw" CovNameIncrementing off CovHtmlReporting on covSaveCumulativeToWorkspaceVar on CovSaveSingleToWorkspaceVar on CovCumulativeVarName "covCumulativeData" CovCumulativeReport off CovReportOnPause on ScopeRefreshTime 0.035000 OverrideScopeRefreshTime on DisableAllScopes off DataTypeOverride "UseLocalSettings" MinMaxOverflowLogging "UseLocalSettings" MinMaxOverflowArchiveMode "Overwrite" BlockNameDataTip off BlockParametersDataTip off BlockDescriptionStringDataTip off ToolBar on StatusBar on BrowserShowLibraryLinks off BrowserLookUnderMasks off Created "Wed Oct 26 19:28:19 2005" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" LastModifiedBy "Lab" ModifiedDateFormat "%" LastModifiedDate "Sun Nov 06 18:12:34 2005" ModelVersionFormat "1.%" ConfigurationManager "None" LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" TryForcingSFcnDF off 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 BufferReuse off StrictBusMsg "Warning" ProdHWDeviceType "32-bit xPC Target (Intel Pentium)" ShowModelReferenceBlockVersion off ShowModelReferenceBlockIO off Array { Type "Handle" Dimension 1 Simulink.ConfigSet { $ObjectID 1 Version "1.1.0" Array { Type "Handle" Dimension 7 Simulink.SolverCC { $ObjectID 2 Version "1.1.0" StartTime "0.0" StopTime "600" AbsTol "auto" FixedStep "dt" InitialStep "auto" MaxNumMinSteps "-1" MaxOrder 5 ExtrapolationOrder 4 NumberNewtonIterations 1 MaxStep "auto" MinStep "auto" RelTol "1e-3" SolverMode "Auto" Solver "FixedStepDiscrete" SolverName "FixedStepDiscrete" ZeroCrossControl "UseLocalSettings" AlgebraicLoopSolver "TrustRegion" SolverResetMethod "Fast" PositivePriorityOrder off AutoInsertRateTranBlk off SampleTimeConstraint "Unconstrained" RateTranMode "Deterministic" } Simulink.DataIOCC { $ObjectID 3 Version "1.1.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" InitialState "xInitial" LimitDataPoints on MaxDataPoints "1000000" LoadExternalInput off LoadInitialState off SaveFinalState on SaveFormat "Array" SaveOutput on SaveState on SignalLogging on InspectSignalLogs on SaveTime on StateSaveName "xout" TimeSaveName "tout" OutputSaveName "yout" SignalLoggingName "logsout" OutputOption "RefineOutputTimes" OutputTimes "[]" Refine "1" } Simulink.OptimizationCC { $ObjectID 4 Array { Type "Cell" Dimension 5 Cell "ZeroExternalMemoryAtStartup" Cell "ZeroInternalMemoryAtStartup" Cell "InitFltsAndDblsToZero" Cell "OptimizeModelRefInitCode" Cell "NoFixptDivByZeroProtection" PropName "DisabledProps" } Version "1.1.0" BlockReduction off BooleanDataType on ConditionallyExecuteInputs off InlineParams off InlineInvariantSignals off OptimizeBlockIOStorage off BufferReuse off EnforceIntegerDowncast on ExpressionFolding off FoldNonRolledExpr on LocalBlockOutputs off ParameterPooling on RollThreshold 5 SystemCodeInlineAuto off StateBitsets off DataBitsets off UseTempVars off ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero on NoFixptDivByZeroProtection off EfficientFloat2IntCast off OptimizeModelRefInitCode off LifeSpan "inf" BufferReusableBoundary on } Simulink.DebuggingCC { $ObjectID 5 Version "1.1.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" SignalInfNanChecking "none" ReadBeforeWriteMsg "UseLocalSettings" WriteAfterWriteMsg "UseLocalSettings" WriteAfterReadMsg "UseLocalSettings" AlgebraicLoopMsg "warning" ArtificialAlgebraicLoopMsg "warning" CheckSSInitialOutputMsg on CheckExecutionContextPreStartOutputMsg off CheckExecutionContextRuntimeOutputMsg off SignalResolutionControl "TryResolveAllWithWarning" BlockPriorityViolationMsg "warning" MinStepSizeMsg "warning" SolverPrmCheckMsg "warning" InheritedTsInSrcMsg "warning" DiscreteInheritContinuousMsg "warning" MultiTaskDSMMsg "warning" MultiTaskRateTransMsg "error" SingleTaskRateTransMsg "none" TasksWithSamePriorityMsg "warning" SigSpecEnsureSampleTimeMsg "warning" CheckMatrixSingularityMsg "none" IntegerOverflowMsg "warning" Int32ToFloatConvMsg "warning" ParameterDowncastMsg "error" ParameterOverflowMsg "error" ParameterUnderflowMsg "none" ParameterPrecisionLossMsg "warning" UnderSpecifiedDataTypeMsg "none" UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" FcnCallInpInsideContextMsg "Use local settings" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" SFcnCompatibilityMsg "none" UniqueDataStoreMsg "none" BusObjectLabelMismatch "warning" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" EnableOverflowDetection off ModelReferenceIOMsg "none" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" ModelReferenceCSMismatchMessage "none" ModelReferenceSimTargetVerbose off UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" ModelReferenceExtraNoncontSigs "error" } Simulink.HardwareCC { $ObjectID 6 Version "1.1.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 ProdIntDivRoundTo "Zero" ProdEndianess "LittleEndian" ProdWordSize 32 ProdShiftRightIntArith on ProdHWDeviceType "32-bit xPC Target (Intel Pentium)" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 TargetShiftRightIntArith on TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 TargetTypeEmulationWarnSuppressLevel 0 TargetPreprocMaxBitsSint 32 TargetPreprocMaxBitsUint 32 TargetHWDeviceType "32-bit Generic" TargetUnknown off ProdEqTarget off } Simulink.ModelReferenceCC { $ObjectID 7 Version "1.1.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" ModelReferenceNumInstancesAllowed "Multi" ModelReferencePassRootInputsByReference on ModelReferenceMinAlgLoopOccurrences off } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" $ObjectID 8 Array { Type "Cell" Dimension 1 Cell "IncludeHyperlinkInReport" PropName "DisabledProps" } Version "1.1.0" SystemTargetFile "xpctarget.tlc" GenCodeOnly off MakeCommand "make_rtw" TemplateMakefile "xpc_default_tmf" Description "xPC Target" GenerateReport off SaveLog off RTWVerbose on RetainRTWFile off ProfileTLC off TLCDebug off TLCCoverage off TLCAssert off ProcessScriptMode "Default" ConfigurationMode "Optimized" ProcessScript "xpctarget_make_rtw_hook" ConfigAtBuild off IncludeHyperlinkInReport off LaunchReport off TargetLang "C" Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 9 Array { Type "Cell" Dimension 9 Cell "IgnoreCustomStorageClasses" Cell "InsertBlockDesc" Cell "SFDataObjDesc" Cell "SimulinkDataObjDesc" Cell "DefineNamingRule" Cell "SignalNamingRule" Cell "ParamNamingRule" Cell "InlinedPrmAccess" Cell "CustomSymbolStr" PropName "DisabledProps" } Version "1.1.0" ForceParamTrailComments off GenerateComments on IgnoreCustomStorageClasses on IncHierarchyInIds off MaxIdLength 31 PreserveName off PreserveNameWithParent off ShowEliminatedStatement off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off IncDataTypeInIds off PrefixModelToSubsysFcnNames on CustomSymbolStr "$R$N$M" MangleLength 1 DefineNamingRule "None" ParamNamingRule "None" SignalNamingRule "None" InsertBlockDesc off SimulinkBlockComments on EnableCustomComments off InlinedPrmAccess "Literals" ReqsInCode off } xpctarget.xpcTargetCC { $BackupClass "Simulink.TargetCC" $ObjectID 10 Array { Type "Cell" Dimension 12 Cell "IncludeMdlTerminateFcn" Cell "CombineOutputUpdateFcns" Cell "SuppressErrorStatus" Cell "ERTCustomFileBanners" Cell "GenerateSampleERTMain" Cell "MultiInstanceERTCode" Cell "PurelyIntegerCode" Cell "SupportNonFinite" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" PropName "DisabledProps" } Version "1.1.0" TargetFcnLib "ansi_tfl_tmw.mat" TargetLibSuffix "" TargetPreCompLibLocation "" GenFloatMathFcnCalls "ANSI_C" UtilityFuncGeneration "Auto" GenerateFullHeader on GenerateSampleERTMain off IsPILTarget off ModelReferenceCompliant on IncludeMdlTerminateFcn on CombineOutputUpdateFcns off SuppressErrorStatus off IncludeFileDelimiter "Auto" ERTCustomFileBanners off SupportAbsoluteTime on LogVarNameModifier "rt_" MatFileLogging on MultiInstanceERTCode off SupportNonFinite on SupportComplex on PurelyIntegerCode off SupportContinuousTime on SupportNonInlinedSFcns on RL32ModeModifier "Real-Time" ExtMode on ExtModeMexFile "ext_xpc" ExtModeArmWhenConnect off RL32LogTETModifier on RL32LogBufSizeModifier "1000000" RL32IRQSourceModifier "Timer" xPCIRQSourceBoard "None/Other" xPCIOIRQSlot "-1" xpcDblBuff off xpcObjCom off xPCGenerateASAP2 off RL32ObjectName "tg" xPCisDownloadable on xPCisDefaultEnv on } PropName "Components" } } PropName "Components" } Name "Configuration" SimulationMode "external" CurrentDlgPage "Data Import//Export" } PropName "ConfigurationSets" } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" $ObjectID 1 } BlockDefaults { Orientation "right" ForegroundColor "black" BackgroundColor "white" DropShadow off NamePlacement "normal" FontName "arial" FontSize 10 FontWeight "normal" FontAngle "normal" ShowName on } BlockParameterDefaults { Block { BlockType Constant Value "1" VectorParams1D on OutDataTypeMode "Inherit from 'Constant value'" OutDataType "sfix(16)" ConRadixGroup "Use specified scaling" OutScaling "2^0" SampleTime "inf" } Block { BlockType DiscreteFilter Numerator "[1]" Denominator "[1 2]" SampleTime "1" StateMustResolveToSignalObject off RTWStateStorageClass "Auto" Realization "auto" } Block { BlockType DiscreteIntegrator IntegratorMethod "Integration: Forward Euler" gainval "1.0" ExternalReset "none" InitialConditionSource "internal" InitialCondition "0" InitialConditionMode "State and output" SampleTime "1" OutDataTypeMode "Inherit via internal rule" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow off LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" ShowSaturationPort off ShowStatePort off IgnoreLimit off StateMustResolveToSignalObject off RTWStateStorageClass "Auto" } Block { BlockType Gain Gain "1" Multiplication "Element-wise(K.*u)" ParameterDataTypeMode "Same as input" ParameterDataType "sfix(16)" ParameterScalingMode "Best Precision: Matrix-wise" ParameterScaling "2^0" OutDataTypeMode "Same as input" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Inport Port "1" UseBusObject off BusObject "BusObject" BusOutputAsStruct off PortDimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" LatchByDelayingOutsideSignal off LatchByCopyingInsideSignal off Interpolate on } Block { BlockType Mux Inputs "4" DisplayOption "none" UseBusObject off BusObject "BusObject" NonVirtualBus off } Block { BlockType "S-Function" FunctionName "system" SFunctionModules "''" PortCounts "[]" } Block { BlockType SubSystem ShowPortLabels on Permissions "ReadWrite" PermitHierarchicalResolution "All" SystemSampleTime "-1" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" SimViewingDevice off DataTypeOverride "UseLocalSettings" MinMaxOverflowLogging "UseLocalSettings" } Block { BlockType Sum IconShape "rectangular" Inputs "++" InputSameDT on OutDataTypeMode "Same as first input" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "arial" FontSize 10 FontWeight "normal" FontAngle "normal" } LineDefaults { FontName "arial" FontSize 9 FontWeight "normal" FontAngle "normal" } System { Name "better_control" Location [2, 82, 1270, 978] Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "138" ReportName "simulink-default.rpt" Block { BlockType Gain Name "CancellingGainH" Position [495, 115, 560, 145] ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "CancellingGainV" Position [510, 334, 565, 366] Gain "-1" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType DiscreteFilter Name "Discrete Filter" Position [315, 332, 345, 368] Numerator "b" Denominator "a" SampleTime "-1" } Block { BlockType DiscreteFilter Name "Discrete Filter1" Position [335, 112, 355, 148] Numerator "b" Denominator "a" SampleTime "-1" } Block { BlockType DiscreteIntegrator Name "Discrete-Time\nIntegrator" Ports [1, 1] Position [380, 110, 455, 150] IntegratorMethod "Integration: Forward Euler" gainval "3800" ExternalReset "none" InitialConditionSource "internal" SampleTime "-1" LimitOutput on UpperSaturationLimit "2" LowerSaturationLimit "-2" IgnoreLimit off ICPrevOutput "DiscIntNeverNeededParam" ICPrevScaledInput "DiscIntNeverNeededParam" } Block { BlockType DiscreteIntegrator Name "Discrete-Time\nIntegrator1" Ports [1, 1] Position [380, 332, 470, 368] IntegratorMethod "Integration: Forward Euler" gainval "4500" ExternalReset "none" InitialConditionSource "internal" SampleTime "-1" LimitOutput on UpperSaturationLimit "2" LowerSaturationLimit "-2" IgnoreLimit off ICPrevOutput "DiscIntNeverNeededParam" ICPrevScaledInput "DiscIntNeverNeededParam" } Block { BlockType Reference Name "Input Signals" Ports [1] Position [410, 200, 500, 260] SourceBlock "xpclib/Misc./Scope (xPC) " SourceType "xpcscopeblock" ShowPortLabels on scopeno "1" scopetype "Target" autostart on viewmode "Graphical redraw" formatstr "'%15.6f'" grid on ylimits "[-0.02,0.02]" nosamples "250" noprepostsamples "0" interleave "1" triggermode "FreeRun" triggersignal "1" triggerlevel "0.0" triggerslope "Either" triggerscope "1" triggersample "0" filename "data.dat" mode "Lazy" writesize "512" autorestart off } Block { BlockType Mux Name "Mux" Ports [2, 1] Position [605, 196, 610, 234] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [385, 188, 390, 272] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Reference Name "Output Signals" Ports [1] Position [640, 185, 730, 245] SourceBlock "xpclib/Misc./Scope (xPC) " SourceType "xpcscopeblock" ShowPortLabels on scopeno "2" scopetype "Target" autostart on viewmode "Graphical redraw" formatstr "'%15.6f'" grid on ylimits "[-3,3]" nosamples "250" noprepostsamples "0" interleave "1" triggermode "FreeRun" triggersignal "1" triggerlevel "0.0" triggerslope "Either" triggerscope "1" triggersample "0" filename "data.dat" mode "Lazy" writesize "512" autorestart off } Block { BlockType Constant Name "RefVoltH" Position [170, 205, 200, 235] Value "1.215" } Block { BlockType Constant Name "RefVoltV" Position [170, 280, 200, 310] Value "1.253" } Block { BlockType Reference Name "Sensoray626 AD " Ports [0, 4] Position [15, 144, 150, 291] SourceBlock "xpcsensoraylib/A//D/Sensoray626 AD " SourceType "sensoray626_ad" board "1" channel "[1 2 3 4]" range "[-10]" sampleTime "dt" } Block { BlockType Reference Name "Sensoray626 DA " Ports [2] Position [790, 83, 915, 332] SourceBlock "xpcsensoraylib/D//A/Sensoray626 DA " SourceType "sensoray626_da" board "1" channel "[2 1]" reset "[1 1]" initValue "[0 0]" sampleTime "dt" } Block { BlockType Reference Name "Sensoray626 Init " Ports [] Position [40, 75, 145, 125] SourceBlock "xpcsensoraylib/Init /Sensoray626 Init " SourceType "sensoray626_init" board "1" revA off slot "-1" } Block { BlockType Sum Name "Subtract" Ports [2, 1] Position [250, 188, 280, 232] Inputs "+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Subtract1" Ports [2, 1] Position [250, 258, 280, 307] Inputs "+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" SaturateOnIntegerOverflow off } Line { SrcBlock "Sensoray626 AD " SrcPort 2 Points [0, 0] DstBlock "Subtract" DstPort 1 } Line { SrcBlock "CancellingGainH" SrcPort 1 Points [10, 0; 0, 20] Branch { Points [0, 55] DstBlock "Mux" DstPort 1 } Branch { Points [200, 0] DstBlock "Sensoray626 DA " DstPort 1 } } Line { SrcBlock "CancellingGainV" SrcPort 1 Points [0, -85] Branch { Points [0, -40] DstBlock "Mux" DstPort 2 } Branch { Points [205, 0] DstBlock "Sensoray626 DA " DstPort 2 } } Line { SrcBlock "Subtract" SrcPort 1 Points [0, 0; 5, 0] Branch { DstBlock "Mux1" DstPort 1 } Branch { Points [0, -80] DstBlock "Discrete Filter1" DstPort 1 } } Line { SrcBlock "Subtract1" SrcPort 1 Points [0, -35; 5, 0] Branch { DstBlock "Mux1" DstPort 2 } Branch { Points [0, 100] DstBlock "Discrete Filter" DstPort 1 } } Line { SrcBlock "Sensoray626 AD " SrcPort 4 Points [0, 0] DstBlock "Subtract1" DstPort 1 } Line { SrcBlock "RefVoltV" SrcPort 1 Points [0, 0] DstBlock "Subtract1" DstPort 2 } Line { SrcBlock "Discrete-Time\nIntegrator" SrcPort 1 DstBlock "CancellingGainH" DstPort 1 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Output Signals" DstPort 1 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Input Signals" DstPort 1 } Line { SrcBlock "RefVoltH" SrcPort 1 Points [0, 0] DstBlock "Subtract" DstPort 2 } Line { SrcBlock "Discrete Filter1" SrcPort 1 DstBlock "Discrete-Time\nIntegrator" DstPort 1 } Line { SrcBlock "Discrete Filter" SrcPort 1 DstBlock "Discrete-Time\nIntegrator1" DstPort 1 } Line { SrcBlock "Discrete-Time\nIntegrator1" SrcPort 1 DstBlock "CancellingGainV" DstPort 1 } Annotation { Name "Horizontal Axis\nInput" Position [224, 145] UseDisplayTextAsClickCallback off FontSize 18 } Annotation { Name "Vertical Axis\nInput" Position [222, 351] UseDisplayTextAsClickCallback off FontSize 18 } Annotation { Name "Horizontal Out" Position [684, 135] UseDisplayTextAsClickCallback off FontSize 18 } Annotation { Name "Vertical Out" Position [682, 286] UseDisplayTextAsClickCallback off FontSize 18 } Annotation { Name "Vert. Gain = 5479 mV/deg" Position [447, 416] UseDisplayTextAsClickCallback off FontSize 18 } Annotation { Name "Horiz. Gain = 4200 mV/deg" Position [447, 91] UseDisplayTextAsClickCallback off FontSize 18 } Annotation { Name "Tremor-Cancelling Laser: Simulink Model" Position [457, 26] UseDisplayTextAsClickCallback off FontSize 28 FontWeight "bold" } Annotation { Name "M. N. Missaghi and G. A. Wuisan" Position [442, 51] UseDisplayTextAsClickCallback off FontSize 18 } Annotation { Name "rev. 2005/12/07" Position [827, 401] UseDisplayTextAsClickCallback off FontSize 18 } } }