自制热敏打印机连接器始末(2)从跨平台方案开始

接上一篇,选择vue+electron之后,那就按electron-vue这个来。虽然能跑起来,但是代码上传到git以后,收到很多高危报警,https://github.com/futuremeng/electron-vue-escpos-bridge

尝试升级一下,结果发现因为版本已经差太多,需要花很多时间修,遂放弃。通过检索,发现有一个新的方案,https://nklayman.github.io/vue-cli-plugin-electron-builder/

于是,开启新的https://github.com/futuremeng/vue-electron-builder-escpos-printer-bridge

先用vue cli4创建一个新的项目,再vue add electron-builder。尝试运行yarn electron:serve 的时候提示Vue Devtools下载失败,需要翻墙跑成功一遍才行。

接下来分析打印机如何连接,通过检索发现escpos这个协议,据说是大部分打印机都支持的。那么是否可以用escpos直接驱动打印机呢,网上有树莓派的示范。

在寻找合适的escpos驱动的时候,发现了各种版本的,除了java、python,还有php和node,我决定选择node版的https://www.npmjs.com/package/escpos

但是,当然当我尝试引入到项目的时候,悲剧发生了。

ERROR Failed to compile with 1 errors 16:30:59

error in ./node_modules/escpos/statuses.js

Module parse failed: Unexpected token (7:7)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|
| class DeviceStatus {

byte = ”;
| bits = [];
| bitsAsc = [];

@ ./node_modules/escpos/index.js 12:17-38
@ ./node_modules/cache-loader/dist/cjs.js??ref–12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref–0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=script&lang=js&
@ ./src/App.vue?vue&type=script&lang=js&
@ ./src/App.vue
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://192.168.3.139:8080&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

见到是loader的问题,我就尝试配置babel-loader script-loader file-loader。都没有解决问题,实际上,我也不是很了解这些loader到底是干什么的。

在这个过程中,了解到CommonJS和ES6这些区别,还有,在网页版的vue项目和electron中还涉及到运行环境的问题,网页中没有办法直接调用node接口。

自制热敏打印机连接器始末(1)不想花钱,还想跨平台

前情回顾:做了一个网站,需要在网页上打印二维码,将热敏打印机连到电脑上,在网页上直接用print打印出来的二维码完全无法识别,应该是分辨率的问题,因为屏幕的分辨率和打印机的分辨率差太多。所以寻找解决方案,找到了c-lodop.com这个网站提供的中间件,需要付费,而且只有win版。

需求分析:现在重构网站,计划做成saas模式,在打印模块上,需要尽量摆脱第三方的束缚,所以构思如何自己实现。

网页到打印机,这中间是网页-浏览器-操作系统-usb-打印机,这样一个路径。经过确认,网页直接连打印机是不显示的,有一个比较接近的办法是通过chrome的app方案,但通用性不高,放弃,那就只剩下跟lodop一样的模式了,要么把整个网站构建成桌面程序,要么通过中间件来连打印机,网页再通过http或者socket驱动中间件。

当然,选择一个中间件是比较合适的,整个后台构建成桌面程序,没有必要,维护起来也太笨重。

接下来,就是选择跨平台的桌面程序方案来做这个中间件了。需要实现几个部分,一是http或者socket,二是打印机连接,中间的打印机连接管理。

当然,首选相对比较熟悉的vue+electron的方案。

城市家用电动三轮车应该是什么样的

1. 车身涂成校车风格,黄色为主 2. 后座加装安全带 3. 加装行车记录仪,当然这个可以自己装,如果能预装更好,好走线 4. 电池安装位设计位方便拆卸的,如果能内置一个小拖车更好,方便带到楼上充电 5. 后背可以参考汽车两厢改成掀背式,方便折叠后座后拉点东西,这样也可以作为取下电池的方式。

基于微信的社交导盲系统设计

在Arduino中文论坛上,看到不少关于导盲系统设计的帖子,多数集中在导盲杖或者类似设备的设计上,GPS只能提供粗略的定位功能(10米级别),精确定位(对盲人来说至少需要到10厘米级别,迈步还是不迈步的问题)是难题,于是我决定引入社交网络来解决这个问题。
20140505-181934.jpg

继续阅读“基于微信的社交导盲系统设计”

红外触发式高音驱狗器-汽车轮胎防狗尿设备

材料:

1. 防水盒一个,淘宝,6元;

2. Arduino Nano一块,或者更小的板子,只要一个输出,一个输入即可,淘宝,37.5元;

3. 人体红外感应模块一个,淘宝,5元;

4. 高音喇叭一个,淘宝,22元;

5. 12V电池,淘宝,暂时没找到配套的电池盒,自己焊一个问题不大,3元;

6. 螺丝若干。

合计73.5元。