チュートリアル 2 インテル® Galileo ボードのカスタム機能を書く方法

ドキュメント

インストール & セットアップ

000006605

2022/03/18

ここまでは、セットアップとループ関数の内部にコードを書き込んできました。これは完全に問題ありません。しかし、プログラムに複雑なロジックがたくさんある場合はどうなりますか?コードをどのように整理しますか?

プログラミングには術があり、コードの入れ場所を知ることから始まります。

コーディングが面倒になる場合があります。オープンソース・コードを読んだことがあれば、次のようなコードが実行される場合があります。

  • コメントの不足: コメントを含めると、読んでいる人は誰でも何が起こっているのかを理解するのに役立ちます。
  • ロジックが整理されていない:コードを論理チャンクに整理すると、デバッグとコードのメンテナンスに役立ちます
  • 名前は誤解を招きます。変数名と関数名は、意図した内容を適切に説明する必要があります。
  • 明確さよりも鮮明さ: コードを簡単に読み取る必要があります。あなたが達成しようとしていることを暗号化しないようにしてください

 

プログラムは任意の言語で書き込み、整理できますが、プログラマーは適しています。コードを読んでいるのはあなただけであれば問題ありません。ただし、チームで作業している場合は、全員が従うガイドラインを提供することが重要です。ある日、あなたが書くコードを他の人が更新して読む必要があります。組織化されたコードを書き、一般的なコーディング手法を実践することで、同僚のエンジニアが美しいコードを書くのに役立ちます。

コーディング・スタイルの改善に関するヒントについては、 Google の C++ コーディング・スタイル・ガイド をご覧ください。

次の 2 種類の機能があります。

  • 命令を実行し、値を返しません (void 型)
  • 命令を実行し、値を返します (型には int、float、double が含まれます)

詳細については、 Arduino リファレンス・ページ のデータタイプ のセクションを参照してください。

機能タイプ

Type void:
void sayHello(){
Serial.println("Hello!");
}

Type integer:
int theAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything(){
return 42;
}

We can assign the value of functions that return something to variables:
int myAnswer = theAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything();

機能をもう少し便利にしたかったとしましょう。関数 パラメーター を使用して、機能の結果に影響を与える独自のデータを渡すことができます。例えば:
int add(int x, int y){
return x + y;
}

次のようなカスタムパラメーターを渡して、この関数を呼び出します。
int numbersAdded = add(2, 2); // The variable numbersAdded is equal to 4

関数を書く方法はさまざまです。すべては、あなたが何をしたいのかにかかるでしょう。カスタム関数を書き始めるのに適した場所は、機能署名を定義することです。

ファンクション署名
関数のコードを書く前に、何を達成しようとしているかを判断するのが最善です。

  • 値を返しますか?
  • いくつのパラメーターが (ある場合) 渡されますか?
  • この機能の目的は何ですか?

シリアルモニターにカスタムメッセージを出力するプログラムを書いています。このメッセージは天気についてコメントします (例えば、温度センサーに基づいている可能性があります)。

関数内のコードが具体的にどのように見えるかはまだ分かりませんが、何をしたいのか分かります。

  • カスタム・パラメーターを 2 つ取って連携 (または参加) します。
  • メッセージに追加される Double 型の番号を入力します。
  • 値を返さない
  • シリアルモニター出力では「外は 30 度」と表示されます。

インテルの署名は次のようになります。
void my外 (String*、文字列***、文字列(文字列)*、(2)「二重 deg」{}

この関数を呼び出すと、次のようになります。
ここでいう度は、温度センサーの読み取り値に基づく事前定義された変数になります。
my外("It is"、degrees、"outside");

挑戦
この機能のタスクを完了するためのコードをどのように記述しますか?