250ETS 总结
250ETS-MASTER项目功能
读取设备的电压,报警等参数
将电流电压等参数写入plc,通过上传excel,实现自动电流的写入
柱状图图标数据可视化
实时数据报表
csv文件实时写入保存
将实时数据存入数据库,在界面中管理数据,根据日期查询数据
同步光伏报警数据到csv,每分钟记录光伏的所有数据
重要功能实现逻辑读取设备的电压等参数(异步处理)五个参数数组,从plc从获取modbus地址读入
不管是读取还是写入,避免连续请求,在收到上一个请求的回复后发送下一个请求,在读写过程中都使用
123456789101112 QModbusDataUnit unit = readRequestQueue.dequeue(); if (auto *reply = modbusDevice->sendReadRequest(unit,1)) { /*异步处理 在绝大多数情况下,Modbus请求是异步的,也就是说你发出请求后,设备还没来得及返回数据,这时isFinished()返回false。*/ if (!reply->i ...
OPERATING SYSTEM
Computer Operating System导论cs -> hardware(io cpu…) software(application) data
interface(接口)hard - hard example: USBsoft - hard 操作系统通过instructions(指令集) example: printf() API接口
Virtual Machine操作系统向用户提供一个容易理解和使用的计算机(虚拟的),用户对这个计算机操作将被操作系统转换成对计算机硬件的操作
计算机系统组成CPU RAM DISK IOdevice …..
中断当所有事情发生时,CPU收到一个中断信号CPU停下来正在做的事,转而执行中断处理程序,执行完毕会回到之前被中断的地方继续执行操作系统是一个以中断驱动的系统
存储系统cpu负责将指令从内存读入,所以程序必须在内存中才能运行内存以字节为存储单位,每个字节都有一个地址与之对应,通过load/store指令可以访问指定地址的内存数据load:将内存数据装入寄存器(Register)store:将 ...
设计模式
设计模式简单工厂uml类图
优点:1.使用工厂方法可以让用户的代码和某个特定类的子类的代码解耦。2.工厂方法使用户不必知道它所使用的对象是怎样被创建的,只需知道该对象有哪些方法即可。
缺点1.不符合开闭原则2.职责过重3.不易扩展
代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869//创建接口public interface Shape { void draw();}public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); }}//接口实体类public class Squa ...
c plus plus
cpp知识补充01 - 侯捷 - C++面向对象高级开发(上下两部曲)
02 - 侯捷 - STL标准库和泛型编程
03 - 侯捷 - C++设计模式
04 - 侯捷 - C++新标准C++11&14
05 - 侯捷 - C++内存管理机制
06 - 侯捷 C++ Startup 揭密:C++ 程序的生前和死后
07、算法原理与实践(选修)
08、系统设计与实践(选修)
书籍:c++ primer effective modern c++ stl源码剖析
前言拿来当c++知识点补充库,顺序不是按照学习的顺序,是感觉哪个不会了,看书或视频补充知识点。
namespace定义命名空间12345678910111213//如果不引入 using namespace std;就需要我们显示引入,例如std::coutnamespace a{ int a = 10;}namespace b{int a = 20;namespace c{ int a = 30;}}使用命名空间12345678910111213void ...
GDB调试
GDB调试编译c程序gcc test.c -o test.out
生成debug info文件gcc -g test.c -o test.out
打断点b mainb path :行数rn 不进函数体单个执行s 进函数单个执行
看断点info b 看断点d 行数 删除断点c continue
bt 看函数调用栈
监视watch 变量
info r 看寄存器的值
查看代码或汇编layout src 查看代码layout asm 查看汇编
example1234567891011121314151617181920$ gdb 调试(gdb) break 10 //在第十行打断点Breakpoint 1 at 0x4005f4: file my_program.cpp, line 10. //第一个断点,在地址 0x4005f4处 file 后面显示的是打在哪个文件 哪一行(gdb) run Starting program: /path/to/my_program Breakpoint 1, main () at my_program.cpp:10 / ...
