启动BLE扫描的定义是:
<ul>
<li >
<a class="option-main href=''><?php print"$menu[1]";?></a>
<div>
<a class="option-main href="<?php print"$links[2]";?>"><?php print"$menu[2]";?>
<a class="option-main href="<?php print"$links[3]";?>">test submain</a>
</div>
< /li>
</ul>
<script type="text/javascript">
//1.1
var menus = document.getElementsByClassName("option-main");
//1
function m(event){
//1.2
var x = $(event.target);
console.log(x.text());
//2
let url = $(event.target).attr("href");
console.log(url);
//2.2
document.getElementById("section").innerHTML = url;
}
//2
document.addEventListener('click', m);
</script>
第二个参数似乎是扫描完成后的回调,对此我不太确定如何定义它。
我已经尝试过:
bool start(uint32_t duration, void (*scanCompleteCB)(BLEScanResults), bool is_continue = false);
并像这样使用它:
void OnScanResults(BLEScanResults scanResults)
{ }
但对其他人显而易见,那没有用。
请帮助我解密该签名
scanResults = scan->start(60, OnScanResults, true);
答案 0 :(得分:2)
您需要将&添加到OnScanResults
,因为:
void (*scanCompleteCB)(BLEScanResults)
是指向一个函数的指针,该函数采用BLEScanResults
,不返回任何内容,称为scanCompleteCB
所以您的通话应该是:
scanResults = scan->start(60, &OnScanResults, true);
就像指向int
的指针一样指向int
的地址
int pointedTo;
int* ptr = &pointedTo;