- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
视频监控程序设计那点事儿
这个项目前后历时两个礼拜,包括一周多的项目开发以及后期的收尾总结。
一、框架结构图以及项目分析。
图略。
开发板上的应用程序要做的工作如下:
1、?2、?2、?3、?S1、?2、?connect(ui-pushButton,SIGNAL(clicked()),this,SLOT(?ShowHello()?) )
做完helloworld这个小程序,可以同样可以做这么个小程序:单击,出来一个小图片。这个代码百度来的。
QLabel *label=new QLabel (, 0); //初始化qlabel
QPixmap pm (/yanjl/qt/qt_jpg/han.jpg); //设定要显示的图片
ui-label-setPixmap(pm); //将图片加载到label上
ui-label-setGeometry( 0, 0, 240, 320 ); //屏幕大小,初始位置
(2)、Qt显示两幅图片
按道理说,中间只要加个时间间隔,就能显示隔一段时间显示图片了。但是我们几个搞了好久一直都没搞出来,主要是因为对Qt太陌生了,但是这个好像对后来影响不大。不做没关系。
(3)、从arm传送一个.jpg图到PC上。
1、socket如何传送一个.jpg图。
收到任务后,我们几个都很苦恼,之前只用socket传送过字符,.jpg该怎么传啊。百度啊百度。当时搜到了一个代码,人家说能能实现传送一个图片的,不管三七二十一,先拿过来用用。本来我还蛮客气的,照着他的代码我一个个字符的敲到我的电脑上,后来看到纪柯和东东都在调试他们的程序时,我就有点急了。出最后的绝招:copy!哈哈,太过瘾了。你们逼我的!
最后既然还真能传送。东东看着网上图片那人,说了一句很搞笑的话,长这么丑的人既然能做的出来。
客户端读取图片文件并发送:
fread(buf,MAX_LEN,1,fq);
write(sockfd,buf,MAX_LEN);
服务端接收并存成文件:
read(client_fd,buf,MAX_LEN);
fwrite(buf,MAX_LEN,1,fp);
2、其实第二天我才去理解这些代码。原来不管什么格式,都当成普通二进制文件操作!我马上拿起来了谭浩强的C,把文件操作那章复习了一遍。以前学的都不知道怎么用。还写了一个文件复制的小程序。
(4)、从arm传送多个.jpg图到PC上。
我想啊,多个.jpg嘛,加个for()循环应该就可以。上面的MAX_LEN,当初都设为256字节,远小于图片大小。你想想会出现什么问题?客服端几个文件不停的发送,服务端不停的接收。在并没有同步的机制下,接收端不会保存你想要的几个文件。
那么该怎么办呢?这个问题折腾了我好长一段时间。我在发完每个文件的的最后一帧256字节,只发三个字符:new,服务端检测到这个new,接收文件结束。你觉得会检测到new么?事实验证是不会的。这个问题折腾了我好久。我还有用记发一个文件的次数,搞了一两天后终于崩溃了,就放弃了。设MAX_LEN为文件大小,一次性发送,问题暂时解决。
现在来看这个问题,其实我觉得这个小程序挺有意思,挺难的,应该很有技术含量。因为每次发送了一定字节,如256,接收那边每次接收的并不会是256(这个现象是我后来在Qt里?QTcpSocket?-bytesAvailable()这里发现的)。这样的话,呵呵,我现在也没搞定。
我在这里逗留了很长时间。其实东东、赵恒涛早就转向QTcpSocket,QTcpServer了。落后就要挨打,这个道理你懂的。
(5)、QTcpServer接收并显示一个图片。
我在没有任何预习的情况下,听了曹工对这部分的讲解。预习了,听课心里会踏实点。
那晚曹工向我们展示了他作为一个老程员,接收新知识的能力和处理问题的底气霸气!他没有接触过这部分知识,但是在一个小时内,百度一个程序,看基本流程,查QT help手册,查QtcpServer类,点击Fortune?Server?Example,看基本流程,查QT类和函数,一步一步实现了接收并显示图片的程序。让吾等鼠辈大开眼界。QT的学习大底如此。
这里讲讲基本流程。曹工说,QTcpSocket、QtcpServer是在socket的基础上封装各种类,原理都一样,大差不差。QT的特征是信号和槽,实现多线程,比平时要容易很多。当然哥们几个都是有socket基础的,很骄傲很自豪啊!
1、?QTcpServer.listen(QHostAddress::Any,5023)
2、?QTcpServer产生newConnection()信号,调用nextPendingConnection()接受请求并返回QTcpSocket,就可以
您可能关注的文档
最近下载
- 2025中信银行信用卡中心银川分中心招聘笔试备考试题及答案解析.docx
- 2025年金华职业技术学院单招职业倾向性测试题库及参考答案.docx VIP
- 武汉市2025届高中毕业生四月调研考试(四调)数学试卷(含答案).pdf
- 陕西西安市长安城乡建设开发公司招聘笔试题库2024.pdf VIP
- MEMS传感器和智能传感器的发展.docx VIP
- 中学英语课堂教育教学评价策略的研究结题报告.docx
- 运筹学(中国人民解放军陆军工程大学)中国大学MOOC慕课章节测验答案.pdf
- 内蒙古风能、太阳能资源.doc VIP
- 金丽衢十二校2024学年2025届高三第二次联考生物试卷(含答案).pdf
- 《中医骨伤科学》课件—— 肘关节脱位.pptx VIP
文档评论(0)