2010-02-24 58 views
-1

我嘗試在我的simulink模型或只是一個m文件和我的C++應用程序之間建立鏈接,但我遇到問題。我真的不明白matlab如何接收數據,以及simulink是以哪種形式發送數據到塊?我想發送像xyz這樣的座標給matlab,並用matlab實時分散座標流。可能嗎 ?tcpip與C++應用程序的Simulink鏈接

這裏是C++提取碼:(不好意思評論是法語)

   /* Démarrage du listage (mode server) */ 
       sock_err = listen(sock, 5); 
       printf("Listage du port %d...\n", PORT); 

       /* Si la socket fonctionne */ 
       if(sock_err != SOCKET_ERROR) 
       { 
        /* Attente pendant laquelle le client se connecte */ 
        printf("Patientez pendant que le client se connecte sur le port %d...\n", PORT); 

        csock = accept(sock, (SOCKADDR*)&csin, &recsize); 
        printf("Un client se connecte avec la socket %d de %s:%d\n", csock, inet_ntoa(csin.sin_addr), htons(csin.sin_port)); 
        // double buff = 25; 

mxArray *datasend; 
datasend = mxCreateDoubleMatrix(1, 1, mxREAL); 
mlfPrintmatrix(datasend); 

        sock_err = send(csock, T, 3*sizeof(double), 0); 

        if(sock_err != SOCKET_ERROR) 
         printf("Send : %s\n", buffer[0]); 
//printf("send : [10 20 30]"); 
        else 
         printf("Erreur de transmission\n"); 

        /* Il ne faut pas oublier de fermer la connexion (fermée dans les deux sens) */ 
        shutdown(csock, 2); 
       } 

Simulink的錯誤:

Error evaluating registered method 'Outputs' of M-S-Function 'stcpiprb' in 'trajectory2/TCP//IP Receive'. The specified amount of data was not returned within the Timeout period. 
Please ensure that data is being sent to the specified port or specify a greater timeout value. 

The specified amount of data was not returned within the Timeout period. 
Please ensure that data is being sent to the specified port or specify a greater timeout value. 

Simulink模型:

Model { 
    Name "trajectory2" 
    Version 7.4 
    MdlSubVersion 0 
    GraphicalInterface { 
    NumRootInports 0 
    NumRootOutports 0 
    ParameterArgumentNames "" 
    ComputedModelVersion "1.3" 
    NumModelReferences 0 
    NumTestPointedSignals 0 
    } 
    SavedCharacterEncoding "UTF-8" 
    SaveDefaultBlockParams on 
    ScopeRefreshTime 0.035000 
    OverrideScopeRefreshTime on 
    DisableAllScopes off 
    DataTypeOverride "UseLocalSettings" 
    MinMaxOverflowLogging "UseLocalSettings" 
    MinMaxOverflowArchiveMode "Overwrite" 
    MaxMDLFileLineLength 120 
    Created "Tue Feb 23 11:53:02 2010" 
    Creator "root" 
    UpdateHistory "UpdateHistoryNever" 
    ModifiedByFormat "%<Auto>" 
    LastModifiedBy  "root" 
    ModifiedDateFormat  "%<Auto>" 
    LastModifiedDate "Wed Feb 24 01:01:41 2010" 
    RTWModifiedTimeStamp 188862533 
    ModelVersionFormat  "1.%<AutoIncrement:3>" 
    ConfigurationManager "None" 
    SampleTimeColors off 
    SampleTimeAnnotations off 
    LibraryLinkDisplay  "none" 
    WideLines off 
    ShowLineDimensions  off 
    ShowPortDataTypes off 
    ShowLoopsOnError on 
    IgnoreBidirectionalLines off 
    ShowStorageClass off 
    ShowTestPointIcons  on 
    ShowSignalResolutionIcons on 
    ShowViewerIcons on 
    SortedOrder off 
    ExecutionContextIcon off 
    ShowLinearizationAnnotations on 
    BlockNameDataTip off 
    BlockParametersDataTip off 
    BlockDescriptionStringDataTip off 
    ToolBar on 
    StatusBar on 
    BrowserShowLibraryLinks off 
    BrowserLookUnderMasks off 
    SimulationMode  "normal" 
    LinearizationMsg "none" 
    Profile off 
    ParamWorkspaceSource "MATLABWorkspace" 
    AccelSystemTargetFile "accel.tlc" 
    AccelTemplateMakefile "accel_default_tmf" 
    AccelMakeCommand "make_rtw" 
    TryForcingSFcnDF off 
    RecordCoverage  off 
    CovPath "/" 
    CovSaveName "covdata" 
    CovMetricSettings "dw" 
    CovNameIncrementing off 
    CovHtmlReporting on 
    CovForceBlockReductionOff on 
    covSaveCumulativeToWorkspaceVar on 
    CovSaveSingleToWorkspaceVar on 
    CovCumulativeVarName "covCumulativeData" 
    CovCumulativeReport off 
    CovReportOnPause on 
    CovModelRefEnable "Off" 
    CovExternalEMLEnable 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 on 
    ShowModelReferenceBlockVersion off 
    ShowModelReferenceBlockIO off 
    Array { 
    Type  "Handle" 
    Dimension 1 
    Simulink.ConfigSet { 
     $ObjectID 1 
     Version "1.6.0" 
     Array { 
Type  "Handle" 
Dimension 9 
Simulink.SolverCC { 
$ObjectID 2 
Version "1.6.0" 
StartTime "0.0" 
StopTime  "10.0" 
AbsTol "auto" 
FixedStep "auto" 
InitialStep "auto" 
MaxNumMinSteps "-1" 
MaxOrder  5 
ZcThreshold "auto" 
ConsecutiveZCsStepRelTol "10*128*eps" 
MaxConsecutiveZCs "1000" 
ExtrapolationOrder 4 
NumberNewtonIterations 1 
MaxStep "auto" 
MinStep "auto" 
MaxConsecutiveMinStep "1" 
RelTol "1e-3" 
SolverMode "Auto" 
Solver "ode45" 
SolverName "ode45" 
ShapePreserveControl  "DisableAll" 
ZeroCrossControl  "UseLocalSettings" 
ZeroCrossAlgorithm "Nonadaptive" 
AlgebraicLoopSolver "TrustRegion" 
SolverResetMethod "Fast" 
PositivePriorityOrder off 
AutoInsertRateTranBlk off 
SampleTimeConstraint  "Unconstrained" 
InsertRTBMode "Whenever possible" 
} 
Simulink.DataIOCC { 
$ObjectID 3 
Version "1.6.0" 
Decimation "1" 
ExternalInput "[t, u]" 
FinalStateName "xFinal" 
InitialState  "xInitial" 
LimitDataPoints on 
MaxDataPoints "1000" 
LoadExternalInput off 
LoadInitialState  off 
SaveFinalState off 
SaveCompleteFinalSimState off 
SaveFormat "Array" 
SaveOutput on 
SaveState off 
SignalLogging on 
InspectSignalLogs off 
SaveTime  on 
ReturnWorkspaceOutputs off 
StateSaveName "xout" 
TimeSaveName  "tout" 
OutputSaveName "yout" 
SignalLoggingName "logsout" 
OutputOption  "RefineOutputTimes" 
OutputTimes "[]" 
ReturnWorkspaceOutputsName "out" 
Refine "1" 
} 
Simulink.OptimizationCC { 
$ObjectID 4 
Version "1.6.0" 
Array { 
Type  "Cell" 
Dimension 7 
Cell  "BooleansAsBitfields" 
Cell  "PassReuseOutputArgsAs" 
Cell  "PassReuseOutputArgsThreshold" 
Cell  "ZeroExternalMemoryAtStartup" 
Cell  "ZeroInternalMemoryAtStartup" 
Cell  "OptimizeModelRefInitCode" 
Cell  "NoFixptDivByZeroProtection" 
PropName  "DisabledProps" 
} 
BlockReduction on 
BooleanDataType on 
ConditionallyExecuteInputs on 
InlineParams  off 
UseIntDivNetSlope off 
InlineInvariantSignals off 
OptimizeBlockIOStorage on 
BufferReuse on 
EnhancedBackFolding off 
StrengthReduction off 
EnforceIntegerDowncast on 
ExpressionFolding on 
BooleansAsBitfields off 
EnableMemcpy  on 
MemcpyThreshold 64 
PassReuseOutputArgsAs "Structure reference" 
ExpressionDepthLimit  2147483647 
FoldNonRolledExpr on 
LocalBlockOutputs on 
RollThreshold 5 
SystemCodeInlineAuto  off 
StateBitsets  off 
DataBitsets off 
UseTempVars off 
ZeroExternalMemoryAtStartup on 
ZeroInternalMemoryAtStartup on 
InitFltsAndDblsToZero off 
NoFixptDivByZeroProtection off 
EfficientFloat2IntCast off 
EfficientMapNaN2IntZero on 
OptimizeModelRefInitCode off 
LifeSpan  "inf" 
BufferReusableBoundary on 
SimCompilerOptimization "Off" 
AccelVerboseBuild off 
} 
Simulink.DebuggingCC { 
$ObjectID 5 
Version "1.6.0" 
RTPrefix  "error" 
ConsistencyChecking "none" 
ArrayBoundsChecking "none" 
SignalInfNanChecking  "none" 
SignalRangeChecking "none" 
ReadBeforeWriteMsg "UseLocalSettings" 
WriteAfterWriteMsg "UseLocalSettings" 
WriteAfterReadMsg "UseLocalSettings" 
AlgebraicLoopMsg  "warning" 
ArtificialAlgebraicLoopMsg "warning" 
SaveWithDisabledLinksMsg "warning" 
SaveWithParameterizedLinksMsg "warning" 
CheckSSInitialOutputMsg on 
UnderspecifiedInitializationDetection "Classic" 
MergeDetectMultiDrivingBlocksExec "none" 
CheckExecutionContextPreStartOutputMsg off 
CheckExecutionContextRuntimeOutputMsg off 
SignalResolutionControl "UseLocalSettings" 
BlockPriorityViolationMsg "warning" 
MinStepSizeMsg "warning" 
TimeAdjustmentMsg "none" 
MaxConsecutiveZCsMsg  "error" 
SolverPrmCheckMsg "warning" 
InheritedTsInSrcMsg "warning" 
DiscreteInheritContinuousMsg "warning" 
MultiTaskDSMMsg "error" 
MultiTaskCondExecSysMsg "error" 
MultiTaskRateTransMsg "error" 
SingleTaskRateTransMsg "none" 
TasksWithSamePriorityMsg "warning" 
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 "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" 
UnknownTsInhSupMsg "warning" 
ModelReferenceDataLoggingMessage "warning" 
ModelReferenceSymbolNameMessage "warning" 
ModelReferenceExtraNoncontSigs "error" 
StateNameClashWarn "warning" 
SimStateInterfaceChecksumMismatchMsg "warning" 
StrictBusMsg  "Warning" 
LoggingUnavailableSignals "error" 
BlockIODiagnostic "none" 
} 
Simulink.HardwareCC { 
$ObjectID 6 
Version "1.6.0" 
ProdBitPerChar 8 
ProdBitPerShort 16 
ProdBitPerInt 32 
ProdBitPerLong 32 
ProdIntDivRoundTo "Undefined" 
ProdEndianess "Unspecified" 
ProdWordSize  32 
ProdShiftRightIntArith on 
ProdHWDeviceType  "32-bit Generic" 
TargetBitPerChar  8 
TargetBitPerShort 16 
TargetBitPerInt 32 
TargetBitPerLong  32 
TargetShiftRightIntArith on 
TargetIntDivRoundTo "Undefined" 
TargetEndianess "Unspecified" 
TargetWordSize 32 
TargetTypeEmulationWarnSuppressLevel 0 
TargetPreprocMaxBitsSint 32 
TargetPreprocMaxBitsUint 32 
TargetHWDeviceType "Specified" 
TargetUnknown off 
ProdEqTarget  on 
} 
Simulink.ModelReferenceCC { 
$ObjectID 7 
Version "1.6.0" 
UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" 
CheckModelReferenceTargetMessage "error" 
ModelReferenceNumInstancesAllowed "Multi" 
ModelReferencePassRootInputsByReference on 
ModelReferenceMinAlgLoopOccurrences off 
} 
Simulink.SFSimCC { 
$ObjectID 8 
Version "1.6.0" 
SFSimEnableDebug  on 
SFSimOverflowDetection on 
SFSimEcho on 
SimBlas on 
SimCtrlC  on 
SimExtrinsic  on 
SimIntegrity  on 
SimUseLocalCustomCode off 
SimBuildMode  "sf_incremental_build" 
} 
Simulink.RTWCC { 
$BackupClass  "Simulink.RTWCC" 
$ObjectID 9 
Version "1.6.0" 
Array { 
Type  "Cell" 
Dimension 6 
Cell  "IncludeHyperlinkInReport" 
Cell  "GenerateTraceInfo" 
Cell  "GenerateTraceReport" 
Cell  "GenerateTraceReportSl" 
Cell  "GenerateTraceReportSf" 
Cell  "GenerateTraceReportEml" 
PropName  "DisabledProps" 
} 
SystemTargetFile  "grt.tlc" 
GenCodeOnly off 
MakeCommand "make_rtw" 
GenerateMakefile  on 
TemplateMakefile  "grt_default_tmf" 
GenerateReport off 
SaveLog off 
RTWVerbose on 
RetainRTWFile off 
ProfileTLC off 
TLCDebug  off 
TLCCoverage off 
TLCAssert off 
ProcessScriptMode "Default" 
ConfigurationMode "Optimized" 
ConfigAtBuild off 
RTWUseLocalCustomCode off 
RTWUseSimCustomCode off 
IncludeHyperlinkInReport off 
LaunchReport  off 
TargetLang "C" 
IncludeBusHierarchyInRTWFileBlockHierarchyMap off 
IncludeERTFirstTime off 
GenerateTraceInfo off 
GenerateTraceReport off 
GenerateTraceReportSl off 
GenerateTraceReportSf off 
GenerateTraceReportEml off 
GenerateCodeInfo  off 
RTWCompilerOptimization "Off" 
CheckMdlBeforeBuild "Off" 
Array { 
Type  "Handle" 
Dimension 2 
Simulink.CodeAppCC { 
$ObjectID 10 
Version "1.6.0" 
Array { 
Type  "Cell" 
Dimension 19 
Cell  "IgnoreCustomStorageClasses" 
Cell  "IgnoreTestpoints" 
Cell  "InsertBlockDesc" 
Cell  "SFDataObjDesc" 
Cell  "SimulinkDataObjDesc" 
Cell  "DefineNamingRule" 
Cell  "SignalNamingRule" 
Cell  "ParamNamingRule" 
Cell  "InlinedPrmAccess" 
Cell  "CustomSymbolStr" 
Cell  "CustomSymbolStrGlobalVar" 
Cell  "CustomSymbolStrType" 
Cell  "CustomSymbolStrField" 
Cell  "CustomSymbolStrFcn" 
Cell  "CustomSymbolStrFcnArg" 
Cell  "CustomSymbolStrBlkIO" 
Cell  "CustomSymbolStrTmpVar" 
Cell  "CustomSymbolStrMacro" 
Cell  "ReqsInCode" 
PropName  "DisabledProps" 
} 
ForceParamTrailComments off 
GenerateComments  on 
IgnoreCustomStorageClasses on 
IgnoreTestpoints  off 
IncHierarchyInIds off 
MaxIdLength 31 
PreserveName  off 
PreserveNameWithParent off 
ShowEliminatedStatement off 
IncAutoGenComments off 
SimulinkDataObjDesc off 
SFDataObjDesc off 
IncDataTypeInIds  off 
MangleLength  1 
CustomSymbolStrGlobalVar "$R$N$M" 
CustomSymbolStrType "$N$R$M" 
CustomSymbolStrField "$N$M" 
CustomSymbolStrFcn "$R$N$M$F" 
CustomSymbolStrFcnArg "rt$I$N$M" 
CustomSymbolStrBlkIO "rtb_$N$M" 
CustomSymbolStrTmpVar "$N$M" 
CustomSymbolStrMacro "$R$N$M" 
DefineNamingRule  "None" 
ParamNamingRule "None" 
SignalNamingRule  "None" 
InsertBlockDesc off 
SimulinkBlockComments on 
EnableCustomComments off 
InlinedPrmAccess  "Literals" 
ReqsInCode off 
UseSimReservedNames off 
} 
Simulink.GRTTargetCC { 
$BackupClass  "Simulink.TargetCC" 
$ObjectID 11 
Version "1.6.0" 
Array { 
Type  "Cell" 
Dimension 17 
Cell  "GeneratePreprocessorConditionals" 
Cell  "IncludeMdlTerminateFcn" 
Cell  "CombineOutputUpdateFcns" 
Cell  "SuppressErrorStatus" 
Cell  "ERTCustomFileBanners" 
Cell  "GenerateSampleERTMain" 
Cell  "GenerateTestInterfaces" 
Cell  "ModelStepFunctionPrototypeControlCompliant" 
Cell  "CPPClassGenCompliant" 
Cell  "MultiInstanceERTCode" 
Cell  "PurelyIntegerCode" 
Cell  "SupportNonFinite" 
Cell  "SupportComplex" 
Cell  "SupportAbsoluteTime" 
Cell  "SupportContinuousTime" 
Cell  "SupportNonInlinedSFcns" 
Cell  "PortableWordSizes" 
PropName  "DisabledProps" 
} 
TargetFcnLib  "ansi_tfl_table_tmw.mat" 
TargetLibSuffix "" 
TargetPreCompLibLocation "" 
TargetFunctionLibrary "ANSI_C" 
UtilityFuncGeneration "Auto" 
ERTMultiwordTypeDef "System defined" 
ERTMultiwordLength 256 
MultiwordLength 2048 
GenerateFullHeader on 
GenerateSampleERTMain off 
GenerateTestInterfaces off 
IsPILTarget off 
ModelReferenceCompliant on 
ParMdlRefBuildCompliant on 
CompOptLevelCompliant on 
IncludeMdlTerminateFcn on 
GeneratePreprocessorConditionals "Disable all" 
CombineOutputUpdateFcns off 
SuppressErrorStatus off 
ERTFirstTimeCompliant off 
IncludeFileDelimiter "Auto" 
ERTCustomFileBanners off 
SupportAbsoluteTime on 
LogVarNameModifier "rt_" 
MatFileLogging on 
MultiInstanceERTCode off 
SupportNonFinite  on 
SupportComplex on 
PurelyIntegerCode off 
SupportContinuousTime on 
SupportNonInlinedSFcns on 
SupportVariableSizeSignals off 
EnableShiftOperators on 
ParenthesesLevel  "Nominal" 
PortableWordSizes off 
ModelStepFunctionPrototypeControlCompliant off 
CPPClassGenCompliant off 
AutosarCompliant  off 
UseMalloc off 
ExtMode off 
ExtModeStaticAlloc off 
ExtModeTesting off 
ExtModeStaticAllocSize 1000000 
ExtModeTransport  0 
ExtModeMexFile "ext_comm" 
ExtModeIntrfLevel "Level1" 
RTWCAPISignals off 
RTWCAPIParams off 
RTWCAPIStates off 
GenerateASAP2 off 
} 
PropName  "Components" 
} 
} 
hdlcoderui.hdlcc { 
$ObjectID 12 
Version "1.6.0" 
Description "HDL Coder custom configuration component" 
Name  "HDL Coder" 
Array { 
Type  "Cell" 
Dimension 1 
Cell  "" 
PropName  "HDLConfigFile" 
} 
HDLCActiveTab "0" 
} 
PropName  "Components" 
     } 
     Name "Configuration" 
     CurrentDlgPage  "Solver" 
     ConfigPrmDlgPosition " [ 280, 135, 1160, 765 ] " 
    } 
    PropName  "ConfigurationSets" 
    } 
    Simulink.ConfigSet { 
    $PropName "ActiveConfigurationSet" 
    $ObjectID 1 
    } 
    BlockDefaults { 
    ForegroundColor "black" 
    BackgroundColor "white" 
    DropShadow off 
    NamePlacement "normal" 
    FontName  "Helvetica" 
    FontSize  10 
    FontWeight "normal" 
    FontAngle "normal" 
    ShowName  on 
    BlockRotation 0 
    BlockMirror off 
    } 
    AnnotationDefaults { 
    HorizontalAlignment "center" 
    VerticalAlignment "middle" 
    ForegroundColor "black" 
    BackgroundColor "white" 
    DropShadow off 
    FontName  "Helvetica" 
    FontSize  10 
    FontWeight "normal" 
    FontAngle "normal" 
    UseDisplayTextAsClickCallback off 
    } 
    LineDefaults { 
    FontName  "Helvetica" 
    FontSize  9 
    FontWeight "normal" 
    FontAngle "normal" 
    } 
    BlockParameterDefaults { 
    Block { 
     BlockType Demux 
     Outputs "4" 
     DisplayOption "none" 
     BusSelectionMode off 
    } 
    Block { 
     BlockType Inport 
     Port "1" 
     UseBusObject off 
     BusObject "BusObject" 
     BusOutputAsStruct off 
     PortDimensions  "-1" 
     VarSizeSig  "Inherit" 
     SampleTime  "-1" 
     OutMin  "[]" 
     OutMax  "[]" 
     DataType "auto" 
     OutDataType "fixdt(1,16,0)" 
     OutScaling  "[]" 
     OutDataTypeStr  "Inherit: auto" 
     LockScale off 
     SignalType  "auto" 
     SamplingMode "auto" 
     LatchByDelayingOutsideSignal off 
     LatchByCopyingInsideSignal off 
     Interpolate on 
    } 
    Block { 
     BlockType "S-Function" 
     FunctionName "system" 
     SFunctionModules "''" 
     PortCounts  "[]" 
     SFunctionDeploymentMode off 
    } 
    Block { 
     BlockType SubSystem 
     ShowPortLabels  "FromPortIcon" 
     Permissions "ReadWrite" 
     PermitHierarchicalResolution "All" 
     TreatAsAtomicUnit off 
     CheckFcnCallInpInsideContextMsg off 
     SystemSampleTime "-1" 
     RTWFcnNameOpts  "Auto" 
     RTWFileNameOpts "Auto" 
     RTWMemSecFuncInitTerm "Inherit from model" 
     RTWMemSecFuncExecute "Inherit from model" 
     RTWMemSecDataConstants "Inherit from model" 
     RTWMemSecDataInternal "Inherit from model" 
     RTWMemSecDataParameters "Inherit from model" 
     SimViewingDevice off 
     DataTypeOverride "UseLocalSettings" 
     MinMaxOverflowLogging "UseLocalSettings" 
    } 
    Block { 
     BlockType Terminator 
    } 
    } 
    System { 
    Name  "trajectory2" 
    Location  [715, 251, 1295, 511] 
    Open  on 
    ModelBrowserVisibility off 
    ModelBrowserWidth 200 
    ScreenColor "white" 
    PaperOrientation  "landscape" 
    PaperPositionMode "auto" 
    PaperType "A4" 
    PaperUnits "centimeters" 
    TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000] 
    TiledPageScale 1 
    ShowPageBoundaries off 
    ZoomFactor "100" 
    ReportName "simulink-default.rpt" 
    SIDHighWatermark  2 
    Block { 
     BlockType SubSystem 
     Name "Embedded\nMATLAB Function" 
     SID 1 
     Ports [1] 
     Position [305, 75, 375, 125] 
     LibraryVersion  "1.30" 
     PermitHierarchicalResolution "ExplicitOnly" 
     MinAlgLoopOccurrences off 
     PropExecContextOutsideSubsystem off 
     RTWSystemCode "Auto" 
     FunctionWithSeparateData off 
     Opaque  off 
     Array { 
Type  "Handle" 
Dimension 0 
PropName  "AvailSigsLoadSave" 
     } 
     RequestExecContextInheritance off 
     MaskHideContents off 
     MaskType "Stateflow" 
     MaskDescription "Embedded MATLAB block" 
     MaskDisplay "disp('fcn');" 
     MaskSelfModifiable on 
     MaskIconFrame on 
     MaskIconOpaque  off 
     MaskIconRotate  "none" 
     MaskPortRotate  "default" 
     MaskIconUnits "autoscale" 
     System { 
Name  "Embedded\nMATLAB Function" 
Location  [257, 457, 812, 717] 
Open  off 
ModelBrowserVisibility off 
ModelBrowserWidth 200 
ScreenColor "white" 
PaperOrientation "landscape" 
PaperPositionMode "auto" 
PaperType "A4" 
PaperUnits "centimeters" 
TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000] 
TiledPageScale 1 
ShowPageBoundaries off 
ZoomFactor "100" 
SIDHighWatermark 11 
SIDPrevWatermark 11 
Block { 
BlockType Inport 
Name  "data" 
SID 1 
Position  [20, 101, 40, 119] 
IconDisplay "Port number" 
OutDataType "sfix(16)" 
OutScaling "2^0" 
} 
Block { 
BlockType Demux 
Name  " Demux " 
SID 7 
Ports [1, 1] 
Position  [270, 100, 320, 140] 
Outputs "1" 
} 
Block { 
BlockType "S-Function" 
Name  " SFunction " 
SID 6 
Tag "Stateflow S-Function trajectory2 2" 
Ports [1, 1] 
Position  [180, 100, 230, 180] 
FunctionName  "sf_sfun" 
PortCounts "[1 1]" 
EnableBusSupport  on 
} 
Block { 
BlockType Terminator 
Name  " Terminator " 
SID 9 
Position  [460, 111, 480, 129] 
} 
Line { 
SrcBlock  " SFunction " 
SrcPort 1 
DstBlock  " Demux " 
DstPort 1 
} 
Line { 
SrcBlock  "data" 
SrcPort 1 
DstBlock  " SFunction " 
DstPort 1 
} 
Line { 
SrcBlock  " Demux " 
SrcPort 1 
DstBlock  " Terminator " 
DstPort 1 
} 
     } 
    } 
    Block { 
     BlockType Reference 
     Name "TCP/IP Receive" 
     SID 2 
     Ports [0, 1] 
     Position [55, 77, 165, 123] 
     LibraryVersion  "1.84" 
     DialogController "instrumentcreatedialog" 
     DialogControllerArgs "DataTag0" 
     SourceBlock "instrumentlib/TCP//IP Receive" 
     SourceType  "TCP/IP Receive" 
     Host "127.0.0.1" 
     Port "80" 
     DataSize "[1 3]" 
     EnableBlockingMode on 
     Timeout "10" 
     SampleTime  "0.01" 
     DataType "double" 
     ByteOrder "BigEndian" 
    } 
    Line { 
     SrcBlock "TCP/IP Receive" 
     SrcPort 1 
     DstBlock "Embedded\nMATLAB Function" 
     DstPort 1 
    } 
    } 
} 
MatData { 
    NumRecords  1 
    DataRecord { 
    Tag DataTag0 
    Data  " %)30 . : 8 (0 % \" $ ! 0 . . 8 (! " 
    " % \" $ ' 0 0 !P '1C<&EP<F(" 
    } 
} 
# Finite State Machines 
# 
# Stateflow Version 7.1 (R2009a) dated Jul 17 2009, 00:35:51 
# 
# 


Stateflow { 
    machine { 
    id 1 
    name  "trajectory2" 
    created "23-Feb-2010 11:53:03" 
    isLibrary 0 
    firstTarget 8 
    sfVersion 71014000.00001 
    } 
    chart { 
    id 2 
    name  "Embedded\nMATLAB Function" 
    windowPosition [353.175 315 200.25 189.75] 
    viewLimits [0 156.75 0 153.75] 
    screen [1 1 1440 900 1.25] 
    treeNode  [0 3 0 0] 
    firstTransition 5 
    firstJunction 4 
    viewObj 2 
    machine 1 
    toolbarMode LIBRARY_TOOLBAR 
    ssIdHighWaterMark 7 
    decomposition CLUSTER_CHART 
    type  EML_CHART 
    firstData 6 
    chartFileNumber 2 
    disableImplicitCasting 1 
    eml { 
     name "fcn" 
    } 
    } 
    state { 
    id 3 
    labelString "eML_blk_kernel()" 
    position  [18 64.5 118 66] 
    fontSize  12 
    chart 2 
    treeNode  [2 0 0 0] 
    superState SUBCHART 
    subviewer 2 
    ssIdNumber 1 
    type  FUNC_STATE 
    decomposition CLUSTER_STATE 
    eml { 
     isEML 1 
     script  "function fcn(data)\n%#eml\neml.extrinsic('figure','scatter3','grid','hold','axis')\nfigure(1);\n%" 
     "hold on\n\nscatter3(data(1),data(2),data(3))\n%scatter3(data,10,10)\n%axis on\ngrid" 
     editorLayout "100 M4x1[205 142 1080 733]" 
    } 
    } 
    junction { 
    id 4 
    position  [23.5747 49.5747 7] 
    chart 2 
    linkNode  [2 0 0] 
    subviewer 2 
    ssIdNumber 3 
    type  CONNECTIVE_JUNCTION 
    } 
    transition { 
    id 5 
    labelString "{eML_blk_kernel();}" 
    labelPosition [32.125 19.875 102.544 14.964] 
    fontSize  12 
    src { 
     intersection [0 0 1 0 23.5747 14.625 0 0] 
    } 
    dst { 
     id  4 
     intersection [7 0 -1 -1 23.5747 42.5747 0 0] 
    } 
    midPoint  [23.5747 24.9468] 
    chart 2 
    linkNode  [2 0 0] 
    dataLimits [23.575 23.575 14.625 34.575] 
    subviewer 2 
    drawStyle SMART 
    executionOrder 1 
    ssIdNumber 2 
    } 
    data { 
    id 6 
    ssIdNumber 4 
    name  "data" 
    linkNode  [2 0 0] 
    scope INPUT_DATA 
    machine 1 
    props { 
     array { 
size  "-1" 
     } 
     type { 
method SF_INHERITED_TYPE 
primitive SF_DOUBLE_TYPE 
     } 
     complexity  SF_COMPLEX_INHERITED 
    } 
    dataType  "Inherit: Same as Simulink" 
    } 
    instance { 
    id 7 
    name  "Embedded\nMATLAB Function" 
    machine 1 
    chart 2 
    } 
    target { 
    id 8 
    name  "sfun" 
    description "Default Simulink S-Function Target." 
    machine 1 
    linkNode  [1 0 0] 
    } 
} 

回答

1

我看不到創建套接字並在你的C代碼中綁定它。你確定你在127.0.0.1和80端口上有綁定嗎?你確定在80端口服務器上沒有運行Apache嗎?

http://www.linuxhowtos.org/C_C++/socket.htm

另外:

sock_err = send(csock, T, 3*sizeof(double), 0);

我不也見T在你的代碼,這可能不是問題,但它似乎並沒有成爲datasend指針mxArray。

+0

對不起,我剪了腳本。這裏是完整的一個:http://tinyurl.com/y9l6lqy – 2010-02-24 15:14:40

+0

我看到#define端口81,你綁定在這個端口,但在simulink模型(我不是專家),我看到端口80.也許你需要改變其中之一。 – 2010-02-25 10:31:10

+0

是的,我改變了它。當我在simulink上更改端口時,我在C++應用程序中做了它 – 2010-02-25 13:13:50