后端
碧落&凡尘
欢迎大家一起交流探讨!
展开
-
什么是RS485
RS-485标准定义了信号的电气特性和信号线的布局,它主要用于工业环境RS-485是一种串行通信标准,它是在1980年代由美国电子工业协会(EIA)制定的。1. **差分信号**:RS-485使用差分信号传输技术,即数据通过两根线进行传输,一根为正线(A),另一根为负线(B)。6. **电气特性**:RS-485定义了最大和最小的电压值,以及驱动器的输出驱动能力,这确保了不同制造商的设备能够互操作。5. **高速传输**:RS-485支持高达10Mbps的传输速率,但在实际应用中,通常使用的传输速率较低。原创 2024-03-04 17:25:50 · 481 阅读 · 0 评论 -
SPI是什么?
其核心是主设备控制时钟信号,以此来同步数据的传输。SPI协议允许一个主设备与多个从设备同时进行通信,通过从设备选择(SS或CS,Slave Select或Chip Select)信号来控制哪个从设备与主设备进行数据交换。SPI通信协议广泛应用于各种电子设备中,如MCU(微控制单元)、DSP(数字信号处理器)、FPGA(现场可编程门阵列)以及各种传感器等与外设(如存储器、ADC/DAC等)之间的数据交互。1. 简单:只需要少数几根线(至少三根,分别为时钟线、数据线和从设备选择线)就可以实现数据传输。原创 2024-03-04 17:21:34 · 298 阅读 · 0 评论 -
Centos6.5镜像换源
网上找到的各种镜像源文件基本上都取消了, 找到了这个能用的, 替换掉Base.repo即可。原创 2022-12-31 12:28:10 · 1042 阅读 · 5 评论 -
python安全eval执行一般计算
增加了对小于、大于、等于、不等于、且、或、非等判断的支持。2023/1/3更新。原创 2022-12-30 11:55:25 · 276 阅读 · 0 评论 -
python中的强弱引用
python中是否需要考虑自动引用计数的问题呢? 当你的代码里出现了对象间的循环引用, 该怎么跳出去这个怪圈?原创 2022-12-16 03:22:25 · 333 阅读 · 0 评论 -
django中的proxy
django通过proxy代理模式, 对数据库多组件的连接进行了统一处理, 具体的数据库相关操作, 统一封装在数据库的backend中。原创 2022-12-11 06:40:31 · 838 阅读 · 0 评论 -
python的隐式浅拷贝
python对列表进行切片时是对列表进行了复制的, 那是属于深复制还是浅复制呢?由demo中的代码可以得出,python在进行列表切片时是对列表进行了浅复制。原创 2022-12-07 15:28:47 · 175 阅读 · 0 评论 -
堆排序详解
堆排序其实就是利用二叉树进行排序, 只是它不用去显式构建一颗真正的树而已。原创 2022-11-24 16:03:28 · 159 阅读 · 0 评论 -
centos7中supervisor+django高版本部署sqlite3问题
升级教程后最重要的部分是配置sqlite3的LD_LIBRARY_PATH, 配置好之后可以从cmd中获取sqlite3的版本缺失为高版本的, 而在cmd中启动django也可以正常运行, 但是利用supervisor进行部署的时候, 会发现报错sqlite3版本好像又回到了旧版本。默认centos7的版本是3.7, 而django版本自2.x开始后就要求升级sqlite3为3.8+或者3.9+, 此时有几种解决办法。2. 升级sqlite3。1. 降级django。原创 2022-11-08 15:02:17 · 569 阅读 · 0 评论 -
python怎么比较优雅地停止线程
在之前停止线程有几种方式, 要么在内部的循环里加信号监听, 或者开子进程, 调用进程的停止方法去停止专门为了线程开的进程, 但是前者如果逻辑比较复杂, 循环中各部分可能都有不同的逻辑再跑, 可能信号监听会有错漏, 而后者, 进程本身就是一种资源消耗, 在开发板中, 多开几个进程, 也就资源耗尽了。同时附加一个blinker的信号通知, 可以在子线程中触发调用主线程中方法, 这样可以更方便的使用异步方式解耦主子线程中的逻辑。原创 2022-10-28 18:48:09 · 2093 阅读 · 0 评论 -
IEC61499的理解及相关应用
IEC61131-3是一套为了简化编程方法、减轻用户重复学习负担而生的针对PLC规范编程的一套通用标准, 在传统工业中, 为了适应需求的多样性, 基于PLC去构建基于输入-输出的程序, 已经能够实现相关的设备控制的需求, 但是针对当前数字化工业的需求, 单单实现设备控制已经完全无法满足新增的设备联动, 数据集成等需求, 因此在61131的基础上, 衍生了IEC61499标准。随着工业物联网的兴起, 从事相关产品开发的人员应该可以从实际业务中发现, 基于工业开发的一些特性。原创 2022-09-02 10:44:27 · 2676 阅读 · 0 评论 -
如何把代码上传到后建立的git仓库
【代码】如何把代码上传到后建立的git仓库。原创 2022-08-19 16:44:09 · 147 阅读 · 0 评论 -
django在非debug下不通过nginx访问静态文件
django在debug模式下,会基于静态文件生成对应的路由,默认会加到路由表内,但是非debug模式下不会自动添加,因为正式生产环境一般都是通过nginx+uwsgi或者其它方式去部署,静态文件通常是通过其他手段去映射路由,故默认非debug模式下不生成响应路由。1.settings.py里面加上如下配置。2.urls.py内加入如下配置。其他部分正常操作即可。...原创 2022-07-21 14:11:51 · 633 阅读 · 0 评论 -
PyQT5低分辨率下拉窗口边框缩放窗口消失
PyQt5低分辨率下缩放窗口注意事项原创 2022-06-15 12:06:29 · 339 阅读 · 0 评论 -
Golang基于消息订阅的信道
1. 实现了消息信道2. 信道可关闭, 发送消息前, 可通过获取信道状态决定发送到哪条信道通过这种方法, 可以实现消息在上云和存本地之间灵活切换, 如果网络或者其它原因导致不能上云, 可切换至本地存储, 待上云通道恢复后, 则可有本地重新发布至上云信道信道代码:package EventBusimport "sync"type DataEvent struct { Data interface{} Topic string}type DataChannel chan D原创 2022-05-20 19:06:36 · 258 阅读 · 0 评论 -
使用Cython打包成pyd文件
源代码如下所示,```setup.py```import sysarg_list = sys.argvf_name = arg_list[1]sys.argv.pop(1)from distutils.core import setupfrom Cython.Build import cythonizeprint(sys.argv, f_name)setup(ext_modules=cythonize(f_name))```su_main.py```import osi原创 2022-01-18 18:16:34 · 1060 阅读 · 0 评论 -
如果你不知道自己在干嘛,就不要去优化自己的if-else
a = 0b = 0c = 2d = 0e = 4if a: if b: print(1)elif c: if d: print(2)else: if e: print(3)if a and b: print(1)elif c and d: print(2)elif e: print(3)上面是代码, 两个if-else语句, 后者是前者的“优化”, 主要觉得上面写的太过繁冗, 可能.原创 2021-08-26 09:30:48 · 76 阅读 · 0 评论 -
实时域和非实时域
操作系统按实时性可分为两种, 一种为实时性操作系统, 一种为分实性操作系统。实时性操作系统: 接收到事件后, CPU会优先响应高优先级事务, 执行完高优先级事务后, 再返回执行之前的事件。分实性操作系统: 接收到事件后, 会先将事件推入到队列中, 然后根据优先级进行排序, 再根据优先级高低对任务进行切片, 之后根据CPU分配策略, 对事件任务进行切片, 之后才是CPU切换运行各事件。实时域和非实时域分离, 即为两种操作方式的分离, 如一些因为网络, 或者其他原因干预会导致的延时性操作, 一般放在原创 2021-07-07 10:37:07 · 325 阅读 · 0 评论 -
python中queue.Queue之task_done的理解
from threading import Threadimport timefrom queue import Queueq = Queue()def run(): while True: msg = q.get() print(msg) time.sleep(1) q.task_done()for i in range(10): q.put(5-i)for i in range(3): t = T.原创 2021-01-08 16:48:57 · 6708 阅读 · 1 评论 -
Win10下Python3+PyQt5如何使用QtDesigner
1. 首先安装好python3, 我使用的是python3.72. 执行cmd `py -3.7 -m pip install pyqt5`3. 执行cmd `pyuic5`,如果显示 `Error: one input ui-file must be specified`, 说明安装成功4. 安装pyqt5, 执行cmd `py -3.7 -m pip install pyqt5 pyqt5-tools`5. 找到python3位置, 将python3的位置下的Scripts加入到环境变量原创 2021-01-05 14:10:59 · 388 阅读 · 1 评论 -
python中for - else中的else存在的必要性
for i in range(3): if i == 1: break print(i)else: print("else")for i in range(3): if i > 0: continue print(i)else: print("else")首先请参见上一份代码, 先猜猜结果是啥, 如果认为一样的, 说明这篇博客还是有写的必要的, 如果认为不一样的, 说明你基础很牢固。答案如下:00.原创 2020-10-16 15:44:08 · 373 阅读 · 0 评论 -
Golang数据类型转换----16进制转整数,解析8位有符号16进制整数
s := "CB"n, err := strconv.ParseUint(s, 16, 8)if err != nil { panic(""Parse Error"")}n2 := uint8(n)f := int(*(*int8)(unsafe.Pointer(&n2)))fmt.Println(f)这是个16进制字符串转无符号8位整数后再转成有符号的8位整数...原创 2020-02-18 15:35:24 · 4181 阅读 · 0 评论 -
pyqt和go-qt打包
Go-qt首先安装msys64, 然后安装对应的mingw64编译器, 有静态和动态两种set QT_MSYS2=trueQT_MSYS2_STATIC = true(静态包)set GO111MODULE=offset CC=D:\msys64\mingw64\bin\gcc.exeset CGO_ENABLED=0qtdeploy build(test) desktop ./...原创 2020-01-02 19:17:13 · 586 阅读 · 0 评论 -
Drf框架的各种View以及ViewSet的继承关系
最近在频繁使用DjangoRestFramework, 发现里面前辈留下的代码各种写法都有。例如针对视图层, 有继承自APIView, 有继承自ViewSet的, 也有继承自GenericViewSet的,甚至还有继承ReadOnlyViewSet的,一点都不明白为什么要整得这么复杂, 整个人都看晕了。从视图层角度来说, Django是有自己的视图view的, 但是比较原始, 不支持d...原创 2019-04-10 11:49:28 · 990 阅读 · 0 评论 -
Python两种装饰器的写法
python中有装饰器一说, 普遍的装饰器是修饰函数的, 长这样:def fn(f): def func(): print('pre do any') f() print('after do any') return func@fndef doAny(): print('do any')# doAny = fn...原创 2019-04-09 11:05:02 · 442 阅读 · 0 评论 -
Docker学习笔记----镜像的使用
什么是镜像?如果把docker的容器比作对象的话, 那么docker的镜像就算是类, 它提供了容器的模板, 通过镜像,我们可以创建一系列的同类容器。当我们想要运行容器的时候,它会首先去本地镜像中去找相关镜像, 如果存在镜像则创建, 如果不存在docker会自动去docker的镜像仓库去下载, 默认是去Docker Hub公共镜像源下载。列出镜像列表docker images会列出本...原创 2019-04-12 16:56:20 · 153 阅读 · 0 评论 -
Docker学习笔记----容器的连接
当我们学会了使用镜像和容器后, 我们需要能够连接到容器, 比如我们在自己的服务器上部署了自己的应用, 我们怎么连接到这个应用呢?网络端口映射首先我们创建了一个python应用的容器, 然后启动它docker run -d -P training/webapp python app.pydocker run -d -p 5000:5000training/webapp python...原创 2019-04-12 19:04:56 · 345 阅读 · 0 评论 -
docker批量删除<none>镜像
如果我们启动容器后直接删除镜像会提示提示先停止容器, 所以我们需要先停止容器,然后再删除容器, 最后再删除镜像。可是在我们初学的时候回拉取大量镜像, 而有的时候为了效率又会强行终端, 再加上一些操作不当, 总是会一堆<none>镜像产生。之前都是手动一个个停止容器, 再一个个删除容器, 最后再删除镜像, 后来觉得太麻烦了, 所以上网查了查,三条命令搞定。所以linux基础要...原创 2019-04-17 19:35:37 · 588 阅读 · 0 评论 -
Gitlab执行pull拉取分支: remote: error: Out of memory, malloc failed
因为git默认拉取是有包限制大小的,设置以下就OK了!git config --global pack.windowMemory 1024m1024m是文件大小, 如果不足可以适当扩大, 但是这只是指标不治本。更好的方法可以参见他山之玉git config --global core.compression 0git clone --depth 1 项目地址...原创 2019-04-23 10:15:25 · 1290 阅读 · 0 评论 -
Dockerfile的常用知识
在私有化部署的时候我们会用到Docker, 使用docker的话里面有两样东西是常用的, 一样是images, 也就是镜像, 另一种是容器container,我们都知道容器是通过镜像创建的, 而镜像我们初学都是从公共端拉取的, 那么如果我想要一个不一样点的容器, 或者一个不一样的镜像该怎么做呢? 在docker里面有个叫做Dockerfile的东西, 通过它我们可...原创 2019-04-19 17:06:29 · 143 阅读 · 0 评论 -
Django的Mac安装使用
1.安装 1)从官网下载压缩包,然后解压到要安装的位置,比如/usr/local 2)sudo python3 -m pip install -e Django.x.x.x (python3 -m为安装到python3的模块导入路径中) 3)添加环境变量 3.1sudo vim ~/.bash_profile 在里面插...原创 2018-11-30 13:42:24 · 593 阅读 · 0 评论