($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('H:i');
$s = "";
return $s;
}
// form_date('start', '2018-07-05') 为空则当前日期
function form_date($name, $value = 0, $width = FALSE)
{
$style = '';
if (FALSE !== $width) {
is_numeric($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('Y-m-d');
$s = "";
return $s;
}
/**用法
*
* echo form_radio_yes_no('radio1', 0);
* echo form_checkbox('aaa', array('无', '有'), 0);
*
* echo form_radio_yes_no('aaa', 0);
* echo form_radio('aaa', array('无', '有'), 0);
* echo form_radio('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'b');
*
* echo form_select('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'a');
*/
?>组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?>return $r;
}
/**
* @param int $page 页数
* @param int $pagesize 每页显示数量
* @return mixed
*/
function link_find($page = 1, $pagesize = 100)
{
$arr = link__find($cond = array(), array('rank' => -1), $page, $pagesize);
return $arr;
}
/**
* @param $id
* @return bool 返回FALSE失败 TRUE成功
*/
function link_delete($id)
{
if (empty($id)) return FALSE;
$r = link__delete(array('id' => $id));
link_delete_cache();
return $r;
}
//--------------------------kv + cache--------------------------
/**
* @return mixed 返回全部友情链接
*/
function link_get($page = 1, $pagesize = 100)
{
$g_link = website_get('friends_link');
if (empty($g_link)) {
$g_link = link_find($page, $pagesize);
$g_link AND website_set('friends_link', $g_link);
}
return $g_link;
}
// delete kv and cache
function link_delete_cache()
{
website_set('friends_link', '');
return TRUE;
}
?> $v = implode(",", $v);
$temp[] = $v;
}
// 去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
// 再将拆开的数组重新组装
$output = array();
foreach ($temp as $k => $v) {
if ($stkeep) $k = $starr[$k];
if ($ndformat) {
$temparr = explode(",", $v);
foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval;
} else $output[$k] = explode(",", $v);
}
return $output;
}
// 合并二维数组 如重复 值以第一个数组值为准
function array2_merge($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
/*
* 对二维数组排序 两个数组必须有一个相同的键值
* $array1 需要排序数组
* $array2 按照该数组key排序
* */
function array2_sort_key($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array2 as $k => $v) {
if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) {
$arr[$v[$key]] = $array1[$v[$key]];
} else {
$arr[] = $v;
}
}
return $arr;
}
?>
TH75 V2 双模蓝牙5.2热插拔PCB-软件玩家 - 软件改变生活!
键盘使用说明索引(均为出厂默认值)
- 软件支持
- 一些常见问题解答(FAQ)
- 电池开关
- 首次使用测试步骤
- 蓝牙配对规则(重要)
- 蓝牙和USB切换
- 键盘默认层
- 默认触发层0的FN键配置的功能
- 默认功能层1配置的功能
-
- 蓝牙参数
- 蓝牙MAC地址管理
- 升级固件
- 可能出现的问题
软件支持
- LDN通用蓝牙双模固件和驱动使用帮助文档
- 功能参考链接
一些常见问题解答(FAQ)
电池开关
- 开关位置在R_SHIFT按键左侧
- 开关拨向上边(ON侧),开启电池供电(此时如果断开USB连接,可使用蓝牙功能)
- 开关拨向下边(OFF侧),关闭电池供电(此时如果断开USB连接,键盘彻底被关闭,不能使用蓝牙功能)
- 如下图所示:
首次使用测试步骤
切记不要插入USB插头(为了防止插反电池又插了USB,会烧坏,切记)- 按照要求插入电池插头
- 打开电池开关
- 使用手机或者具备蓝牙功能的电脑、PAD等设备,搜索键盘,应可以搜到
LDN_BLE5_KB_0的键盘设备 - 如果搜不到,则可能是电池接线接反,主机未开启蓝牙、曾经配对过等问题,请排除后,再试
注意:如果搜不到蓝牙设备的名字,请勿插入USB插头,否则如果电池接反,100%会烧坏PCB- 如果可以搜索到
LDN_BLE5_KB_0的设备,则表示此时电池插入方向是对的,此时可点击这个名字连接,则为蓝牙模式,也可插入USB插头,则自动切换到USB模式,蓝牙关闭,并开始充电
蓝牙配对规则(重要)
默认通道0,如果已经配对过,则不允许再次配对了(蓝牙搜索不到),想要再配对别的电脑,请切换通道,或者按FN+F5,删除了配对才能再次配对,否则搜索不到,或者能搜索到(苹果全家桶),但无法连接- 如果删除了电脑端的配对,则键盘也要一并删除配对(拔了USB线,确认开关是ON状态,按FN+ F5 ),此时才可以再次使用通道0配对
- 蓝牙可最多配对8台主机,默认只配置了3个,使用FN+F1、F2、F3切换,主机可以是台式机(具备蓝牙适配器),笔记本电脑、PAD,安卓手机或者苹果手机
一个通道仅允许配对一台主机,配对之后,就只能被主机连接,而不再允许配对了,请务必注意!重要:不要将多个通道配对到同一台主机,例:将通道0配对到主机A,又将通道1配对到主机A,这将导致问题,如果你已经这样做了,请删除主机的所有与本键盘的配对,然后按删除配对的快捷键(默认按FN+F5),删除键盘的所有配对信息,并重新配对即可恢复切换到一个已配对过的通道,则键盘仅允许配对的主机连接,其他的主机无法搜索到也无法配对和连接,从而保证了切换时不会随机连接曾经配对过的所有主机- 切换到一个未配对过的通道,则键盘允许任何主机连接
蓝牙和USB切换
插入USB插头,并且键盘被电脑识别后,自动关闭蓝牙,启用USB连接拔除USB插头,自动切换到蓝牙模式(如果电池开关是打开的),并尝试连接最后连接过的主机(如果已配对),否则开启广播模式,此时可配对插入USB插头,但如果仅供电(例如插入了充电器,充电宝),则蓝牙保持连接,不会关闭- 简而言之就是插入USB=自动切换为有线模式,拔掉USB,就是蓝牙模式(电池开关要打开)
- 手动切换蓝牙和USB模式:
- 先在《键盘配置》->自动切换工作模式这里选择
手动切换,点击应用,如下图位置:
- 然后按FN+F7,则可以在USB和蓝牙之间切换,按一次蓝牙模式,再按一次USB模式,如此循环
键盘默认层
-
功能层配置方法:点击跳转
-
默认功能层0为默认配列,可连接驱动后,在功能层0查看,如下图所示:
-
当鼠标悬停在某按键上时,会弹出tip提示,提示这个按键按下弹起所配置的功能,如下图所示:
-
默认功能层1为扩展功能,可连接驱动后,在功能层1查看,如下图所示:
-
触发层配置方法:点击跳转
-
默认触发层0有FN键的配置,可连接驱动后,在触发层0->FN键编辑器页面查看,如下图所示:
默认触发层0的FN键配置的功能
- 按键ID为77(R_WIN,空格右侧第2个键)
- 按下此按键,将功能层切换到层1,此时可使用层1的功能
- 弹起此按键,再次切换到功能层0,此时可使用层0的功能
注意:FN键会覆盖本身的R_WIN键的功能,因此使用测试软件是无法测出来的,在功能层页面,当按下FN键的时候,层指示器会同步显示,可以观察是否正常触发。如下图所示
默认功能层1配置的功能
默认的快捷键
- FN+F1=蓝牙切换到通道0(需在蓝牙模式按才有效)
- FN+F2=蓝牙切换到通道1(需在蓝牙模式按才有效)
- FN+F3=蓝牙切换到通道2(需在蓝牙模式按才有效)
- FN+F4=蓝牙立即进入深度休眠状态(蓝牙连接断开,键盘进入休眠状态)
- FN+F5=
(蓝牙模式有效,拔掉USB插头才是蓝牙模式,或者手动切换到蓝牙模式)删除蓝牙的所有配对,所有配对信息丢失,此时如果连接了主机,则连接断开,如要再次连接,请务必同时也删除主机的蓝牙配对,否则无法再次正常配对并使用 - FN+F6=
(蓝牙模式有效,拔掉USB插头才是蓝牙模式,或者手动切换到蓝牙模式)删除蓝牙的当前通道的配对,此时如果连接了主机,则连接断开,如要再次连接,请务必同时也删除主机的蓝牙配对,否则无法再次正常配对并使用 - FN+F7=切换USB和蓝牙模式,需要在[
键盘配置->自动切换工作模式]这里选择手动切换 - FN+F9=打开我的电脑(此电脑)
- FN+F10=打开默认的浏览器主页
- FN+F11=浏览器返回上一个页面
- FN+F12=浏览器进入下一个页面
- FN+F13=打开我的电脑(此电脑)
- FN+静音(右上角旋钮)=HOME键
- FN+INSERT=音量+
- FN+DELETE=音量-
- FN+END=播放/暂停
- FN+L_WIN=锁定/解锁L_WIN键
蓝牙参数
蓝牙休眠时间:指多长时间不使用键盘,键盘也没有任何任务可运行,则键盘会进入深度休眠状态的时间,单位是分钟,如果设置为0,则键盘不再休眠,如果设置为0,但连接已经断开,则键盘将在大约5分钟内仍未连接之后,自动进入深度休眠状态蓝牙信号发射强度:如果环境干扰较大,出现断联,延迟高,驱动连接出错等情况,可提高此设置的值,数字越大,信号越强,越不容易出现问题,但也越费电;也有可能是接收器被金属物体遮挡、蓝牙适配器的天线未安装或者被旁边的WIFI或者其他的2.4G频段的设备干扰等问题导致断联、延迟高,请根据情况自行排除。
蓝牙MAC地址管理
- 非必要情况下,请勿修改MAC地址
- USB模式,才允许修改MAC地址
- 如果HOST MAC地址显示不是全0,则表示这个通道已经配对过主机了,HOST MAC地址框内显示的就是配对的主机MAC地址
升级固件
可能出现的问题
蓝牙无法配对:可能这个通道曾经配对过,但未删除(可按FN+F5或者FN+F6删除),也可能将多个通道配对到同一台主机了,请删除主机的配对信息和键盘的配对信息,然后重新配对蓝牙无法被搜索到:电池开关未开启,当前使用的通道已经配对过别的主机了,电池插反了,电池没电了断联频繁,延迟高:
1、干扰或者位置摆放不正确,先把所有的其他无线设备关闭,比如无线鼠标(包括2.4G的)的接收器要拔掉,鼠标关闭,蓝牙音箱、耳机等关闭,如果是金属壳子的套件,请尽量让蓝牙接收器或者天线高于键盘的位置,再测试
2、可能是蓝牙适配器的天线未安装(主板自带蓝牙功能的台式机),也可能是蓝牙适配器版本太低,比如是4.2的,键盘要求蓝牙版本为5.0-5.2,请勿购买绿联蓝牙5.3的适配器,经过多人试验,无法兼容。经验上,INTEL的蓝牙适配器效果较好,比如AX系列,USB的绿巨能的真蓝牙5.0效果较好。
3、本PCB蓝牙模式使用了超低延迟技术,对无线环境要求高,干扰较多可能会导致断联的问题,别的键盘能稳定不断联的,不代表本PCB就一定能正常使用,请参照以上1和2的方法排除,或者远离干扰源后连接手机蓝牙测试是否断联,如果正常不断联,则不是PCB的问题,请务必注意!
本文标签:
蓝牙双模热插拔PCB
发表评论