teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

プログラム中に余分な開き括弧が入っていたので修正した

2019/12/21 06:23

投稿

coco_bauer
coco_bauer

スコア6921

answer CHANGED
@@ -38,9 +38,9 @@
38
38
  string stringData = ""; //結果の文字列を入れる変数
39
39
   for (i=0; i<5, i++) {
40
40
  if(i<4){ //最初の4つは、データの数字とカンマを追加する
41
- stringData = stringData + _Floating_to_string(("%f",anArray[i])+","; }
41
+ stringData = stringData + _Floating_to_string("%f",anArray[i])+","; }
42
42
  else{ //最後は、データの数字と改行文字列を追加する
43
- stringData = stringData + _Floating_to_string(("%f",anArray[i])+"\r\n";}
43
+ stringData = stringData + _Floating_to_string("%f",anArray[i])+"\r\n";}
44
44
  }
45
45
  ```
46
46
 

1

質問者の返事を受けて、コード例を追加した。

2019/12/21 06:22

投稿

coco_bauer
coco_bauer

スコア6921

answer CHANGED
@@ -21,4 +21,27 @@
21
21
  なので、
22
22
  ・Arduino側で配列から文字列に変えて、raspberryに送る。
23
23
  ・raspberry側で文字列を受け取って、それを配列に戻す。
24
- という作業が必要なのです。
24
+ という作業が必要なのです。
25
+
26
+ =補足:配列のデータを文字列に変えるコード=
27
+
28
+ 回答でcsv形式の文字列と書いたのは、コンマ(",")でデータを区切った文字列で一群のデータ(1つの配列の内容)を表し、改行文字列("\r\n")でデータ群を区切るものを想定しています。
29
+ 例えば、
30
+ ```ここに言語を入力
31
+ float anArray[5] = {1.23, 2.38, -1.25, 4.12, 6.33};
32
+ ```
33
+ という配列は、
34
+ "1.23,2.38,-1.25,4.12,6.33\r\n"という文字列にします。
35
+
36
+ 配列から文字列を作るコードは、下記のような感じです。
37
+ ```ここに言語を入力
38
+ string stringData = ""; //結果の文字列を入れる変数
39
+  for (i=0; i<5, i++) {
40
+ if(i<4){ //最初の4つは、データの数字とカンマを追加する
41
+ stringData = stringData + _Floating_to_string(("%f",anArray[i])+","; }
42
+ else{ //最後は、データの数字と改行文字列を追加する
43
+ stringData = stringData + _Floating_to_string(("%f",anArray[i])+"\r\n";}
44
+ }
45
+ ```
46
+
47
+ raspberry側でこのような文字列を受信したら、改行文字の手前までを切り出して、それをカンマを区切り文字にしたsplit関数で配列にできます。