メインコンテンツ

基底ファイルによるカスタマイズ

PROJECTMODULEMODMOD_PAR、および MOD_COMMON 設定などのカスタム A2L ファイル フラグメントを ASAP2 ファイルに追加できます。そのためには、次の方法を実行します。

基底クラスによる ASAP2 フィールドのカスタマイズ

  1. coder.asap2.UserCustomizeBase 関数を使用して、基底クラスからオブジェクトを作成します。

    obj = coder.asap2.UserCustomizeBase;

  2. オブジェクト フィールドを定義します。

    obj.HeaderComment = 'Header comment';
    obj.ModParComment = 'Mod Par comment';
    obj.ModCommonComment = 'Mod Common comment';
    obj.ASAP2FileName = 'File_name';
    obj.ByteOrder = 'BYTEORDER MSB_LAST';

  3. オブジェクトを関数に渡し、ASAP2 ファイルを生成します。

    coder.asap2.export(modelName,CustomizationObject=obj);

基底クラスからの派生による ASAP2 セクションのカスタマイズ

  1. 基底クラス coder.asap2.UserCustomizeBase から派生させます。派生ファイルは MATLAB パス上の任意の場所に配置できます。

  2. Header セクションを編集するには、writeHeader 関数を使用します。

  3. writeHardwareInterface 関数を使用して、ASAP2 ファイルの MOD_PAR フィールドと MOD_COMMON フィールドから構成されるハードウェア インターフェイス セクションを編集します。

  4. ASAP2 ファイルの先頭にテキストを追加するには、writeFileHead 関数を使用します。

  5. ASAP2 ファイルの末尾にテキストを追加するには、writeFileTail 関数を使用します。

    たとえば、派生クラス TestASAP2Customization を生成するコードは次のようになります。

    classdef TestASAP2Customization < coder.asap2.UserCustomizeBase
        %   Customization class for asap2 file
        methods
            function header = writeHeader(obj)
                header = sprintf(['  /begin HEADER ' 'test Header text'  '\n',...
                    'header test comments from user\n',...
                    '  /end HEADER']);
            end
    
            function hardwareInterface = writeHardwareInterface(obj)
                hardwareInterface = sprintf(['    /begin MOD_PAR "' 'UserDefined' '"\n',...
                    '      test comments from user\n',...
                    '    /end MOD_PAR\n\n',...
                    '    /begin MOD_COMMON "'  'UserDefined MOD_COMMON' '"\n',...
                    '      user defined values for MOD_COMMON\n',...
                    '     ' obj.ByteOrder '\n',...
                    '     /end MOD_COMMON']);
            end
            
            function fileTail = writeFileTail(obj)
                fileTail = sprintf(['/* This File can be used for ' ,...
                    'calibration .*/\n'...
                    '/* EOF ',obj.ASAP2FileName, '*/']);
            end
            
            function fileHeader = writeFileHead(obj)
                fileHeader = sprintf(['/******************************************\n',...
                    ' This is an a2l file which can be used for calibration ,...
                      with INCA or CANAPE\n',...
                    ' ************************************************************/'
                    ]);
            end
        end
    end

  6. 派生クラスからオブジェクトを作成します。たとえば、次のコマンドは TestASAP2Customization からオブジェクトを作成します。

    obj = TestASAP2Customization;

  7. ASAP2 ファイルを生成する関数にオブジェクトを渡します。

    coder.asap2.export(modelName,CustomizationObject=obj);

参考

| (Embedded Coder)

トピック