我有一个函数,它需要一个uint64_t
变量。通常我会做到这一点:将字符串转换为十六进制到十六进制
irsend.sendNEC(result.value);
result.value
是uint64_t中为十六进制(我认为)。如果我这样做:
String((uint32_t) results.value, HEX)
我得到这个:
FF02FD
如果我做的:
irsend.sendNEC(0x00FF02FD)
它完美的作品,是我想要的。
而不是抓住result.value
,我想写它作为一个字符串(因为这是我从GET请求获得)。如何将"FF02FD"
分成0x00FF02FD
?
编辑:
也许这使得它更易于理解:
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'。 –