当前位置: 首页 > news >正文

做ppt在哪些网站可以卖钱flash 如何做游戏下载网站

做ppt在哪些网站可以卖钱,flash 如何做游戏下载网站,wordpress浮动按钮插件,wordpress能做成app吗目录 一、智能家居项目框架设计草图 二、框架代码文件工程建立 三、添加声音识别模块的串口读取功能 一、智能家居项目框架设计草图 代码思路讲解#xff1a; 1、一个指令工厂#xff0c;一个控制工厂#xff0c;实际上就是通过链表链起来的数据。具体怎么链接起来…目录 一、智能家居项目框架设计草图 二、框架代码文件工程建立 三、添加声音识别模块的串口读取功能 一、智能家居项目框架设计草图 代码思路讲解 1、一个指令工厂一个控制工厂实际上就是通过链表链起来的数据。具体怎么链接起来就是基于简单工厂模式的类与对象的概念上一篇文章有学习记录。 2、主函数语音指令程序和tcp指令程序各起一个线程然后通过指令名字找到对应的控制程序实现对应的模块的功能。 二、框架代码文件工程建立 1、在桌面新建一个项目文件夹smartHose,然后在文件夹中创建如下文件 2、把上述的所有文件都加载到Source lnsight工具中如下图代表加载完毕 3、创建inputCommand.h头文件 //面向指令工厂的头文件 #include wiringPi.h #include stdlib.hstruct InputCommander{char commandName[128]; //名字char command[32]; //指令int (*Init)(char *name,char *ipAdress,char *port); //操作函数 int (*getCommand)(char *cmd); //获取数据函数char log[1024]; //log日志获取struct InputCommander *next; };4、创建contrlDevices.h头文件 //设备头文件 #include wiringPi.hstruct Devices{char deviceName[128]; //名字int status; //状态int pinNum; //引脚int (*open)(int pinNum); //打开int (*close)(int pinNum); //关闭int (*deviceInit)(int pinNum); //设备初始化int (*readStatus)(); //火灾int (*changeStatus)(int status);struct Devices *next; };struct Devices* addBathroomLightToDeviceLink(struct Devices *phead); struct Devices* addUpstairLightToDeviceLink(struct Devices *phead); struct Devices* addLivingRoomLightToDeviceLink(struct Devices *phead); struct Devices* addRestaurantLightToDeviceLink(struct Devices *phead); struct Devices* addFireToDeviceLink(struct Devices *phead); 5、创建bathroomLight.c文件 //浴室的灯 #include contrlDevices.h #includestdlib.hint bathroomLightOpen(int pinNum){digitalWrite(pinNum,LOW); } int bathroomLightClose(int pinNum){digitalWrite(pinNum,HIGH); } int bathroomLightCloseInit(int pinNum){pinMode(pinNum,OUTPUT);digitalWrite(pinNum,HIGH); } int bathroomLightCloseStatus(int status){} struct Devices bathroomLight{.deviceName bathroomLight,.pinNum 26,.open bathroomLightOpen,.close bathroomLightClose,.deviceInit bathroomLightCloseInit,.changeStatus bathroomLightCloseStatus}; struct Devices* addBathroomLightToDeviceLink(struct Devices *phead){if(phead NULL){ return bathroomLight;}else{bathroomLight.next phead;phead bathroomLight;} }; 6、创建livingroomLight.c文件 #include contrlDevices.h #includestdlib.hint livingroomLightOpen(int pinNum){digitalWrite(pinNum,LOW); } int livingroomLightClose(int pinNum){digitalWrite(pinNum,HIGH); } int livingroomLightCloseInit(int pinNum){pinMode(pinNum,OUTPUT);digitalWrite(pinNum,HIGH); } int livingroomLightCloseStatus(int status){} struct Devices livingroomLight{.deviceName livingroomLight,.pinNum 27,.open livingroomLightOpen,.close livingroomLightClose,.deviceInit livingroomLightCloseInit,.changeStatus livingroomLightCloseStatus}; struct Devices* addLivingRoomLightToDeviceLink(struct Devices *phead){if(phead NULL){ return livingroomLight;}else{livingroomLight.next phead;phead livingroomLight;} }; 7、创建restaurantLight.c文件 #include contrlDevices.h #includestdlib.hint restaurantLightOpen(int pinNum){digitalWrite(pinNum,LOW); } int restaurantLightClose(int pinNum){digitalWrite(pinNum,HIGH); } int restaurantLightCloseInit(int pinNum){pinMode(pinNum,OUTPUT);digitalWrite(pinNum,HIGH); } int restaurantLightCloseStatus(int status){} struct Devices restaurantLight{.deviceName restaurantLight,.pinNum 28,.open restaurantLightOpen,.close restaurantLightClose,.deviceInit restaurantLightCloseInit,.changeStatus restaurantLightCloseStatus }; struct Devices* addRestaurantLightToDeviceLink(struct Devices *phead){if(phead NULL){ return restaurantLight;}else{restaurantLight.next phead;phead restaurantLight;} }; 8、创建upstairLight.c文件 //二楼灯 #include contrlDevices.h #includestdlib.hint upstairLightOpen(int pinNum){digitalWrite(pinNum,LOW); } int upstairLightClose(int pinNum){digitalWrite(pinNum,HIGH); } int upstairLightCloseInit(int pinNum){pinMode(pinNum,OUTPUT);digitalWrite(pinNum,HIGH); } int upstairLightCloseStatus(int status){} struct Devices upstairLight{.deviceName upstairLight,.pinNum 29,.open upstairLightOpen,.close upstairLightClose,.deviceInit upstairLightCloseInit,.changeStatus upstairLightCloseStatus }; struct Devices* addUpstairLightToDeviceLink(struct Devices *phead){if(phead NULL){ return upstairLight;}else{upstairLight.next phead;phead upstairLight;} }; 9、创建fire.c文件 //火灾报警 #include contrlDevices.h #includestdlib.hint fireIfOrNotInit(int pinNum){pinMode(pinNum,INPUT);digitalWrite(pinNum,HIGH); } int fireStatusRead(int pinNum){return digitalRead(pinNum); } struct Devices fireIfOrNot{.deviceName fireIfOrNot,.pinNum 25,.deviceInit fireIfOrNotInit,.readStatus fireStatusRead}; struct Devices* addFireToDeviceLink(struct Devices *phead){if(phead NULL){ return fireIfOrNot;}else{fireIfOrNot.next phead;phead fireIfOrNot;} }; 10、创建mainPro.c主函数文件 #include stdio.h #include contrlDevices.h #include string.h #include inputCommand.hstruct Devices* findDeviceByName(char* name,struct Devices* phead){struct Devices *tmp phead;if(phead NULL){return NULL;}else{while(tmp ! NULL){if(strcmp(tmp-deviceName,name) 0){return tmp;}tmp tmp-next;}return NULL;} };int main(){char name [128];struct Devices *tmp NULL;if(-1 wiringPiSetup()){return -1;}struct Devices *pdeviceHead NULL;pdeviceHead addBathroomLightToDeviceLink(pdeviceHead);pdeviceHead addUpstairLightToDeviceLink(pdeviceHead);pdeviceHead addLivingRoomLightToDeviceLink(pdeviceHead);pdeviceHead addRestaurantLightToDeviceLink(pdeviceHead);pdeviceHead addFireToDeviceLink(pdeviceHead);while(1){printf(Input:\n);scanf(%s,name);tmp findDeviceByName(name,pdeviceHead);if(tmp ! NULL){tmp-deviceInit(tmp-pinNum);tmp-open(tmp-pinNum);}}//1、指令工厂初始化//2、设备控制工厂初始化//3、线程池建立//3.1、语音线程//3.2、socket线程//3.3、摄像头线程//3.4、火灾线程 } 把上述的代码传到树莓派的终端用FileZilla传即可然后执行结果 gcc mainPro.c upstairLight.c bathroomLight.c livingroomLight.c restaurantLight.c -lwiringPi -o test1 效果演示虽然没有装到实际的智能家居里但是小灯亮了说明程序是可以正常用的 三、添加声音识别模块的串口读取功能 这里主要通过主控芯片树莓派的串口跟语音模块连接。 树莓派的T接语音模块的R 树莓派的R接语音模块的T 然后就是供电 我们先把语音模块的代码整合到指令链表当中去1.语音控制设备voiceContrl.c #include inputCommand.h #include stdlib.h #include wiringPi.h #include stdio.h #include wiringSerial.h #include unistd.h//串口int voiceInit(struct InputCommander *voicer,char *ipAdress,char *port){ //声音初始化int fd;if((fd serialOpen(voicer-deviceName,9600)) -1){ //初始化串口波特率9600exit(-1);}voicer-fd fd;return fd; } int voiceGetCommand(struct InputCommander *voicer){int nread 0;nread (voicer-fd,voicer-command,sizeof(voicer-command));if(nread 0){printf(usart for voice read over time\n);}else{return nread;} } struct InputCommander voiceContrl {.commandName voice, .deviceName dev/ttyAMA0,.command {\0},.Init voiceInit,.getCommand voiceGetCommand,.log {\0},.next NULL,}; struct InputCommander* addvoiceContrlToInputCommandLink(struct InputCommander *phead){if(phead NULL){return voiceContrl;}else{voiceContrl.next phead;phead voiceContrl;} }; 2.控制设备的头文件inputCommand.h //面向指令工厂的头文件 #include wiringPi.h #include stdlib.hstruct InputCommander{char commandName[128]; //声音的名字char command[32]; char deviceName[128]; //串口的名字int (*Init)(struct InputCommander *voicer,char *ipAdress,char *port); int (*getCommand)(struct InputCommander *voicer);char log[1024];int fd;struct InputCommander *next;}; struct InputCommander* addvoiceContrlToInputCommandLink(struct InputCommander *phead); 3.在mainPro.c主函数中添加语音模块的函数 #include stdio.h #include contrlDevices.h #include string.h #include inputCommand.hstruct Devices* findDeviceByName(char* name,struct Devices* phead){struct Devices *tmp phead;if(phead NULL){return NULL;}else{while(tmp ! NULL){if(strcmp(tmp-deviceName,name) 0){return tmp;}tmp tmp-next;}return NULL;} }; int main(){char name [128];struct Devices *tmp NULL;if(-1 wiringPiSetup()){return -1;}struct Devices *pdeviceHead NULL; //设备工厂struct InputCommander *pCommandHead NULL; //指令工厂pdeviceHead addBathroomLightToDeviceLink(pdeviceHead);pdeviceHead addUpstairLightToDeviceLink(pdeviceHead);pdeviceHead addLivingRoomLightToDeviceLink(pdeviceHead);pdeviceHead addRestaurantLightToDeviceLink(pdeviceHead);pdeviceHead addFireToDeviceLink(pdeviceHead); //火灾pCommandHead addvoiceContrlToInputCommandLink(pCommandHead); //串口while(1){printf(Input:\n);scanf(%s,name);tmp findDeviceByName(name,pdeviceHead);if(tmp ! NULL){tmp-deviceInit(tmp-pinNum);tmp-open(tmp-pinNum);}} } 4.把上述的代码传到树莓派的终端用FileZilla传即可然后执行结果 gcc mainPro.c upstairLight.c bathroomLight.c fire.c livingroomLight.c restaurantLight.c voiceContrl.c -lwiringPi -o test1
http://www.w-s-a.com/news/153683/

相关文章:

  • 网站建设硬件和软件技术环境配置签约做网站模板
  • 教育网站建设的素材手机app制作流程
  • 免费行情软件网站大全下载网站备案查询
  • flex网站模板wordpress实时预览
  • 建设银行网站模板为什么企业要建设自己的企业文化
  • 网站建设必知免费手机网站建站系统
  • ssh可以做wap网站么嘉兴seo排名
  • 站内优化包括哪些帝国做企业网站
  • 做网站seo赚钱吗网络维护和故障维修
  • 企业网站可以自己做摄影网站开发背景怎么写
  • 网站百度指数seo最好的工具
  • 宝安专业网站建设推荐设计感强的网站
  • 网站建设 6万元北京知名的品牌设计公司
  • 网站建设的总体需求是什么vmware 下wordpress
  • 光谷网站建设请检查网络
  • 申请建设网站的报告书商务网站开发课程体会
  • 网站开发实训总结致谢群晖wordpress设置
  • 关于酒店网站建设的摘要天津市建设工程信息网官网首页
  • 网站alexa排名查询手机网站制作器
  • 建设小辣猫的网站电子毕业设计网站建设
  • 询广西南宁网站运营礼品定制
  • 建筑公司网站作用免费查看招标信息的网站
  • 建筑设计公司名字起名大全html网站 怎么做seo
  • 网站群建设模板迁移原站迁移pc巩义网站建设案例课堂
  • 烟台高端网站开发wordpress 设置权限
  • 中小企业网站制作流程网站开发和设计人员的岗位要求
  • 公司网站建设多少费用河北城乡建设官网站
  • 国科联创网站建设广告传媒公司招聘信息
  • 网站后台文章删了 怎么前台还有一级做爰片软件网站
  • 辽宁省建设注册中心网站wordpress 博客插件