Frossky 发布的文章
菜鸟打印组件的云打印API
刚才想到, 菜鸟打印组件就是一个QZ Tray, 也能做到类似条码打印软件要做的事情, 那么,是不是能进行任意标签的打印?
菜鸟打印组件下载
云打印交互协议
菜鸟云打印常见问题
菜鸟模板编辑器
面单云打印(这个似乎和菜鸟打印没有关系)
在工业打印机Zebra 110xi4上发现一个问题:多行文本行间距设置无效,文字总是贴在一起。似乎可以通过菜鸟打印组件菜单->打印选项->对应打印机
中修改打印数据类型
为ZPL
或者其他类型来调整。还需要尝试后才知道。
行业发展我总结:无有兴乱败合衰
0无 → 1~10有 → 10~100 兴 → 100~1000 旺 → 1000~10000乱 → 10000~
阶段|无|有|兴|乱|败|合|衰
--|--
供应者数量|0|1~10|10~100|100~10000|10000~1000|1000~10|10~0
消费者数量|0|100~1K|1K~1M|1M~100M|100M~1000M|1000M|1000M~0
时间周期(年)|0|1Y|1Y|1Y|1Y|1Y|5Y
QZ tray + TSPL(DL888T)
当然是先用demo\sample.html连接上打印机.
TSPL语法参考
var config = qz.configs.create("\\PDS\Deli DL-888T");
var data = ['SIZE 60 mm,50 mm\r\n',
'GAP 3 mm,0\r\n',
'DIRECTION 1\r\n',
'CLS\r\n',
'TEXT 10,10, "3",0,1,1,"0001"\r\n',
'PRINT 1,1\r\n',
]
r = qz.print(config, data).then(function() {
console.log("Sent data to printer";
}).catch(e=>{console.log(e)})
data也可以用一整段发出,重要的是每一行后面要有转义字符\r\n
:
data = [`SIZE 60 mm,50 mm\r\n
GAP 3 mm,0\r\n
DIRECTION 1\r\n
CLS\r\n
TEXT 10,10, "3",0,1,1,"0001"\r\n
PRINT 1,1\r\n
`]
C语言debug assert
原文: assert宏实现中的注意点
实现:
#ifdef _DEBUG_
#define ASSERT(x) \
do { if (!(x)) { printf("ASSERT!file: %s, line: %s\r\n", __FILE__, __LINE__); } } while(0)
#define PRINT(x, y) printf(x, y)
#else
#define ASSERT(x) \
do { (void)sizeof(x); } while(0)
#define PRINT(x, y) (void)sizeof(x)
#endif
#ifdef POW2_ASSERTS_ENABLED
#define POW2_ASSERT(x) \
do { if (!(x)) { pow2::Assert::Fail(#x, __FILE__, __LINE__); } } while(0)
#else
#define POW2_ASSERT(x) \
do { (void)sizeof(x); } while(0)
#endif
altium designer文件pcbdoc和schdoc转kicad
这篇文章很详细, 不过我觉得比较好的方式是其中提到的altium2kicad这个Github项目.
需要安装perl, 不过如果装了git的话, git下似乎默认会装一个perl,使用where perl
命令看一下就知道了. 如果没有装, 建议装strawberry perl, 另一个版本ActivatePerl我在Win10上安装不上, 进度条到最后总是不能完成. 装完使用perl -v
可以查看是否装好.
altium2kicad里面主要用convertpcb.pl
转换当前目录下的所有.pcbdoc
, 转换后后缀名为.kicad_pcb
, 这是我有史以来看到的最长的后缀名和第一个带下划线的后缀名了... unpack.pl
解压缩.pcbdoc
和.schdoc
文件, convertschema.pl
转换原理图. 在转pcb或sch以前必须要先unpack. 我就把这两步做成bat文件了. 如a2kpcb.bat
:
perl D:\rsoft\altium2kicadmaster\unpack.pl
perl D:\rsoft\altium2kicadmaster\convertpcb.pl
有时候运行会提示缺少组件: you may need to install the Math::Geometry::Planar module
. perl上安装模块组件的方式是通过cpan
,不过在此之前最好先给cpan改一下镜像源, 找到CPAN/MyConfig.pm
文件, 修改其中的urllist
为163镜像:
'urllist' => [q[http://mirrors.163.com/cpan/]],
然后进行安装:
perl cpan Math::Geometry::Planar
Foxmail7.2如何调整存储目录
一、先安装Foxmail7.2,创建帐户;
二、在Foxmail7.2安装的根目录下找到文件: FMStorage.list;
三、用Notepad打开 FMStorage.list,可看到内容为:\Storage\zhangsan@A-iot.com\ ,直接修改为: D:\My_Foxmail\zhangsan@A-iot.com\;
四、保存文件,退出,启动Foxmail,恭喜,你的Foxmail邮件存储目录和安装目录已经分开了。
WPS的DISPIMG函数在Excel中无法显示的解决方式
WPS中显示图片使用了一个私有函数DISPIMG, 其使用形式类似于:
=DISPIMG("ID_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",1)
这个函数似乎是个在线函数,其ID是在线库中的图片地址.
转为Excel可显示的方式是选中DISPIMG所在的单元格(可选择多个), 点击右键,选择图片转为浮动, 保存即可.
这个操作不会增加Excel文件的大小, 所有图片仍然在线显示.
没有完美的转为离线嵌入图片的方式,一个能唬人的方式是: 在Excel中打开文件, 等图片从网上加载完毕后, 选择这些单元格, 复制, 然后粘贴为图片即可. 为什么说是"唬人", 因为粘贴为图片功能事实上是这些单元格的截图.
SKD/CKD/DKD
所谓“散件组装”,按照国际通行说法,简称KD(Knocked Down)。 一般而言,KD有三种形式: CKD 、 SKD 、 DKD 。 CKD (Complete Knocked Down)为全散件组装, SKD(Semi-Knocked Down) 则是半散件组装,一部分总成是现成的。 而更有甚者 DKD(Direct Knocked Down) 直接组装或者成品组装。
nohup 详解
nohup
nohup和&一起用. 前者是不挂断地运行, 后者是后台运行.
linux(CentOS)修复系统漏洞并升级
1.清理缓存信息
yum clean all
2.安装所有软件和系统更新
yum -y update
如果有漏洞需要重启,可以安全重启:
reboot
linux实时监控日志文件输出
sudo tail -f /var/log/apache2/access.log
#或者
sudo tailf /var/log/apache2/access.log
#或者
sudo tail -F /var/log/apache2/access.log
#同时监控多个日志文件
sudo multitail /var/log/apache2/access.log /var/log/apache2/error.log
标签打印软件
Nicelabel和BarTender是商业软件,都有免费版本,但免费版本都不能连接Excel。其中BarTender是得力标签打印机的出厂附带软件(同样不能连接Excel)。
另外尝试了DYMO达美提供的设计软件,然而只支持他们自家的打印机。
尝试了Avery Design & Print,并不好用。
QZ Tray和jsprintmanager是两个打印驱动, 后者在VSCODE中有支持.
DL888T似乎支持的打印协议是TSPL.
在这个TSC打印机厂家网站能下载针对某一款打印机的TSPL的协议, 但不知道是不是通用的.
通过wikipedia对Page_description_language的解释, 发现TSPL是PDL的一种, wiki说是台积电Tsmc创造的,但似乎是一个谬误, 应该是前面的TSC创造的.
altium designer/Keil之类的替代
我为什么将KiCad作为主力EDA软件
KiCad替代Altium Designer
eclipse+gcc-arm-none-eabi编译链替代Keil/IAR
gcc-arm-none-eabi工具链介绍和安装
win10-64bit搭建gcc-arm-none-eabi编译环境