HSIAO-YANG CHEN 发布的文章

如果有很多= A1 + B1格式的文本字符串,则需要将这些文本字符串转换为真实公式并在工作表中计算它们的值,不幸的是,没有直接的方法可以在Excel中解决。 但是,在这里我可以为您介绍一些有趣的技巧。
以下简短的VBA代码可以帮助您解决将文本转换为公式的问题,具体步骤如下:
1.按住 ALT + F11 键,然后打开 Microsoft Visual Basic for Applications窗口.
2.点击 插页 > 模块,然后将以下代码粘贴到 模块窗口.
VBA代码:将文本字符串转换为公式

Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function

3.保存此代码并返回到您的工作表,输入此公式 = Eval(C1) 放入空白单元格(C1 包含要转换为公式的文本字符串单元格),请参见屏幕截图:
doc-convert-text--to-formula1.png
4.然后按 输入 键,然后选择单元格D1,将填充手柄拖到要应用此公式的范围。 看截图:
doc-convert-text--to-formula2.png

范例字符串转公式.xlsm

转载地址:https://zh-cn.extendoffice.com/documents/excel/1683-excel-convert-text-string-to-formula.html

原机的蓝牙设备4.0,不支持低功耗蓝牙外设,导致连接不上低功耗的蓝牙耳机。
修改BIOS白名单,完美支持AX210 mini-pcie无线网卡,实现wifi6e+BT5.2。
具体修改的设备ID如下,支持AX210(2725)、AR9285(002B)

EC10 7681 EC109581  ->  8680 2527 86802400
E414 6543 AA171106  ->  8C16 2B00 8C16AB30

对应的蓝牙也一并修改(蓝牙不改,验证不过)

5B10 65E0   ->  F30C 0030
CA04 0720  ->  8780 3200

编程器固件
E430_H0ETA0WW.zip

固定IP使用旁路的网关,自由分配的IP使用主路由网关。
1.把DHCP服务器,设置主路由的地址和对应的DNS。
微信图片_20231229010309.png
2.把需要从旁路由出去的设备设置成静态地址分配。
微信图片_20231229010501.png

--- package/network/services/dnsmasq/files/dnsmasq.init
+++ package/network/services/dnsmasq/files/dnsmasq.init
@@ -339,9 +339,9 @@
 
     if [ $DNSMASQ_DHCP_VER -eq 6 ]; then
         addrs="${ip:+,$ip}${hostid:+,[::$hostid]}"
-        xappend "--dhcp-host=$macs${duids:+,$duids}$hosttag$addrs$nametime"
+        xappend "--dhcp-host=set:ssr,$macs${duids:+,$duids}$hosttag$addrs$nametime"
     else
-        xappend "--dhcp-host=$macs$hosttag${ip:+,$ip}$nametime"
+        xappend "--dhcp-host=set:ssr,$macs$hosttag${ip:+,$ip}$nametime"
     fi
 }
 
@@ -951,6 +951,17 @@
     [ ! -d "$dnsmasqconfdir" ] && mkdir -p $dnsmasqconfdir
     xappend "--user=dnsmasq"
     xappend "--group=dnsmasq"
+
+    br_lan="$( ifconfig |grep "Bcast" | sed 's/.*addr://;s/Bcast.*//' )"
+    br_lan6="$( ifconfig |grep -A1 "Bcast" |grep inet6.*addr| sed 's/.*inet6.*addr://;s/\/.*//' )"
+    xappend "--dhcp-option=tag:ssr,option:router,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:dns-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:nis-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:ntp-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option6:dns-server,$br_lan6"
+    xappend "--dhcp-option=tag:ssr,option6:nis-server,$br_lan6"
+    xappend "--dhcp-option=tag:ssr,option6:sntp-server,$br_lan6"
+
     echo >> $CONFIGFILE_TMP
 
     config_get_bool enable_tftp "$cfg" enable_tftp 0


--- feeds/luci/modules/luci-base/po/zh-cn/base.po
+++ feeds/luci/modules/luci-base/po/zh-cn/base.po
@@ -838,8 +838,9 @@
 "\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
 "servers to clients."
 msgstr ""
-"设置 DHCP 的附加选项,例如设定 \"<code>6,192.168.2.1,192.168.2.2</code>\" 表"
-"示通告不同的 DNS 服务器给客户端。"
+"设置 DHCP 的附加选项,例如设定 \"<code>3,192.168.2.1</code>\" 表"
+"示指定客户端的网关地址;\"<code>6,210.2.4.8,192.168.2.1</code>\" 表"
+"示指定客户端的 DNS 服务器地址。"
 
 msgid "Delete"
 msgstr "删除"

补丁下载地址:02_fixed_router_dns_dnsmasq.zip

UBNT的稳定性一直不错,特别是3.6.1的版本,最新的4.0.4大数据传输后,第二天老死机,连接不上。此文就针对3.6.1进行讲解怎么分离固件和最终生成固件。

1、下载​SDK.UBNT.v3.6.1.4873.tar.bz2,进行解压

tar xvf​​SDK.UBNT.v3.6.1.4873.tar.bz2

2、进入​./apps/gpl/mkfwimage/src,运行make,生成mkfwimage、fwsplit。

​mkfwimage: 用于创建固件的格式,包含kernel、cramfs(rootfs)、RedBoot;

​fwsplit:用于分离固件,把固件进行逆向操作,得到固件各分区的内容。

​3、进入./kernel/linux-kernel-2.4/scripts/squashfs,运行make,生成mksquashfs。
mksquashfs:用于创建rootfs分区的格式文件;

但还缺少解压squashfs格式的程序,这个好办,只要apt-get install squashfs 就可以安装最新的squashfs程序包,用unsquashfs 命令,进行解压操作。

4、mkfwimage、fwsplit、mksquashfs、unsquashfs 四大工具都备齐,就可以按以下操作,进行固件的分离、解压、修改、再合并生成固件。

4.1、固件的分离

fwsplit NanoStation2-v3.6.1.build4866.bin

将得到NS2.ar2316.v3.6.1.4866.110330.1244.cramfs、NS2.ar2316.v3.6.1.4866.110330.1244.kernel、
​​​​NS2.ar2316.v3.6.1.4866.110330.1244.RedBoot和NS2.ar2316.v3.6.1.4866.110330.1244.txt 四个文件,其中前三个为分区文件,最后一个记录固件的分区位置。

4.2、​NS2.ar2316.v3.6.1.4866.110330.1244.cramfs就是rootfs系统,且为squashfs文件格式。用unsquashfs命令,进行解压,就可以看到root目录下的一切。

4.3、接下来就按自己的需求添加程序、修改配置,就不多说了。

4.4、把修改好的root​​目录,进行打包,参数参照./rootfs/create_image.sh:

​# finally make the image

${MKSQUASHFS} ${stagingdir} $img -be -all-root -noappend

chmod 755 $img

这样就生成了rootfs分区数据。

4.5、​修改NS2.ar2316.v3.6.1.4866.110330.1244.txt,把NS2.ar2316.v3.6.1.4866.110330.1244.cramfs
,替换成新生成的rootfs分区文件名。

4.6、合并​各分区,生成固件,参照./rootfs/Makefile:

$(MKFWIMAGE) -i $${FW_INFOFILE} -v $(VER_LS) -o ${VER_LS}$${LAYOUT_SUFFIX}.bin;​

​这里的$${FW_INFOFILE},指代的就是NS2.ar2316.v3.6.1.4866.110330.1244.txt配置文件;$(VER_LS),指代的是“NS2.ar2316.v3.6.1.4866.110330.1244”字符串,最后一个就是生成的固件名称。

PS:这样生成的固件头为“OPEN”字符串,可以对​​mkfwimage程序进行修改,把"OPEN"替换成“UBNT”,这样生成的固件头就和官方的更一致了。

最后送上修改好的固件:​https://pan.baidu.com/s/1miprlES