- 博客(37)
- 收藏
- 关注
转载 ZigBee之帧结构
IEEE 802.15.4/ZigBee帧结构的设计原则为在保证网络在有噪音的信道上以足够健壮性的传输的基础上将网络的复杂性降到最低。每一后继的协议层都是在其前一层添加或者剥除了帧头和帧尾而形成,IEEE 802.15.4的MAC层定义了4种基本帧结构。信标帧:协调器用以传输信标。数据帧:用于传输数据。响应帧:用于子确认帧已被成功的接收MAC命令帧:用子处理所有MAC层对等实体的控制传输。
2016-10-26 22:23:43 2870
转载 zigbee协议栈学习(0)
概述ZigBee是一种新兴的短距离、低速率无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术方案。曾被称作HomeRF Lite或FireFly无线技术,主要用于近距离无线连接。ZigBee的基础是IEEE 802.15.4,这是IEEE无线个人区域网(PAN,Personal Area NetWork)工作组的一个标准,被称为IEEE 802.15.4(ZigBee)技术标准。
2016-10-26 22:12:32 1591
转载 zigbee协议栈学习(六)
节点分别为Transmit节点和Calculater节点。Transmit节点通过串口接收PC机发送的数据并将该字符串发送到Calculater节点,Calculater节点接收到数据后将数据翻转后发送给Transmit节点,Transmit将Calculater返回的数据通过串口传送到PC机。程序流程图:源代码:#include #include #i
2016-10-26 21:36:56 1170
转载 zigbee协议栈学习(五)
第一Z-Stack 软件架构 Z-Stack 由 main()函数开始执行,main()函数共做了 2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统, FS_Zstack\ZMain.c ZSEG int main( void ) { osal_int_disable( INTS_ALL ); // 关闭所有中断 HAL_BOARD
2016-10-26 21:15:23 463
转载 zigbee协议栈学习(四)
属性(at tribute) 设备之间通信的每一种数据像开关的状态或温度计值等皆可称为属性。每个属性可得到唯一的 ID,它们都用结构体来描述。 FS_Zstack\zcl .h typedef struct { uint16 attrId; // Attribute ID uint8 dat
2016-10-26 21:12:37 530
转载 zigbee协议栈学习(三)
下面的代码是一个设备怎样加入到一个 ID为1 的组当中:aps_Group_t group; // Assign yourself to group 1 group.ID = 0x0001; group.name[0] = 0; // This could be a human readable string aps_AddGroup( SAMPLEAPP_ENDPOINT,
2016-10-26 21:09:01 394
转载 zigbee协议栈学习(二)
协议栈规范的 ID号可以通过查询设备发送的 beacon 帧获得。在设备加入网络之前,首先需要确认协议栈规范的 ID。“特定网络”规范 ID号为0; ZigBee协议栈规范的 ID号为1; ZigBeeRO 协议栈规范的 ID 号为 2。协议栈规范的 ID(STACK_PROFILE_ID)在 nwk_globals.h 中// Controls the operational
2016-10-26 21:07:18 720
转载 zigbee协议栈学习(一)
1. ZigBee 协议栈简介 什么是 ZigBee 协议栈呢?它和 ZigBee 协议有什么关系呢?协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。 图1展示了 ZigBee 无线网络协议层的架构图。ZigB
2016-10-26 20:55:59 2057
原创 ffmpeg编程四(把视频的声音播放出来)
这篇主要讲把视频的声音播放出来audioStream = -1; for (i = 0; i nb_streams; i++) { if (pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO && audioStream 0) { audi
2016-10-23 21:17:20 589
原创 ffmpeg编程三(把视频文件播放出来)
这篇主要讲如何把视频文件播放出来如果对YUV没有基础的可以看下:http://www.cnblogs.com/nanguabing/archive/2012/04/12/2443485.htmlif (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) { fprintf(stder
2016-10-23 21:15:42 399
原创 ffmpeg编程二
int main() { AVFormatContext *pFormatCtx; int i, videoStream; AVCodecContext *pCodecCtx; AVCodec *pCodec; AVFrame *pFrame; AVFrame *pFrameRGB; AVPacket packet; int frameFinished = NULL; int n
2016-10-23 21:11:27 581
原创 ffmpeg编程一(获取视频关键帧)
av_register_all(); if(av_open_input_file(&pFormatCtx, filename, NULL, 0, NULL)!=0) printf("error!\n"); if(av_find_stream_info(pFormatCtx) printf("error!\
2016-10-23 21:09:55 693
转载 Linux环境下ffmpeg的配置步骤以及简单的使用命令
资源链接:http://download.csdn.NET/detail/hlj_include/9599667第一步:建议安装目录:usr/local/目录下lame-3.99.5.tar.gz(1)、tar -zxvf lame-3.99.5.tar.gz(2)、cd lame-3.99.5 (3)、./configure(4)、make
2016-10-23 20:55:28 2211
转载 应用ffmpeg进行视频文件格式转换
//视频格式转换函数public static boolean process(String resourcePath) { int type = checkContentType(resourcePath); //先检测源文件类型是不是ffmpeg能解析的格式 boolean status = false; if (type ==
2016-10-23 20:09:11 829
转载 ffmpeg的使用
本课要解决的问题:1.FFmpeg的转码流程是什么?2.常见的视频格式包含哪些内容吗?3.如何把这些内容从视频文件中抽取出来?4.如何从一种格式转换为另一种格式?5.如何放大和缩小视频?6.如何旋转,翻转,填充,裁剪,模糊,锐化视频?7.如何给视频加logo,删除logo?8.如何给视频加文本,动态文本?9.如何处理图片?
2016-10-23 19:42:23 456
转载 H264编码原理以及I帧B帧P帧
前言 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,
2016-10-23 18:40:05 302
转载 Linux线程的创建和使用
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中 去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多 线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?
2016-10-23 18:31:07 527
转载 Linux进程间通信6--共享内存1
下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc
2016-10-23 17:00:35 228
转载 Linux进程间通信1--无名管道
进程间通信系列--管道管道可以说是最古老的IPC形式,所谓管道,是指进程间建立的一条通信的通道,从本质上看,管道是UNIX文件概念的推广管道通信的介质是文件,先看一下管道的特点: 1.管道的特点: (1)管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; (2)无名管道只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);后来
2016-10-23 16:55:36 414
原创 进程间7种通信方式
(1)无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。(2)有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。(3)消息队列( message queue ) : 消息队列是由消息的链表,存放在
2016-10-23 16:50:51 415
转载 Linux进程间通信6--共享内存
前言使用文件进行进程间通信应该是最先学会的一种IPC方式。任何编程语言中,文件IO都是很重要的知识,所以使用文件进行进程间通信就成了很自然被学会的一种手段。考虑到系统对文件本身存在缓存机制,使用文件进行IPC的效率在某些多读少写的情况下并不低下。但是大家似乎经常忘记IPC的机制可以包括“文件”这一选项。我们首先引入文件进行IPC,试图先使用文件进行通信引入一个竞争条件的概念,然后使
2016-10-23 16:20:30 285
转载 signal函数、sigaction函数及信号集操作函数
信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄混淆了)。在结构sigaction的实例中,指定了对特定信号的处理,信号所传递的信息,信号处理函数执行过程中应屏蔽掉哪些函数等。当然,此指针也可以为NULL
2016-10-23 15:35:27 359
转载 函数sigsuspend sigprocmask的使用
一个进程的信号屏蔽字规定了当前阻塞而不能递送给该进程的信号集,调用函数sigprocmask可以检测或更改其信号屏蔽字#include int sigprocmask( int how, const sigset_t *restrict set, sigset_t *restrict oset );返回值:若成功则返回0,若出错则返回-1首先,若oset是非空指针,那么进程
2016-10-23 15:28:14 299
转载 LINUX中信号的简介
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念本节先介绍信号的一些基本概念,然后给出一些基本
2016-10-23 11:59:24 221
转载 函数time的使用
头文件time.h @函数名称: localtime 函数原型: struct tm *localtime(const time_t *timer) 函数功能: 返回一个以tm结构表达的机器时间信息 函数返回: 以tm结构表达的时间,结构tm定义如下: [cpp] view plain copyst
2016-10-23 11:22:41 275
转载 函数wait与waitpid的使用
#include /* 提供类型pid_t的定义 */#include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有
2016-10-23 10:11:32 288
转载 服务器IO多路复用模型
一、服务器端代码:#include#include#include#include#include#include#include#include#include#include#include#includeint main(){int socket_fd,connect_fd;struct sockaddr_in se
2016-10-22 23:26:39 203
转载 服务器网络编程模型
1、循环服务器模型:在同一个时刻只可以响应一个客户端的请求 1)循环服务器:UDP服务器UDP循环服务器的实现:UDP服务器每次从套接字上读取一个客户端的请求,处理, 然后将结果返回给客户机. 因为UDP是非面向连接的,没有一个客户端可以老是占住服务端. 只要处理过程不是死循环, 服务器对于每一个客户机的请求总是能够满足.算法示例如下: socket(...); bi
2016-10-22 23:16:51 241
转载 套接字
一、定义套接字:是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程非常非常简单的举例说明下:Socket=Ip address+ TCP/UDP + port。二、常用的TCP/IP协议的3种套接字类型流套接字(SOCK_STREAM):流套接字用于提供面向
2016-10-22 16:54:39 214
转载 TCP与UDP的区别
一、TCP(传输控制协议)1)提供IP环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的时候,也会向计算机B回发数据包,这也会产生部分通信量),有效流控,全双工操作(数据在两个方向上能同时传递),多路复用服务,是面向连接,端到端的传输;2)面向连接:正式通信前必须要与对方建立连接。事先为所发送的数据开辟出连接好的通道,然后再进行数
2016-10-22 16:38:25 336
转载 网络体系结构
一、网络体系结构简介网络体系结构是指通信系统的整体设计,它为网络硬件、软件、协议、存取控制和拓扑提供标准。它广泛采用的是国际标准化组织(ISO)在1979年提出的开放系统互连(OSI-Open System Interconnection)的参考模型。二、OSI层次详解第一层:物理层(PhysicalLayer)规定通信设备的机械的、电气的、功能的和规程的特性,
2016-10-22 16:18:24 328
转载 如何编写Makefile
http://www.cnblogs.com/L-hq815/archive/2012/11/22/2783188.html
2016-10-22 15:54:40 177
转载 函数mmap的使用
一、mmap函数原型void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize); 参数start:指向欲映射的内存起始地址,通常设为 NULL,代表让系统自动选定地址,映射成功后返回该地址。参数length:代表将文件中多大的部分映射到内存。参数prot:
2016-10-21 21:22:18 599
转载 函数ioctl的使用
一、ioctl函数原型及作用#include int ioctl( int fd, int request, ... );作用:操作文件描述符,用于设置硬件设备的一些配置信息,比如:串口的波特率,AD转换的精度,音频设备的采样率等二、我们可以把和网络相关的请求划分为六类: 1> 套接口操作 2> 文件操作 3> 接口操作 4> ARP高速
2016-10-21 18:12:04 413
转载 函数fcntl的用法
一、文件控制函数 fcntl -- file controlLIBRARY Standard C Library (libc, -lc)SYNOPSIS #include ; int fcntl(int fd, int cmd, ...);【描述】: fcntl()针对
2016-10-21 17:08:07 408
原创 无缓冲IO和缓冲IO
一、 不带缓冲IO和带缓冲IO操作函数不带缓存的I/O: read,write,open......标准(带缓存的)I/O: fgets,fread,fwrite.....这里使用两个对应的函数进行比较:ssize_t write(int filedes, const void *buff, size_t nbytes)size_t
2016-10-21 16:34:52 578
原创 STDOUT_FILENO STDIN_FILENO STDERR_FILENO 和stdin stdout stderr区别
1> STDOUT_FILENO、 STDIN_FILENO、 STDERR_FILENO是整型的在/usr/include/unistd.h中有如下定义:#defineSTDIN_FILENO0#defineSTDOUT_FILENO1#defineSTDERR_FILENO2
2016-10-21 16:19:30 775
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人