matlab 関数と .mex ファイルを介して、差動駆動型モバイル ロボットと通信しようとしています。次のコマンドでロボットを正常に動かすことができます。
ref = serial('COM1');
set(ref,'BaudRate', 9600);
fopen(ref);
fprintf(ref,'C,1000,1000');
out = fscanf(ref)
fclose(ref)
delete(ref)
ただし、インクルードを作成した関数は機能しfprintf
ません。
function r = Move(ref,left,right)
fprintf(ref,'C,left,right');
out = fscanf(ref)
問題はコマンドで使用される別の文字列fprintf
(つまり、'C,1000,1000' は 'C,left,right' と等しくない) であることは認識していますが、この問題を解決できません。これが些細すぎる場合は申し訳ありません。
答えは次のとおりです(以下のコメントを参照):
function r = Move(ref,left,right)
fprintf(ref,sprintf('C,%d,%d', left, right));
out = fscanf(ref);