我能够将一些蓝牙字符发送到我的Android设备
但在扫描我的手指并将finger.fingerID值发送到Android设备后,
只发送了一个特殊字符
所以我觉得这个值是Integer并尝试将其转换为字符,但仍然会出现一些错误
当我在这里运行我的代码时,我立即回到void setup();
add_filter( 'woocommerce_debug_tools', 'tools' );
/**
* Tools we add to WC
* @param array $tools
* @return array
*/
function tools( $tools ) {
$tools['delete_products'] = array(
'name' => __( 'Delete OutofStock Products','your-text-domain'),
'button' => __( 'Delete OutofStock products','your-text-domain' ),
'desc' => __( 'This tool will delete OutofStock .', 'your-text-domain' ),
'callback' => array( $this, 'delete_products' )
);
return $tools;
}
/**
* Delete OutofStock Products
*/
function delete_products() {
global $wpdb;
$wpdb->query( "DELETE p FROM {$wpdb->posts} p join {$wpdb->postmeta} pm on p.ID = pm.post_id WHERE p.post_type = 'product' and pm.meta_key='_stock_status' and pm.meta_value='outofstock'");
echo '<div class="updated"><p>' . sprintf( __( 'Out of stock Products Deleted', 'your-text-domain' ) ) . '</p></div>';
}
答案 0 :(得分:0)
您的toChar
缓冲区对于可能长度为5个字符的字符串来说太小了。你应该分配10个字节,足以容纳任何结果。
toCharArray
不会对字符串进行空终止,因此即使write()
单独接受以空字符结尾的字符串(它没有),它也会在字符串的末尾运行,寻找空值。 write()
接受单个字符或指向char数组的指针和要写入的字符数。
你不需要经历所有这些麻烦;只是打电话:
BT.print(finger.fingerID);
内置的Print
类将为您处理转换混乱。