智能家居系统代码
本智能家居模拟系统,使用linux作为服务器操作系统。多线程服务器,实现了照明、手动调节控制环境状态信息,QT远程视频监控等功能。代码俱全
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2
文件 13876 2017-02-23 10:34 AutomaticSprinklerSystem_1.4.2.cproject
文件 825 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.project
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.settings
文件 2088 2017-02-23 10:34 AutomaticSprinklerSystem_1.4.2.settingslanguage.settings.xml
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svn
文件 2 2017-02-23 10:05 AutomaticSprinklerSystem_1.4.2.svnentries
文件 2 2017-02-23 10:05 AutomaticSprinklerSystem_1.4.2.svnformat
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine c
文件 62 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine c c082d90f5daa56c761bfe3e9fb016b0b84fe88b.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine f
文件 10890 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine f f79b9b6627d4abb38d5c6d043175ec041a42e73.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine11
文件 224 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine1111d76698efe23ac67897e50cabb13f3455541b5f.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine12
文件 589 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine1212538e9a83348aeef959e73a1542eadcb8d1aabc.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine15
文件 2326 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine1515ba5c27a7854aefab86063deb10baded155f27f.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine16
文件 196 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine16165bbcfc5cc5b0e8cadb148ec51e2fe9b560a59a.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine18
文件 6536 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine18186a8e777ccf20b0cec9a5aadba36430dbff7598.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine1e
文件 137 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine1e1ed12e2b729624ed78b72ada2546d234c7e5a88c.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine22
文件 798434 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine22223fa0b83c1259de02c6c04a7c2fc9b97789a595.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine24
文件 5459 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine2424d13bc5cd724a511d88119ed9ebb30c27125712.svn-base
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine2b
文件 157 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine2b2b723b8f21e15fbf12d52d4ddd87e3221aa931fa.svn-base
............此处省略313个文件信息
/*
* camera.c
*
* Created on: 2017年2月21日
* Author: farsight
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include “camera.h“
//#include “sendPic.h“
struct VideoBuffer *buffers; //一片缓存
int buffer_num; //缓存个数
char rgbbuf[PICWIDTH * PICHEIGHT * 3]; //RGB缓存
unsigned char *rgbdata;//保存一帧rgb数据
unsigned char *jpegdata;//保存一帧jpeg数据
struct jpeg_compress_struct jpeg;
struct jpeg_error_mgr jerr;
int picsize;//用于记录文件大小
void *pthread_cameraClient(void *arg) {
pthread_camera();
return NULL;
}
int pthread_camera() {
//打开摄像头
if (0 > (camfd = cam_open())) {
perror(“open camera“);
return -1;
}
//初始化摄像头
cam_init();
//分配内存
get_memory();
//捕获视频
while(1){
capture_video();
}
return 0;
}
int cam_open() {
int fd;
fd = open(“/dev/video0“ O_RDWR 0);
return fd;
}
int cam_init() {
set_capture_format();
set_time_per_frame();
return 0;
}
int set_capture_format() {
struct v4l2_format fmt;
memset(&fmt 0 sizeof(fmt));
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
//设置图片大小
fmt.fmt.pix.width = PICWIDTH;
fmt.fmt.pix.height = PICHEIGHT;
//设置采集的图片的格式
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
if (-1 == ioctl(camfd VIDIOC_S_FMT &fmt)) {
return -1;
}
return 0;
}
int set_time_per_frame() {
struct v4l2_streamparm parm;
memset(&parm 0 sizeof(parm));
parm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
parm.parm.capture.timeperframe.numerator = 1;
parm.parm.capture.timeperframe.denominator = TIME_PER_frame;
parm.parm.capture.capturemode = V4L2_MODE_HIGHQUALITY;
parm.parm.capture.capability = V4L2_CAP_TIMEPERframe;
if (0 > ioctl(camfd VIDIOC_S_PARM &parm)) {
return -1;
}
return 0;
}
int get_memory() {
struct v4l2_requestbuffers req;
req.count = TIME_PER_frame;
req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; //数据流类型: 必须是 V4L2_BUF_TYPE_VIDEO_CAPTURE
req.memory = V4L2_MEMORY_MMAP; //内存工作方式 mmap 映射
if (-1 == ioctl(camfd VIDIOC_REQBUFS &req)) {
return -1;
}
buffers = calloc(req.count sizeof(VB));
struct v4l2_buffer tmp;
for (buffer_num = 0; buffer_num < req.count; ++buffer_num) {
memset(&tmp 0 sizeof(tmp));
tmp.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
tmp.memory = V4L2_MEMORY_MMAP;
tmp.index = buffer_num;
//读取缓存
if (-1 == ioctl(camfd VIDIOC_QUERYBUF &tmp)) {
return -1;
}
buffers[buffer_num].length = tmp.length;
//使用mmap映射转换成相应的地址
buffers[buffer_num].start = mmap(NULL tmp.length
PROT_READ | PROT_WRITE MAP_SHARED camfd tmp.m.offset);
if (buffers[buffer_num].start == MAP_FAILED) {
return -1;
}
//放入缓存队列
if (-1 == ioctl(camfd VIDIOC_QBUF &tmp)) {
return -1;
}
}
return 0;
}
int turn_on_video() {
enum v4l2_buf_type v4l2type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (-1 == ioctl(camfd VIDIOC_STRE
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2
文件 13876 2017-02-23 10:34 AutomaticSprinklerSystem_1.4.2.cproject
文件 825 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.project
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.settings
文件 2088 2017-02-23 10:34 AutomaticSprinklerSystem_1.4.2.settingslanguage.settings.xm
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svn
文件 2 2017-02-23 10:05 AutomaticSprinklerSystem_1.4.2.svnentries
文件 2 2017-02-23 10:05 AutomaticSprinklerSystem_1.4.2.svnformat
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine c
文件 62 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine c c082d90f5daa56c761bfe3e9fb016b0b84fe88b.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine f
文件 10890 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine f f79b9b6627d4abb38d5c6d043175ec041a42e73.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine11
文件 224 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine1111d76698efe23ac67897e50cabb13f3455541b5f.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine12
文件 589 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine1212538e9a83348aeef959e73a1542eadcb8d1aabc.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine15
文件 2326 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine1515ba5c27a7854aefab86063deb10baded155f27f.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine16
文件 196 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine16165bbcfc5cc5b0e8cadb148ec51e2fe9b560a59a.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine18
文件 6536 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine18186a8e777ccf20b0cec9a5aadba36430dbff7598.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine1e
文件 137 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine1e1ed12e2b729624ed78b72ada2546d234c7e5a88c.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine22
文件 798434 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine22223fa0b83c1259de02c6c04a7c2fc9b97789a595.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine24
文件 5459 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine2424d13bc5cd724a511d88119ed9ebb30c27125712.svn-ba
目录 0 2017-02-24 16:06 AutomaticSprinklerSystem_1.4.2.svnpristine2b
文件 157 2017-02-23 10:06 AutomaticSprinklerSystem_1.4.2.svnpristine2b2b723b8f21e15fbf12d52d4ddd87e3221aa931fa.svn-ba
............此处省略313个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)