java 枚举中使用字符串

需求 java 中 枚举中使用字符串 解决 public class HelloWorld { public static void main(String []args) { System.out.println("Hello World!"); System.out.println(Season.SPRING.toString()); System.out.println(Season.SPRING.value()); } } enum Season { SPRING("spring"), SUMMER("summer"), AUTUMN("autumn"), WINTER("winter"); public final String value; private Season(String value) { this.value = value; } public String value() { return this.value; } } 参考 Java灵活使用枚举表示一组字符串 在Java 使用字符串添加枚举

2023-11-05 · 1 min · 52 words · RamLife

QT QString 设置位数

需求 qt 如何设置 QString 中数值的小数位数 解决 位数,进制,补位 QString QString::arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const int num = 3; QString str = QString("%1") .arg(num, 4, 10, QChar('0')); // str == "0003" qDebug() << str; 小数位数 QString QString::number(double n, char format = 'g', int precision = 6) QString str = QString::number(32, 'f', 2); // str == "32.00" qDebug() << str; 参考 Qt QString中arg的使用,以及保留小数位数 QString设置小数点精度位数 Qt string 保留小数点后固定位数

2023-11-05 · 1 min · 77 words · RamLife

mysql 新建

需求 mysql 如何新建 解决 参考: mysql:mysql workbench 新建数据库、建表、添加表值及查询 MySQL Workbench 操作详解(史上最细) MySQL workbench8.0 CE基本用法(创建数据库、创建表、创建用户、设置用户权限、创建SQL语句脚本) 使用MySQL Workbench建立数据库,建立新的表,向表中添加数据 用MySQL Workbench创建外键及多表查询 用MySQL Workbench为一对多,多对多的关系创建外键关联 MySQL Workbench添加外键(物理模型),Database到EER MySQL中的约束:非空约束、主键约束、自动增长、唯一约束、外键约束 MySQL 外键的级联操作 mysql workbench 从model建库_MySQL WorkBench设计数据库的操作过程 如何利用MySQL Workbench创建Model EER 图 MySQL Workbench构建ER图(实体关系图) 【数据库】彻底理解外键的作用 参考

2023-11-04 · 1 min · 37 words · RamLife

QT log 输出到文件

需求 qt 如何把 log 输出到文件 解决 log 输出功能 log_qt.h #ifndef LOG_QT_H #define LOG_QT_H #include <QString> void LogOutputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg); #endif // LOG_QT_H log_qt.cpp #include "log/log_qt.h" #include <QString> #include <QMutex> #include <QDateTime> #include <QFile> void LogOutputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg) { // 加锁 static QMutex mutex; mutex.lock(); QString tag; switch(type) { case QtDebugMsg: tag = QString("Debug:"); break; case QtWarningMsg: tag = QString("Warning:"); break; case QtCriticalMsg: tag = QString("Critical:"); break; case QtFatalMsg: tag = QString("Fatal:"); break; default:break; } // 设置输出信息格式 // QString context_info = QString("File:(%1) Line:(%2)")....

2023-11-04 · 2 min · 248 words · RamLife

stm32u5 ospi 驱动 w25q128

需求 使用 STM32U575 主控芯片,使用 OSPI 驱动 W25Q128。 解决 代码如下: /* * flash.cpp * * Created on: Oct 31, 2023 * Author: Administrator */ #include "flash.h" #include "main.h" #include "stm32u5xx_hal_ospi.h" #include "octospi.h" #include "config.h" #define PIN_POWER_LOW HAL_GPIO_WritePin(Flash_Power_En_GPIO_Port, Flash_Power_En_Pin, GPIO_PIN_RESET) #define PIN_POWER_HIGH HAL_GPIO_WritePin(Flash_Power_En_GPIO_Port, Flash_Power_En_Pin, GPIO_PIN_SET) Flash flash{}; static void PowerPinControl(bool b) { if (b) { PIN_POWER_LOW; } else { PIN_POWER_HIGH; } } static void OspiCmdParam(const W25qxxHal::Command& cmd, OSPI_RegularCmdTypeDef& s_command) { s_command.OperationType = HAL_OSPI_OPTYPE_COMMON_CFG; s_command....

2023-11-01 · 5 min · 1037 words · RamLife

c++ find, find_if, find_if_not

需求 cpp 了解 find 相关函数 解决 find 的语法格式 InputIterator find (InputIterator first, InputIterator last, const T& val); //find() 函数作用于普通数组 char stl[] ="http://c.biancheng.net/stl/"; //调用 find() 查找第一个字符 'c' char * p = find(stl, stl + strlen(stl), 'c'); //判断是否查找成功 if (p != stl + strlen(stl)) { cout << p << endl; } //find() 函数作用于容器 std::vector<int> myvector{ 10,20,30,40,50 }; std::vector<int>::iterator it; it = find(myvector.begin(), myvector.end(), 30); if (it != myvector.end()) cout << "查找成功:" << *it; else cout << "查找失败"; find_if 可以指定查找规则。语法: InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred); //自定义一元谓词函数 bool mycomp(int i) { return ((i % 2) == 1); } //以函数对象的形式定义一个 find_if() 函数的查找规则 class mycomp2 { public: bool operator()(const int& i) { return ((i % 2) == 1); } }; int main() { vector<int> myvector{ 4,2,3,1,5 }; //调用 find_if() 函数,并以 IsOdd() 一元谓词函数作为查找规则 vector<int>::iterator it = find_if(myvector....

2023-10-31 · 1 min · 198 words · RamLife

c++ 重载运算符 <

需求 cpp 需要对 array 中的对象进行排列,使用 sort 的情况下,默认需要重载 <, 才能实现相关功能。 解决 选择的是,在结构体内部进行重载。 struct PatientDataHead { // increment id int32_t id; bool operator <(const PatientDataHead& head) const {return id < head.id;} }; std::array<PatientDataHead, kPatientNum> patient_data_heads_ {}; std::sort(patient_data_heads_.begin(), patient_data_heads_.end()); 参考 C++中自定义比较函数和重载运算符总结

2023-10-31 · 1 min · 38 words · RamLife

c++ 容器的 insert, emplace, erase, clear

需求 cpp 对容器的插入和删除操作 解决 insert & emplace insert 插入时,会先调用构造函数,再调用移动构造函数。 emplace 插入时,只调用构造函数。 emplace 直接在容器的指定位置调用构造函数,省略了移动构造函数,效率会更高一些,推荐使用 emplace. erase erase 一般是需要先获取迭代器,然后再删除。 vector<int>::iterator it; it = myvector.begin(); myvector.erase(it); // finding the position of the element in the vector int valueToBeDeleted = 3; auto it = find(vector.begin(), vector.end(), valueToBeDeleted); if (it != vector.end()) { vector.erase(it); } vector<int>::iterator it1, it2; it1 = myvector.begin(); it2 = myvector.end(); it2--; it2--; myvector.erase(it1, it2); clear 直接清空所有元素 参考 C++ STL vector插入元素(insert()和emplace())详解 vector erase() and clear() in C++

2023-10-29 · 1 min · 75 words · RamLife

stm32 cube ide 寄存器变量监控

需求 调试的时候,有时候会比较在意某个寄存器到底是什么时候被修改? 解决 这个其实可以参照 eclipse 正常的变量监控的方法去做。 找到寄存器对应的结构体变量,比如说我需要监视 uart1 的 TCIE 在 DMA 发送的时候,是什么时候被置位的。我就可以先找到 uart1 对应的结构体变量 huart1. 添加变量监控。 在 右侧的 expressions 中添加 huart1 添加断点。 在 huart1 -> instance -> CR1 上面右键,点击 add watch point 就可以新增一个监视这个寄存器的断点了。 参考 Eclipse开启变量监控 STM32CubeIDE查看变量 STM32 CubeIDE 仿真时怎样把变量添加到监视窗口。 记一次STM32中HardFault问题的调试解决(INVPC, LR 0xFFFFFFF5) STM32CubeIDE使用总结(三)——debug调试程序 关于STM32CubeIDE环境下的变量显示及监测 用Keil仿真调试查看变量内存地址被篡改的方法 keil debug时用断点管理抓取变量变化 eclipse中debug改变变量的值

2023-10-25 · 1 min · 49 words · RamLife

找到占用端口的进程

需求 调试时候,会碰到有些软件占用了特定的端口号,需要找出来并结束掉。 解决 查端口号获取 pid Netstat –ano | findstr “<端口号>” 最后一列为端口对应的 pid. 通过 pid 找进程 命令找进程 tasklist | findstr “<PID号>” 任务管理器找进程 任务管理器中点击 Details 标签页,然后在 PID 那一栏找到相关进程 参考 windows netstat 查看端口、进程占用 windows查看某个端口占用情况 Windows下如何查看某个端口被谁占用

2023-10-25 · 1 min · 32 words · RamLife