- 博客(34)
- 资源 (3)
- 收藏
- 关注
原创 UPX 压缩可执行文件的参数说明
UPX(Ultimate Packer for eXecutables)是一款流行的可执行文件压缩工具,它能对多种可执行文件格式进行压缩,压缩后的文件在运行时会自动解压,且不会损失原有功能。在使用 UPX 时,你可以根据自身需求选择合适的参数组合。例如,若追求快速压缩,可使用 -1 或 --fast;若想获得更高的压缩率,则可使用 -9、–best 或 --ultra-brute。基本压缩与解压缩参数。
2025-03-25 09:03:54
358
原创 记录linux系统蓝牙广播调试遇到的问题
设备上没有这个 /sys/kernel/debug/bluetooth/hci0/ 目录,导致广播间隔设置没生效,默认值是2048,也就是两秒一次广播包,间隔太长导致没扫描到的概率降低很多,除非是用电脑一直扫描的就可以找到设备;一个广播包数据里面同时有两个type的数据,正常的话一个广播包这个字段的数据只有一个才对;当然这个重复字段的问题我没解决,可能需要驱动一起分析了,但是我的应用场景是产测工具能扫描出来就行;TYPE:0x01 VALUE:0x06 (正常手机能显示出来的广播包只有这个)
2023-08-04 11:51:58
630
原创 linux查找系统所有文件的指定内容
xargs grep test* : 是查找find路径的文件内的内容 “test*”find / : 是搜索所有文件。
2023-01-17 19:49:37
312
原创 fopen文件内容及时更新到磁盘
fopen、fread、fwrite、fclose、fflush、fileno、fsync在 fopen 后操作文件的数据,被直接断电后没有直接写到磁盘,需要同步下操作顺序流程如下fopenfwritefflush // 同步内存到内核缓存fsync(fileno(fp)) // 同步内核缓存到磁盘fclose这样断电就不怕没及时写入磁盘了...
2022-04-28 11:19:11
1214
原创 docker去运行docker
docker运行系统监控时,需要加上 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker 参数,在容器内也可以使用 docker这样可以看到宿主机会被 docker 里调用的新 docker
2022-02-21 10:16:30
463
原创 ros2官方文档地址
https://docs.ros.org/en/foxy/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.html
2022-02-07 10:09:35
1615
原创 去中心化通信简易方案
1、基于udp2、每个节点有一个在线节点管理表3、新节点上线发广播,已经在线的节点收到广播后已广播回应并将新节点加到管理表,上线包和回应包是不同的新节点收到回应包,将回应节点记录到管理表4、下线节点发广播包,通知其他节点,其他节点收到后将下线节点从管理表去掉,不用回应5、不同节点的通信,可以通过管理表的节点信息和对应节点端对端通信广播包需要携带的内容:节点名称ip端口...
2022-01-26 16:11:00
12129
原创 ROS2-galactic安装步骤
一、安装步骤1、sudo apt update && sudo apt install curl gnupg lsb-release2、wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key这一步可能是失败,原因是拒绝连接;根据刚刚拒绝连接的ip地址,在/etc/hosts文件中加入下面一行:185.199.109.133 raw.githubusercontent.com185.199.109.13
2022-01-26 15:46:06
2968
原创 c++写状态机
用c++的状态模式写状态机状态是固定的,事件可扩展由事件触发,然后根据状态有不同的处理状态表空闲对接中对接成功对接失败补给中补给成功补给失败停止补给中停止补给成功停止补给失败断开对接中对接事件断开对接事件补给事件停止补给事件代码fsm.h#ifndef FSM_H#define FSM_H#include <unordered_map
2022-01-18 16:08:32
4278
原创 c++ map使用
int mian(){ // 初始化 std::map<std::string, std::vector<int>> a = {{"pos", {}}, {"zhi", {}}}; std::map<std::string, std::vector<int>>::iterator it = a.find("pos"); std::c
2022-01-18 15:42:08
389
原创 ubuntu 20.04 工控机定时断开网卡问题
机器人上的工控机,新装了ubuntu 20的系统,发现定时网卡会关闭,导致 ssh 链接断开;查看工控机网口灯断开时是熄灭的;打印系统日志查看:cat /var/log/syslog发现网卡设备管理休眠了;再次确认,输入指令:systemctl status sleep.target确认是休眠导致,禁止系统休眠就行。输入指令:sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
2021-11-12 14:21:30
2048
原创 linux 指令记录
c++filt 还原函数名c++filt ZN36rosidl_typesupport_introspection_cpp31get_message_type_support_handleIN22unique_identifier_msgs3msg5UUID_ISaIvEEEEEPK29rosidl_message_type_support_tvrosidl_message_type_support_t const* rosidl_typesupport_introspection_cpp::get_m
2021-11-05 18:11:22
799
原创 ros2 action导致编译问题
1、我的消息包里有.action文件;2、我的工程包里没有用到.action文件,却导致编译不过;报错内容:__rosidl_typesupport_cpp.so: undefined reference to `rosidl_service_type_support_t const* rosidl_typesupport_cpp::get_service_type_support_handle<action_msgs::srv::CancelGoal>()'/usr/bin/ld: _
2021-11-05 10:41:25
1696
原创 yaml-cpp 遍历参数
配置文件mode_list: 1: mode1 2: mode2 3: mode3 4: mode4利用迭代器去遍历YAML::Node yaml_config = YAML::LoadFile("/tmp/a.yaml"); if (yaml_config["mode_list"].size() <= 0) { LOG_ERROR("monitor.yaml mode_list no data"); return -1; }
2021-10-26 17:11:25
1778
原创 ros2发布sensor_msgs::msg::Range消息
先定义 Publisher 智能指针rclcpp::Publisher<sensor_msgs::msg::Range>::SharedPtr m_ultrasonic_pub; 初始化订阅 Publisher 主题m_ultrasonic_pub = node->create_publisher<sensor_msgs::msg::Range>("ult", 100);Publisher 发布填写参数void ultrasonic_publish(float
2021-10-26 09:50:39
1588
原创 ros2在msg、srv、action中定义时间戳和赋值
ROS1ROS1是直接用Time类型赋值:ros::Time now = ros::Time::now();ROS2现在ROS2变成了builtin_interfaces/msg/Time类型赋值:builtin_interfaces::msg::Time now = node->get_clock()->now();node是节点
2021-10-26 09:38:50
5388
6
原创 ros2 topic publish指令
需要注意的是,数据参数的填写,需要用 “{}” 括起来,参数的:后要空一格ros2 topic pub --once /msg/audio_play interfaces/msg/AudioPlay "{level: 0,play_type: 0,volume: 0}"/msg/audio_play topic主题interfaces/msg/AudioPlay 消息类型文件–once 是一个可选参数,意思是“发布一条消息然后退出”。...
2021-09-27 15:05:39
2383
1
原创 linux 播放音频
1、指令播放音频我我使用的是 aplay 指令,是 alsa 的一个指令,也就是说需要先安装有 alsa,由于我 linux 本身就带有,所以我这边就没放安装过程了。2、查机器设备sudo aplay -l有的用户权限不够,不加 sudo 会发现没有设备;这里记下音响设备名称sudo aplay -L这里的指令参数不一样,前一个是小写 l,这里是大写的 L;这里会打印很多,找到 hw 的部分,设备名和前面的对的上,就说明设备被识别是正常的;3、播放音频sudo aplay -D hw
2021-09-15 14:48:32
6294
原创 ROS2 使用 backtrace 函数无效猜想
1、使用 backtrace 和 backtrace_symbols 打印的栈函数地址,用 addr2line 指令解析无效,已确定编译时加了 -g -ggdb 的 Debug 模式。2、使用 ROS2 进入 GDB 调试,可以正常打印栈的函数信息。说明 backtrace 函数在系统环境是起作用,没有阉割和优化的。(ros2 进入 gdb 模式和 ros1 一样,可以参考:ros 加-g编译或debug编译)3、单独运行 ROS2 编译好的执行文件,不用ros2 run 去执行,发现缺少库依赖,
2021-09-14 11:37:06
271
原创 守护进程脚本
守护进程读取配置文件的参数,根据参数去守护对应的进程,参数的设置可以由对应进程的启动脚本去更新参数;守护脚本内容#!/bin/bashconf=./daemon.conf #配置文件if [ ! -d "/opt/ros/log/daemon/" ]; then mkdir /opt/ros/log/daemon/filog=/opt/ros/log/daemon/daemon-`date "+%Y-%m-%d"`.logapp_num=0 #记录进程数ap
2021-06-22 16:48:25
1173
原创 linux 多进程开机脚本
此处参考linux本身的开机脚本模式会自动开启同目录下 S+两位数字的(S01-zhi) 脚本,并带 start 参数开启;将各进程的开机脚本按 Sxx 的格式命名即可;#!/bin/bash# Start all init scripts in path# executing them in numerical order.#path=`pwd`for i in $path/S??* ;do # Ignore dangling symlinks (if any). [
2021-06-21 16:01:03
240
原创 linux 时间校准
linux 设备有对时需求时,可用的操作一、采用指令,适合脚本方式1、ntpdatentpdate ntp.aliyun.com此指令如果设备没网或者服务器没响应,超时等待相对较久;在代码用 system 调用时,没有结果返回,无法知道成功还是失败;2、sntpsntp -S ntp.aliyun.com此指令超时响应会比 ntpdate 短;在代码用 system 调用会有结果返回,0为成功,其他值为失败;二、c语言代码实现,适合应用方式#include <stdio.h&
2021-06-16 14:22:57
796
原创 rm 删除目录内所有文件报错
-bash: /bin/rm: Argument list too long原因是目录内文件太多, 超出shell 参数个数限制所致解决方法ls | xargs -n 10 rm -fr ls结合 ls 10个文件一组删除
2021-06-04 09:46:11
160
原创 ros 加-g编译或debug编译
ros 加-g编译或debug编译编译方式1.命令行catkin_make2.直接修改CMakelist.txtGDB执行1.rosrun执行2.修改ROS launch文件编译方式1.命令行catkin_make在输入catkin_make时加上一个参数:catkin_make -DCMAKE_BUILD_TYPE=Debug2.直接修改CMakelist.txt添加以下代码SET(CMAKE_BUILD_TYPE "Debug")SET(CMAKE_CXX_FLAGS_DEBUG "$
2021-05-25 10:13:26
2117
1
原创 Linux给指定用户加sudo权限
Linux给指定用户加sudo权限1、在 /etc/gshadow 文件的 sudo 后加上指定的用户sudo:*::aaa,bbb2、在 /etc/group 文件的 sudo 后加上指定的用户sudo:x:27:aaa,bbb两个文件都改完即可生效
2021-02-03 12:11:20
229
1
原创 QT的 QLineEdit 屏蔽输入法
QT上 QLineEdit 屏蔽输入法在屏蔽输入法的QLineEdit上调用setAttribute(Qt::WA_InputMethodEnabled, false)这是Qt官方给出的是否启用输入法的属性, 在Assistant中说的很清楚 ui->timeoutEdit->setAttribute(Qt::WA_InputMethodEnabled, false);...
2021-02-02 10:49:09
1378
原创 curl库交叉编译
curl库交叉编译1、下载源码 我下的版本是curl-7.65.32、解压压缩包,进入源码文件夹3、配置编译文件 CPPFLAGS="-I/home/datalink/hhd/chenzhiwei/wifi/library/src/openssl-1.1.1g/zhi/ -I/home/datalink/hhd/chenzhiwei/wifi/library/src/openssl-1.1.1g/zhi/include" \ LDFLAGS="-Wl,-rpath,/home/datalin
2020-11-11 13:52:10
618
原创 iperf 灌包报错
iperf 灌包报错linux开发板做iperf 服务器,windows 10 做客户端linux服务器端iperf -swin客户端.\iperf3.exe -c x.x.x.xiperf3: error - received an unknown control message会报如上错误错误原因:linux的iperf版本是2.0.13;win的iperf版本是3.1.3;版本不一致导致的,重新从官网下了个win的iperf,版本是2.0.9,再灌包正常。.\iperf3.exe
2020-10-14 11:50:02
4955
2
原创 linux 网络命令
IP 命令清除usb0网卡的IPip addr flush dev usb0删除网桥 br-lanip link delete br-laniptables打开nat功能echo 1 > /proc/sys/net/ipv4/ip_forward清除nat规则iptables -t nat -F端口转发tcp 目标端口为16767,转发至192.168.234.167:16767iptables -t nat -A PREROUTING -p tcp --dport 16767
2020-08-13 17:48:21
370
原创 内存泄漏工具valgrind
valgrind使用交叉编译sudo apt-get install automake #系统无automake则安装一下,有则跳过这步./autogen.sh 注:mips-openwrt-linux-XXX需要已经在环境变量中./configure --host=mips-openwrt-linux CC=mips-openwrt-linux-gcc CPP=mips-openwrt-linux-cpp CXX=mips-openwrt-linux-g++ --prefix=/home/d
2020-07-10 09:44:46
173
原创 QT TextEdit 事件过滤器
QT TextEdit事件过滤器QTextEdit控件不能用像lineEdit控件可以正则表达式去过滤输入内容,使用事件过滤器可以达到一样的效果;这里过滤非hex字符,对于非hex字符拦截不输入,对于hex字符不拦截,按照原本事件处理,从而达到只允许输入hex字符。对事件过滤器函数return ture; 则拦截,不再往下传播;return false; 则不拦截,往下继续传播;如果想对特定的按键做另外处理,不按照原事件处理,则在事件过滤器函数里处理,然后return ture;不再继续往下传
2020-05-26 18:28:44
1786
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人