自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

huao的专栏

记录本人技术积累

  • 博客(16)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS ble 蓝牙底层库的封装

这半年一直在做iOS蓝牙方面的开发,公司的产品是智能灯,是蓝牙一问一答的模式。网上没找到好用的蓝牙库,就自己封装了一个,使用体验和http请求差不多,很简洁。使用步骤:1. 连接蓝牙这里连接成功后开启心跳机制,3秒钟发一个心跳包,蓝牙如果5秒钟没收到就会重启 [MBProgressHUD showHUDAddedTo:self.view animated:YES]; [[HABleManager sharedManager] connectToPer...

2021-07-15 17:44:44 462

原创 iOS开发中如何用TLS的方式连亚马逊的MQTT服务器

iOS开发中如何用TLS的方式连亚马逊的MQTT服务器亚马逊提供的SDK中,嵌入式c、java、c++都是可以用TLS的方式连的,只需要ca、crt、key文件即可连上,唯独iOS不行,不支持。连填证书的地方都没有,网络上讲的也都是其它方式需要在亚马逊的后台填一堆东西,考虑到安全性,还是得用tls的方式,没办法只能寻找第三方SDK。走了n多的弯路,终于搞定,把思路写出来先是找到了mosquitto,是一个mqtt broker。也就是一个连接工具,它支持mqtt服务端和客户端,支持tls连接,然后找

2021-05-17 21:02:32 295

原创 iOS 常用文件操作方法

NSString+FileMananger.m@implementation NSString (FileManager)+ (NSString *)logsDirectory { NSString *library = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"]; NSString *filePath = [NSString stringWithFormat:@"Caches/Logs"];

2020-12-24 23:32:01 323

原创 mediasoup-ios-cient 的使用

1. pod "mediasoup_ios_client" 这行后面的版本号去掉。不然pod install下载不了2.try self.socket!.connect(wsUri: "wss://192.168.8.102:443")改成自己服务器ip3.Mediasoupclient.initializePC()改成Mediasoupclient.initialize()4.Device改成MediasoupDevice...

2020-12-19 11:43:24 972 4

原创 ffmpeg4.3.1 iOS初体验

xcode12.2,FFmpeg4.3.11. 下载FFmpeggit clone https://git.ffmpeg.org/ffmpeg.git也可以点击下载压缩包,我下的 .bz22. 编译FFmpeggithub下载FFmpeg-iOS-build-script,将build-ffmpeg.sh拖入ffmpeg的跟目录。./build-ffmpeg.sh完成之后删掉i386,armv7。留下x86和arm64,重新./build-ffmpeg.sh lipo,得到真机和模拟

2020-12-11 20:53:36 563

转载 含位域的结构体

http://blog.chinaunix.net/uid-20726927-id-2455478.html 使用位域的主要目的是压缩存储,其大致规则为:1) 如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字段将紧邻前一个字段存储,直到不能容纳为止;2) 如果相邻位域字段的类型相同,但其位宽之和大于类型的sizeof大小,则后面的字段将从新的存储单元开

2013-04-19 17:28:19 594

转载 Android中资源文件assets和res下面raw文件的使用不同点

在建立项目中一般会默认建立assets文件,当然我们还可以在res文件下面建立raw文件夹,这里面都可以存放一些图片,音频或者文本信息,可以供我们在程序当中进行使用,不过他们两个也有不同点。assets下面的文件不会被编译,通过路径可以去访问其中的内容。raw中文件会自动编译,我们可以在R.java文件中找到对应的ID。 如果文件比较大一点的会放入到aeests文件中,因为用这个文件文

2013-04-12 11:55:56 576

原创 项目中多线程的使用

如下两篇文章对Linux 多线程讲的比较深入,详细:Linux pthread详解http://blog.csdn.net/xueye3000/article/details/7024365Linux Pthread 深入解析http://blog.chinaunix.net/uid-21084809-id-2215376.html 1. 项目中需要用到多线程, 为了使用的

2013-03-29 18:49:57 3069

原创 Linux 串口应用编程

关于串口编程如下两篇文章比较详细;http://blog.csdn.net/mtv0312/article/details/6599162http://blog.chinaunix.net/uid-21411227-id-1826767.html 串口操作就是对termios 的设置,头文件#include /*PPSIX 终端控制定义*/struct termios 结

2013-03-28 13:12:02 574

原创 Linux errno调试方法

linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败        这个时候往往需要知道失败的原因。可以使用errno这个全局变量。        在程序代码中包含 #include ,/usr/include/asm/errno.h然后每次程序调用失败的时候,系统会自动用用错误代码填充errn

2013-03-22 13:32:25 986

原创 Makefile .d 文件的使用

1. 在Makefile中,我们的依赖关系可能会需要包含一系列的头文件,比如,如果我们的main.c中有一句“#include "defs.h"”,那么我们的依赖关系应该是: main.o : main.c defs.h 如果main.c 中包含了很多头文件,那main.o后面要跟N多的.h。你在加入或删除头文件时,也需要小心地修改Makefile。2. 类似于如下的依赖关系只是建立了

2013-03-19 16:13:30 7481

原创 makefile软件版本并实现多目录

1. 项目中不可能每个软件都包含同样的头文件来进行版本统一管理,编译version.o,链接到目标文件中。源文件组织如下:|---src--->|-->helloworld.cc                 |-->VersionManage.cc|---include-->|--->VersionManage.h|---build----->*.o将三种文件单独放在不

2013-03-19 09:56:35 603

转载 Makefile常用函数

1. Makefile中常用的函数http://linux.chinaunix.net/techdoc/develop/2009/07/09/1122854.shtml

2013-03-15 15:09:55 400

原创 获得命令的输出结果

通过popen获得命令的输出结果int TransInterface::ping_process()  {          FILE *ptr;          char buff[512];          char ps[128];          char *pos;        memset(buff, 0, sizeof(buff));

2013-03-14 20:40:23 556

原创 软件项目中qt的使用

在Linux c++的软件项目中要用到qt,将传感器采集到的数据实时显示到液晶屏上。开发过程中我在有些线程中调用gui的一些显示函数,结果运行时出现QPixmap: It is not safe to use pixmaps outside the GUI thread,总是提示这个警告。意思就是说不能在main所在的线程之外调用显示函数,从而造成显示不稳定。解决方法:在所有需要显示的

2013-03-14 20:34:35 776

原创 项目问题总结

1. read函数读串口的过程中,如果有线程切换而且恰好是发生在read的过程中,read读的动作暂停。当线程切换回来后,造成读超时。答:在一次数据发,收之前将线程优先级用nice(-20)升高,禁止线程切换。 请求,接受完成之后再用nice(20)将优先级还原。在Linux中,进程运行的优先级分为-20~19等40个级别,其中,数值越小运行优先级越高,数值越大运行优先级越低。

2013-03-14 19:09:34 905

Objective-C基础教程清晰版pdf和随书源码.zip

清晰的Objective-C基础教程和随书源码,本书全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等众多重要的面向对象编程技术。书中还阐述了如何利用Cocoa进行数据的保存、检索和操作等。

2013-04-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除