分享

simulink.bus的定义和使用

 小斑书阁 2020-10-19
  1. Simulink.bus的定义

        BusDemo = Simulink.Bus;
        BusDemo.Description = '';
        BusDemo.DataScope = 'Exported';
        BusDemo.HeaderFile = '';
        BusDemo.Alignment = -1;
       
        busElement1 = Simulink.BusElement;
        busElement1.name = 'busElement1';
        busElement1.Complexity = 'real';
        busElement1.Dimensions = 1;
        busElement1.DataType = 'uint32';
        busElement1.Min = [];
        busElement1.Max = [];
        busElement1.DimensionsMode = 'Fixed';
        busElement1.SamplingMode = 'Sample based';
        busElement1.SampleTime = -1;
        busElement1.DocUnits = '';
        busElement1.Description = '';
       
        busElement2 = Simulink.BusElement;
        busElement2.name = 'busElement2';
        busElement2.Complexity = 'real';
        busElement2.Dimensions = 240;
        busElement2.DataType = 'uint8';
        busElement2.Min = [];
        busElement2.Max = [];
        busElement2.DimensionsMode = 'Fixed';
        busElement2.SamplingMode = 'Sample based';
        busElement2.SampleTime = -1;
        busElement2.DocUnits = '';
        busElement2.Description = '';
     
        BusDemo.Elements = [busElement1 busElement2];
        assignin( 'base', 'busDemo', BusDemo);

  2. 在s-function(c语言)中,注册simulink.bus 并设置端口类型。

        nameBusStr = “busDemo”;

        DTypeId dataTypeIdReg;
        ssRegisterTypeFromNamedObject(
            S,
            nameBusStr,
            &dataTypeIdReg);
        if (dataTypeIdReg == INVALID_DTYPE_ID)
                return;
       /*mexPrintf("nameBusStr:  %s\n",nameBusStr);*/   
        ssSetOutputPortDataType(S, 1, dataTypeIdReg );


        ssSetBusObjectName(S, 1, (void *)nameBusStr);
        ssSetBusOutputAsStruct(S, 1, 1);

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多