私はuint64_t
という変数をとる関数を持っています。通常、私はこれを行うだろう:文字列を16進数で16進数に変換する
irsend.sendNEC(result.value);
result.value
は、16進数としてuint64_tをある(と思います)。私はこれを行う場合:
String((uint32_t) results.value, HEX)
を私はこれを取得:
FF02FD
を私が行う場合:
irsend.sendNEC(0x00FF02FD)
それは完璧に動作し、私が欲しいものです。
result.value
を取得する代わりに、これを文字列として書きたいと思います(これはGETリクエストから取得するためです)。 0x00FF02FD
にはどのようにして"FF02FD"
を作成しますか?
EDIT:
多分これはそれが簡単に理解することができます:私はエラーを取得する場所
GET: http://192.168.1.125/code=FF02FD
//Arduino grabs the FF02FD by doing:
for (int i = 0; i < server.args(); i++) {
if (server.argName(i) == "code") {
String code = server.arg(i);
irsend.sendNEC(code);
}
}
は、これは次のとおりです。
no matching function for call to 'IRsend::sendNEC(String&)'
理由:
void sendNEC(uint64_t data, uint16_t nbits = NEC_BITS, uint16_t repeat = 0);
Cの回答かArduinoの回答が必要ですか? –
@EugeneSh。 Arduino。彼らは同じではないでしょうか? – MortenMoulder
ArduinoはCではありません.CとC++の狂った組み合わせ、そしていくつかの愚かなコンパイルルールです。 Cでは 'strtoll'を使います。 –