|
全て
| カテゴリ未分類
| SH4
| AX-12
| シミュレータ
| 夏休み
| あまね
| onPC/sat.
| FPGA
| ロボットビジョン
| SEMB1200A
| 新しい機体
| SH7125
| onPC4th
| 蹴飛ばしても倒れないロボット
| フィールドウォーカー
| 新・新しい機体
| SH7786
| Linux
| Arduino
カテゴリ:Linux
サーボのトリム調整をおこなう場合、ターミナルにパラメータをいろいろ表示できると便利だな~って、 生まれて初めて、エスケープシーケンスを使ってみた。(^^;;; ターミナルっていうと、いつもダラダラ、情報を垂れ流すイメージだけど、 画面制御文字列を使ってカーソルを操作すると、それらしいウィンドウ画面になります。 調整したトリム情報は、ファイルに保存して、起動時に読み込むことができます。 エスケープシーケンスの参考にしたのはここ。 コードはこんな感じ。 #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { char buf[40],*cp; int a,b; int iPOS[25]; int i; FILE *file; file = fopen("iPOS.txt","r"); if (file == NULL) { printf("Can't open file:%s\n","test.txt"); } for ( i = 2; i < 25; i++ ) { fscanf(file,"%d\n",&iPOS[i]); } fclose(file); printf("\n*** Servo Trimer ***\n\n\n\n\n\n\n"); while(1) { printf("\033[5A"); // カーソルを上に for ( i = 2; i < 14; i++ ) { printf("No.%2d ",i); } printf("\n"); for ( i = 2; i < 14; i++ ) { printf("%5d ",iPOS[i]); } printf("\n"); for ( i = 14; i < 25; i++ ) { printf("No.%2d ",i); } printf("\n"); for ( i = 14; i < 25; i++ ) { printf("%5d ",iPOS[i]); } printf("\n"); printf("\033[K"); // カーソルから行末までクリア fgets(buf, sizeof(buf), stdin); if ( buf[0] == 'q' ) break; a = (int)(strtol(buf, &cp,0)); b = (int)(strtol(cp, &cp,0)); iPOS[a] = b; } file = fopen("iPOS.txt","w"); if (file == NULL) { printf("Can't open file:%s\n","test.txt"); } for ( i = 2; i < 25; i++ ) { fprintf(file,"%d\n",iPOS[i]); } fclose(file); return 0;
} お気に入りの記事を「いいね!」で応援しよう
最終更新日
2019年02月13日 21時52分12秒
[Linux] カテゴリの最新記事
|
|