4

組み込みの Forth 用の VS Code 拡張機能を作成しています。Forth の性質上、デバッグはターゲット システムで行う必要があります。したがって、シリアルポート経由で通信する必要があります。

システムで使用可能なシリアル ポートを一覧表示する単純な拡張コマンドから始めました。残念ながら、VS Code 拡張機能はノード モジュールとして実行されますが、プリコンパイルされたコード (おそらく DLL) を使用できないため、この最初のステップは失敗しました。

エラー メッセージには、「拡張機能の有効化jvavruska.forth-studioに失敗しました: %1 は有効な Win32 アプリケーションではありません。」と表示されます。(serialport モジュールをインポートしないと消えます)

この制限を克服する方法はありますか?

以下は私のextension.jsです。NPM からインストールされた serialport@4.0.6 を使用します。ノードのローカル バージョンは 6.9.1 64 ビットです。

let vscode = require('vscode');
let serial = require('serialport');

function activate(context) {

    console.log('Congratulations, your extension "forth-studio" is now active!');
    let disposable = vscode.commands.registerCommand('extension.showCommPorts', function () {
        serial.list( onResult );
        function onResult( data ) {
            if( data.length === 0 ) {
                vscode.window.showInformationMessage('NO SERIAL PORTS AVAILABLE');
            }
            else { 
                let list = [] ;
                for( let port of data ) {
                    list.push( port.commName );
                }
                vscode.window.showInformationMessage('Serial ports: ', list.join(', '));
            }
        }
    });
    context.subscriptions.push(disposable);
}
exports.activate = activate;
function deactivate() {
}
exports.deactivate = deactivate;

私はVS Codeのドキュメントで何かを見つけようとしていましたが、ほとんどの場合、拡張が可能であると宣言されており、空のスタブ拡張を作成する方法についての簡単な説明を除いて、あまり説明していません. 迷っています。

4

0 に答える 0