qrcode

痞子衡嵌入式:走进二维码(QR Code)的世界(1)- 引言

走远了吗. 提交于 2020-04-13 07:10:32
  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是 走进二维码(QR Code)的世界专题的引言 。   如今二维码可以说是深入走进大家的生活了,推送名片、扫码支付都离不开它,大家几乎每天都会和二维码打交道。虽然大家都知道二维码的各种应用,但很多人并不知道二维码的原理。做嵌入式这行的人一大特质就是喜欢研究各种技术本身,痞子衡早就对二维码技术感兴趣了。上期《 嵌入式半月刊 》的最后,痞子衡介绍了一个基于i.MXRT1050的扫码支付终端(QM50),这是一个二维码识别的应用。这个应用彻底激活了痞子衡对二维码的好奇心,所以接下来痞子衡打算带大家一起深入研究一下二维码技术,从零开始认识二维码,并最终在MCU上实现二维码生成与识别的设计。   如下图左边所示的矩形二维码是大家最常看到的类型,网上可以找到很多资料,也有很多成熟的开源库,痞子衡的最终目标不是研究这个已经没啥秘密可言的二维码,右边那个放射状的圆形二维码才是痞子衡更感兴趣的,这是微信于2017年推出的全新设计的小程序二维码,网上关于这种二维码的设计资料非常少,也没有开源库,所以痞子衡打算实现一下这种圆形二维码。   今天痞子衡就先给大家简单介绍一下QR Code基本知识以及这个专题后续的推进计划: 一、QR Code入门 1.1 二维码起源与种类   在介绍二维码之前,很有必要先提一下它的老大哥条形码

捕获未经测试的返回值

半腔热情 提交于 2020-04-12 16:01:55
前面翻译的一篇文章 《使用错误代码对象进行C++错误处理》 中提到,作者的灵感来源于另一篇文件《捕获未经测试的返回值》,于是再把这篇文章翻译过来,做为对比,也算是形成一个系列的文章。 前言 函数返回值通常用于表函数是否在没有错误的情况下执行。但是,很难确保调用者适当地使用这些信息(指返回值)。也许一些商业工具可以完成这项工作,但你并不总是能获得购买许可,特别是在小型项目中。你很有可能听到过这样说:“我相信你,你不会犯这样的错误。” 我在这里提出的想法,是受到几周前我们在项目中出现的一个错误的启发。它只出现在一个生产环境中,花了几天的时间才发现,它来自于一个特定环境的初始化例程的失败。实际上,调用此例程的代码没有测试其返回代码。 添加责任标志 在我的经验中(但不是很长时间),我经常看到函数返会是按类型分组成一个枚举。如图1所示,调用者可以或多或少忽略此类返回值。为了控制返回值发生了什么,我不直接返回这些值,而是返回类ErrorCode的实例。它包含两个成员变量:值(enValue_)指示函数错误代码,责任标志(PboResp_): class ErrorCode { private: ErrorCodeValue enValue_; bool * PboResp_; public: // some code } 责任标志的目的是表明是否需要对ErrorCode对象的值负责

捕获未经测试的返回值

余生长醉 提交于 2020-04-12 15:27:53
前面翻译的一篇文章 《使用错误代码对象进行C++错误处理》 中提到,作者的灵感来源于另一篇文件《捕获未经测试的返回值》,于是再把这篇文章翻译过来,做为对比,也算是形成一个系列的文章。 前言 函数返回值通常用于表函数是否在没有错误的情况下执行。但是,很难确保调用者适当地使用这些信息(指返回值)。也许一些商业工具可以完成这项工作,但你并不总是能获得购买许可,特别是在小型项目中。你很有可能听到过这样说:“我相信你,你不会犯这样的错误。” 我在这里提出的想法,是受到几周前我们在项目中出现的一个错误的启发。它只出现在一个生产环境中,花了几天的时间才发现,它来自于一个特定环境的初始化例程的失败。实际上,调用此例程的代码没有测试其返回代码。 添加责任标志 在我的经验中(但不是很长时间),我经常看到函数返会是按类型分组成一个枚举。如图1所示,调用者可以或多或少忽略此类返回值。为了控制返回值发生了什么,我不直接返回这些值,而是返回类ErrorCode的实例。它包含两个成员变量:值(enValue_)指示函数错误代码,责任标志(PboResp_): class ErrorCode { private: ErrorCodeValue enValue_; bool * PboResp_; public: // some code } 责任标志的目的是表明是否需要对ErrorCode对象的值负责

使用错误代码对象进行C++错误处理

时光怂恿深爱的人放手 提交于 2020-04-11 19:51:32
原文发表于 codeproject ,由本人翻译整理分享于此。 前言 我已经使用了本文描述的代码和机制近20年了,到目前为止,我还没有找到更好的方法来处理大型C++项目中的错误。最初的想法是从一篇文章( Dr Dobbs Journal 2000年)中摘录出来的。我已经添加了一些新内容进去,使它更容易在生产环境中使用。 写这篇文章的冲动是最近发表在 Andrzej的C++博客 。正如我们在本文后面将看到的那样,使用错误代码对象可以产生更清晰、更易于维护的代码。 背景 每个C++程序员都知道处理异常情况的传统方法有两种:第一种是从良好的旧C风格继承而来,返回错误代码,并希望调用者进行判断并采取适当的操作;第二种方法是抛出异常,并希望周围代码块捕获并处理该异常。 C++ FAQ 强烈支持第二种方法,认为它会使得代码更安全。 然而,使用异常也有其自身的缺点。代码变得更加复杂,用户必须知道所有可能引发的异常。这就是为什么旧的C++规范在函数声明中添加了“异常规范”。此外,异常会降低代码的效率。 错误代码对象被设计成类似于传统C错误代码的函数返回。最大的区别是,如果不进行判断,它们就会抛出异常。 让我们举个小例子,看看不同的实现会是什么样的。 首先,采用传统错误码的经典C方法: int my_sqrt (float& value) { if (value < 0) return -1;

网店系统H5版(五) 给商品图片添加二维码水印并下载

女生的网名这么多〃 提交于 2020-04-06 21:03:58
2020-4-5 21:32:41 星期日 网店需要提供分享并下载商品图片的功能, 这里使用jquery-qrcode + h5的canvas实现这个功能 并没有请求后端, 全是在客户端浏览器上执行的 1 function createShareImage(goodsId, goodsImgUrl) { 2 let urlGoodsDetail = location.origin + '/vstore_goodsinfo_' + goodsId; //商品详情页链接 3 let urlGoodsImg = location.origin + goodsImgUrl; //商品图片链接 4 5 let image = new Image(); 6 image.onload = function () { 7 // 创建画布 8 let canvasElement = document.getElementById('goodsCanvas'); // 已有或者通过 createElement 实时创建 9 let ctx = canvasElement.getContext('2d' ); 10 11 // 将图片画到canvas上去 12 let imageW = image.width; 13 let imageH = image.height; 14 let w =

《痞子衡嵌入式半月刊》 第 5 期

十年热恋 提交于 2020-04-06 06:04:24
痞子衡嵌入式半月刊: 第 5 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly ),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。 上期回顾 : 《痞子衡嵌入式半月刊: 第 4 期》 唠两句 今天是清明,也是全国哀悼日,为抗击新冠肺炎疫情斗争牺牲的烈士和逝世同胞表示深切哀悼! 本期共收录 2条资讯、3个项目、2个工具、1个RT产品,希望对你有帮助! 资讯类 1、美敦力公开 PB560 呼吸机完整设计 随着新冠疫情在全球持续扩散,上周以来,全世界都出现了呼吸机抢购大战。近日,美国的医疗器械龙头企业美敦力响应 FDA 的号召,宣布公开分享其旗下 Puritan Bennett 560(PB 560)呼吸机的设计规范,帮助行业参与者快速评估呼吸机制造方案,应对全球内的新冠肺炎疫情。 资料主页:Medtronic.com/openventilator 美敦力开源了 PB560 的所有的资料,包括源代码,原理图、PCB、BOM 清单、3D CAD 图等,呼吸机主控使用的是意法半导体 ST10F276。 2、赛普拉斯推出第六代 USB-C 控制器 ACG1F 不久前,赛普拉斯半导体推出了第六代 USB-C 控制器 ACG1F。ACG1F

生成二维码插件

為{幸葍}努か 提交于 2020-04-06 01:47:12
1、不依赖于其他js类库 源代码下载:https://github.com/davidshimjs/qrcodejs: 使用方法: step1:引用下插件 <script src="Scripts/qrcode.js"></script> step2: <script type="text/javascript"> $(function() { new QRCode(document.getElementById("qrcode"), { text:"http://m.lifevc.com/Special/Prolocutor?act=discountcustnamecpn&coupon=%E6%9D%8E%E5%B0%8F%E9%A3%9E867&uid=2170549", //二维码内容 width: 256, height: 256, typeNumber: 4, colorDark: "red", //条码的颜色 colorLight: "#fff" //条码背景色 }); }); </script> Html: <div id=" qrcode" style=" width:100px; height:100px; margin-top:15px;"> </div> //插件QRCode方法部分源码: QRCode = function(el, vOption) {

qrcode.js 动态生成二维码

做~自己de王妃 提交于 2020-04-04 08:38:04
用qrcode.js动态生成二维码图片非常简单,只需要引入qrcode.js即可使用,而且可以自定义图片大小、背景色等信息。 1、jsp代码---页面头部引入qrcode.js,jquery文件可选 <script type="text/javascript" src="../js/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="../js/qrcode.js"></script> <--创建一个用于放置二维码图片的div--> <div id="qrcode"> </div> 2、javascript代码 function makeQRcode(){     var qrcode = new QRCode(document.getElementById("qrcode"), {//这个是你创建的div的id    width : 200,    height : 200    });    qrcode.makeCode("这里放置你需要生成二维码的url字符串,如http://baidu.com"); } 以上就是简单实用,new QRCode时还可以添加其他参数 名称 默认值 说明 width 256 图像宽度 height 256 图像高度 typeNumber 4 colorDark "

如何在前端生成二维码

风流意气都作罢 提交于 2020-04-03 22:06:04
第一步: 引入:< script src= "qrcode.js"> </ script> 第二步: < div id= "qrcode"> </ div> 第三步: // 1.简单使用方式 : new QRCode( document.getElementById( 'qrcode'), 'http://www.baidu.com'); // 2.设置参数使用方式: var qrcode = new QRCode( 'qrcode', //document.getElementById('#qrcode'); { text: 'http://www.baidu.com ', width: 256, height: 256, colorDark : '#000000', colorLight : '#ffffff', correctLevel : QRCode.CorrectLevel.H }); // 3使用 API qrcode.clear(); qrcode.makeCode( 'new content'); 总结:参数说明: new QRCode(element, option) element-显示二维码的元素或该元素的 ID option参数配置 width256图像宽度height256图像高度typeNumber4colorDark"#000000

哈佛NLP组论文解读:基于隐变量的注意力模型 | 附开源代码

夙愿已清 提交于 2020-03-24 07:36:02
3 月,跳不动了?>>> 摘要 Attention 注意力模型在神经网络中被广泛应用。在已有的工作中,Attention 机制一般是决定性的而非随机变量。 我们提出了将 Attention 建模成隐变量,并应用 VAE 和 policy gradient 训练模型 。在不使用 KL annealing 等 trick 的情况下训练,在 IWSLT 14 German-English 上建立了新的 state-of-the-art。 ■ 论文 | Latent Alignment and Variational Attention ■ 链接 | https://www.paperweekly.site/papers/2120 ■ 源码 | https://github.com/harvardnlp/var-attn 背景 近年来很多文章将 VAE 应用到文本生成上,通过引入隐变量对文本中的一些不确定性(diversity,如文章风格主题、蕴含情感等)进行建模。 这样做往往会遇到一个常见的问题—— KL collapsing 。这个问题最早在 16 年时由 Bowman 指出 [1],其描述的现象是直接训练 VAE 得到的 KL 接近 0——这也就意味着近似后验和先验一样,使得隐变量被模型忽略 [5]。 Bowman 的解决办法是使用 KL annealing [1](KL 项的权重从