为了测试 Odoo 在实际业务中的实施,我们开了一家(马上要开第二家分店)猪肉店。由于预算有限,在实施 Odoo PoS 的时候采购了一台价格为 85 元的爱宝热敏打印机,结果连上 Odoo Posbox 以后发现无法识别。

由于该打印机是支持标准 ESC/POS 指令集的,所以肯定具备 Odoo 所需的软硬件要求。唯一的问题是 Odoo 无法识别该打印机,经过多番搜索,在 Github 上找到了解决方案:

https://github.com/odoo/odoo/issues/12485

故障的原因是因为这种国产打印机为了方便在打印机里内置了一个存储着 Windows 驱动程序的优盘,造成了其 USB 接口与标准的 EPSON TM-120 打印机不一致。

所以我们需要在 Odoo 的小票打印机驱动模块 hw_escpos 里做一些 workaround。

具体来说,就是修改 Odoo 的 hw_escpos 模块中的 printer.py 文件,将 Usb 类的 open() 方法修改为以下代码:

    def open(self):""" Search device on USB tree and set is as escpos device """self.device = usb.core.find(idVendor=self.idVendor, idProduct=self.idProduct)if self.device is None:raise NoDeviceError()try:try:cfg = self.device.get_active_configuration()for intf in cfg:if intf.bInterfaceNumber == self.interface:for ep in intf:if ep.bEndpointAddress < 0x80:self.out_ep = ep.bEndpointAddress   # change out_ep, calling sequence to be improved....if self.device.is_kernel_driver_active(intf.bInterfaceNumber):self.device.detach_kernel_driver(intf.bInterfaceNumber)except Error as e:print eself.device.detach_kernel_driver(self.interface)self.device.set_configuration()usb.util.claim_interface(self.device, self.interface)except usb.core.USBError as e:raise HandleDeviceError(e)

代码修改完毕,通过 SSH scp 之类的方式上传到 Posbox 里覆盖源文件再重启即可。

* 以上代码在 Odoo 9.0 和 Odoo 10.0 中测试通过。

转载于:https://www.cnblogs.com/oldrev/p/odoo-cheap-receipt-printer-workaround.html

让 Odoo POS 支持廉价小票打印机相关推荐

  1. pos机改造迷你打印机_小票打印机如何自动弹出钱箱

    商场里我们看到小票打印机打印的时候会自动弹出钱箱抽屉,如常见的pos58热敏纸小票机.但是默认小票机一般不会自动弹出钱箱,需要通过打印机驱动里的参数设置才能实现自动开钱箱. 首先确保小票机支持开钱箱的 ...

  2. java epson指令集_小票打印机指令集封装(支持EPSON指令)

    最近写了一些关于小票打印机的程序,不难,但是记录下来,作为足迹吧. 现在市场上的小票机基本都支持EPSON指令.指令集文档 对指令集进行了自己的封装,方便以后调用: package aheiziUti ...

  3. pos请求 微信小程序_微信小程序蓝牙连接小票打印机实例代码详解

    1.连接蓝牙 (第一次发表博客) 第一步打开蓝牙并搜索附近打印机设备// startSearch: function() { var that = this wx.openBluetoothAdapt ...

  4. android连接小票打印机,打印小票数据的两种模式

    为了开发android无线点餐系统,需要用到打印小票任务,根据网上查找资料所得,学习了两种方法,一种为通过tomcat服务连接服务器所连接的打印机打印,一种为直接连接网络打印机打印 一.通过tomca ...

  5. iOS开发之蓝牙/Socket链接小票打印机

    原文链接:https://www.jianshu.com/p/3f36ae67f5a4 來源:简书 本文转载至简书的一位作者,如有侵权,请及时告知 前言 之前公司有个面向商户的项目,需要连接商户打印机 ...

  6. 自动接单小票打印机是怎么实现的?

    总体分析 自动接单小票打印机由硬件设备和服务端构成: 硬件设备负责跟服务器联网并打印出服务器下发的订单,播放对应的语音提示 服务端负责处理打印机海量的并发连接(设备数量足够多的情况),通过接口和美团外 ...

  7. 重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印...

    重复造轮子系列--基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印 一.引言 桌面端系统经常需要对接各种硬件设备,比如扫描器.读卡器.打印机等. 这里介绍下桌面端 ...

  8. 京瓷1110打印自检页_如何修改小票打印机、厨房打印机IP地址

    如何修改小票打印机.厨房打印机IP地址 在商业收银活动中,小票打印机是必不可少的设备,不管超市收银系统还是餐饮收银系统,都是常用设备.易坏设备,刚开业时购买的成套的收银设备,商家一般都给设置好小票机, ...

  9. 微信小程序调用小票打印机实现打印订单

    随着微信小程序的出现,微信已经完全占据了我们的生活,智能化互联网时代的到来,带给我们的便利我想不用说大家都是深有体会,随着小程序的火爆,随之带动着用户对打印的需求,那么,微信小程序是如何对接打印机的呢 ...

最新文章

  1. PHP判断文件是否被引入的方法get_included_files
  2. 20年研发管理经验谈(五)
  3. Django 之Form
  4. hssfworkbook 设置自适应宽度_「CSS很简单」CSS 实现宽高等比自适应容器
  5. 云小课|想实现资源全自动备份?看完这篇秘籍,不再蕉绿~
  6. win10 php7安装,win10 安装 php7.3+apache2.4-Go语言中文社区
  7. 如何在 Mac 上打开或关闭专注模式?
  8. UE4 蓝图文档阅读笔记
  9. 购入计算机主机怎么入账,出纳记账软件更换主机电脑时如何备份附件资料?
  10. 哔哩哔哩中缓存的视频和音频如何合并
  11. stm32使用cubemx生成HAL库工程驱动mlx90614
  12. Dubbo线程池耗尽原理分析Thread pool is EXHAUSTED
  13. QT 删除QString空白字符
  14. 腾讯2018秋招正式笔试题目——拼凑硬币
  15. Android马甲包
  16. Linux Centos 7 实现java控制打印机打印文件**
  17. 状压dp、数位dp、概率dp
  18. 1-23 Socket编程
  19. javaScript基础知识点总结
  20. Scrum 项目6.0-展示Sprint回顾的过程及成果。

热门文章

  1. 查询数据库表数据量大小
  2. 区块链是什么意思?源中瑞开发BaaS平台促进企业数字转型升级
  3. Did China Eat America’s Jobs?
  4. 如何用PS制作一寸照片
  5. 使用ivx滑动时间轴制作动画效果的经验总结
  6. 加载glove-840B-300d.txt出现ValueError
  7. 了解Java8中的parallelStream
  8. odoo服务器设置说明
  9. 《中国程序化广告技术生态图》2015年三月号更新发布
  10. a later version of node.js is already installed. Setup will now exit.