views:

294

answers:

1

Hello,

I 'am triyng to build a link between my simulink model or just a m file and my c++ applicaton but i 'am having an issue. I don't really understand how matlab receive the data. and for simulink in which form should i send the data to the block ? I would like to send coordinates like xyz to matlab and with matlab scatter3 the stream of coordinates in real time. is it possible ?

here is the c++ extract code : (sorry comments are in french)

                /* 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 errors:

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 :

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]
  }
}

Sincerly, Hugo

A: 

I can't see creating socket and binding to it in your C code. Are you sure that you're binding on 127.0.0.1 and port 80? Are you sure that there's no some apache running on the server on port 80?

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

Also:

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

I don't also see T in your code, which is probably not the issue, but it doesn't seem to be the datasend pointer to mxArray.

Dmitry Yudakov
Sorry i had cut the script. here is the full one :http://tinyurl.com/y9l6lqy
Hugo Serrat
I see #define PORT 81, you bind on this port, but in simulink model (I'm not an expert in it) I see port 80. Perhaps you need to change one of them.
Dmitry Yudakov
Yes i Changed it.when i changed ports on simulink i did it in the c++ apps
Hugo Serrat
Does the server produce any log? Is the client able to connect? Does the server sends the data?
Dmitry Yudakov
there isn't any logs. but there is a debug console for simulink.the client connects to the server. and with the tcpip example .m from matlab i can get some data like hello. but i always get a timeout from the matlab client
Hugo Serrat
Do you get the timeout 10 seconds after the connect? I see Timeout "10" configured, but can't understand if these are seconds (SampleTime setting is not very clear to me). Have you tried increasing it? To 10000 for a test.I see that you send 3*sizeof(double) and expect [1 3] (which ought to mean 3 items I suppose) of type double, is it possible matlab double to be more than 8 bytes as it's in c++?
Dmitry Yudakov
something that i don't understand if i have to send the 3 double data seperatly or all in one time
Hugo Serrat
even the example of matlab instrument control fails to connect ! http://www.mathworks.com/access/helpdesk/help/toolbox/instrument/brbv41k-1.html
Hugo Serrat
It shouldn't matter if you send 3 x 8 bytes or 1 x 24 bytes, the client is blocked until 24 bytes received.If the client fails to connect, it's usually wrong port or wrong IP. Try setting port 81 in both server and client.
Dmitry Yudakov
I tried on the same computer with ip "localhost" and port 81:81 and 50000:50000 like in the example sending a sin wave but it doesn't work
Hugo Serrat