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

回答編集履歴

1

追記

2020/12/15 23:38

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -2,4 +2,28 @@
2
2
 
3
3
  String*を引数に取るsetValueは無いと言われています
4
4
 
5
- ポインタではなくそのまま渡すのでは?
5
+ ポインタではなくそのまま渡すのでは?
6
+
7
+ ---
8
+
9
+ 適当なことを言うもんじゃないですね。
10
+ ESP32のArduinoライブラリのコードを見てみます。(リファレンスより先に見つけられたので)
11
+
12
+ [arduino-esp32/BLECharacteristic.h at master · espressif/arduino-esp32](https://github.com/espressif/arduino-esp32/blob/master/libraries/BLE/src/BLECharacteristic.h)
13
+
14
+
15
+ ```C++
16
+ void setValue(uint8_t* data, size_t size);
17
+ void setValue(std::string value);
18
+ void setValue(uint16_t& data16);
19
+ void setValue(uint32_t& data32);
20
+ void setValue(int& data32);
21
+ void setValue(float& data32);
22
+ void setValue(double& data64);
23
+ ```
24
+
25
+ `pCharacteristic->setValue("Number -> Even");`の場合は`const char*`が型変換されて
26
+ `void setValue(std::string value);`
27
+ が使われます
28
+ 一方、`String`の場合は`std::string`への暗黙の変換をしてくれないので
29
+ `std::string`、ないしは`char*`への変換を明示的に書く必要があります