- 博客(6)
- 收藏
- 关注
原创 QT进程write函数后有一定概率接收到More?消息,TCP的flush()函数
后来考虑到是不是最后一次命令发出后,进程还没来得及处理,我就把进程给关闭并且delete了,依旧尝试在发送第二次命令之后将线程sleep5s,问题没得到解决,并且在sleep5s后,才会产生预期的动作,说明这个sleep5s是没有用的,有用的话5s的时间足够其产生预期的动作。这里有相似的问题,即write函数只是写入缓冲器,得等到某个时机才发送出去,我在write相关数据给TCP服务器时,应该是写入缓冲器,实际并没有发送,然而,这个函数并不会阻塞,它会立即返回,消息,并且没有达到预期的效果。
2024-06-03 11:31:18
236
1
原创 VxWorks报错SIGSEGV
那就不是单纯的程序长了,再长也不能单词运行100ms了都没运行完,并且都是在一个正弦波形即将变成负数的时候出现的,猜测某个位置出错跳出导致的程序运行时间溢出。错误出现的十分有规律,都是在那个节点出现的,即一个正弦波数据马上变成负数的时候。开始怀疑是不是程序中哪个点的运行卡住了,但是这并不现实。从simulink生成的代码放到VxWorks下运行,报过给的任务空间不够的错,也报过缺少math的错,这次多了一个。经过一通,观察到上位机接收到了运行错误的信息,但是由于还没有用到,也从没出现过错误,
2024-05-28 21:30:56
691
原创 QT 加上Q_OBJECT编译报错,没有release选项
利用Qt编程时,写好.h、.cpp文件并第一次编译之后,若.h文件中定义类时没有添加Q_OBJECT宏以及信号函数、槽函数,VS编译命令中就没有moc命令,就不会调用Qt的moc工具以生成moc_*.cpp文件;另外,出现没有release等的情况,删除工程目录下的.pro.user文件,再打开工程,根据QT给的提示勾选release、debug等,可解决。在类中加上Q_OBJECT编译报错,QT6.2.4,MSVC2019,报错提示无法链接到error LNK2001: 无法解析的外部符号。
2024-05-28 15:52:18
339
原创 QT线程、互斥量、movetothread
难道互斥量被线程1上锁后,线程2不应该阻塞,然后等待线程1释放后,线程2立马再上锁吗,但是看起来线程2没有在互斥量被释放后立即抢到上锁的机会。QT线程是时间片轮转。线程2在等信号量的时候,线程1大概率会锁着信号量,因为线程1释放掉信号量之后,又马上上锁了,这是原子性的,很快。:QThread只是new出来的一个对象,当调用start()之后,它会新建一个线程,并把run()中的代码放到线程中运行,当运行完成后,线程会结束,但QThread对象还在,所以可再次调用start()函数。
2024-05-28 15:38:27
704
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人