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

南昌网站建设方案优化市场调研报告模板ppt

南昌网站建设方案优化,市场调研报告模板ppt,网站建设有哪些平台,单县网站建设采用工厂模式以面向对象的方式来封装各种设备模块&#xff0c;方便整合项目以及后期的维护和扩展 mainPro.c&#xff08;主函数&#xff09; #include <stdio.h> #include "controlDevice.h"struct Devices *pdeviceHead NULL; //设备工厂链…

采用工厂模式以面向对象的方式来封装各种设备模块,方便整合项目以及后期的维护和扩展

mainPro.c(主函数)

#include <stdio.h>
#include "controlDevice.h"struct Devices        *pdeviceHead  = NULL;         //设备工厂链表头struct Devices* findDeviceByName(struct Devices *phead,char *name)          //在设备链表中查找设备
{struct Devices *tmp = phead;if(tmp == NULL){printf("The devicesLink is NULL");return NULL;}else{while(tmp != NULL){if(strcmp(tmp->deviceName,name) == 0){return tmp;}tmp = tmp->next;}return NULL;   }}int main()
{if(wiringPiSetup()<0){//初始化wiringPi外设库printf("wiringPi Init failed\n");return -1;}//设备控制工厂初始化pdeviceHead = addBathroomLightToDeviceLink(pdeviceHead);        //将卫生灯加入设备链表pdeviceHead = addbedroomLightToDeviceLink(pdeviceHead);         //将卧室灯加入设备链表pdeviceHead = addRestaurantLightToDeviceLink(pdeviceHead);      //将餐厅灯加入设备链表pdeviceHead = addLivingroomLightToDeviceLink(pdeviceHead);      //将客厅灯加入设备链表pdeviceHead = addFireToDeviceLink(pdeviceHead);                 //将火灾检测加入设备链表pdeviceHead = addBeepToDeviceLink(pdeviceHead);                 //将蜂鸣器加入设备链表

controlDevice.h( 设备类)

#include <wiringPi.h>
#include <stddef.h>struct Devices
{char deviceName[128];                       //设备名字int status;                                 //状态int pinNum;                                 //引脚int (*deviceInit)(int pinNum);              //设备初始化函数指针,后面类似int (*open)(int pinNum);                    //打开设备int (*close)(int pinNum);                   //关闭设备int (*readStatus)(int pinNum);              //读取引脚状态int (*changeStatus)(int status);struct Devices *next;                       //方便链表使用的结构体指针
};struct Devices *addBathroomLightToDeviceLink(struct Devices *phead);        //卫生间灯加入设备链表声明,以下类似
struct Devices *addbedroomLightToDeviceLink(struct Devices *phead);         //卧室灯
struct Devices *addRestaurantLightToDeviceLink(struct Devices *phead);      //餐厅灯
struct Devices *addLivingroomLightToDeviceLink(struct Devices *phead);      //客厅灯
struct Devices *addFireToDeviceLink(struct Devices *phead);                 //火灾检测器
struct Devices *addBeepToDeviceLink(struct Devices *phead);                 //蜂鸣器

bathroomLight.c(浴室灯)

#include "controlDevice.h"int bathroomLightInit(int pinNum)
{pinMode(pinNum,OUTPUT);digitalWrite(pinNum,HIGH);}int bathroomLightOpen(int pinNum)
{digitalWrite(pinNum,LOW);
}int bathroomLightClose(int pinNum)
{digitalWrite(pinNum,HIGH);}int bathroomLightChangeStatus()
{//暂时不用,后面用着在完善}struct Devices bathroomLight = {.deviceName = "bathroomLight",.pinNum = 26,.deviceInit = bathroomLightInit,.open  = bathroomLightOpen,.close = bathroomLightClose,.changeStatus = bathroomLightChangeStatus,};struct Devices *addBathroomLightToDeviceLink(struct Devices *phead)		//将浴室灯加入设备链表的函数
{if(phead == NULL){return &bathroomLight;}else{bathroomLight.next=phead;phead = &bathroomLight;return phead;}}

livingroomLight.c(客厅灯)

#include "controlDevice.h"int livingroomLightInit(int pinNum)
{pinMode(pinNum,OUTPUT);//设置引脚为输出模式digitalWrite(pinNum,HIGH);}int livingroomLightOpen(int pinNum)
{digitalWrite(pinNum,LOW);
}int livingroomLightClose(int pinNum)
{digitalWrite(pinNum,HIGH);}int livingroomLightChangeStatus()
{//暂时不用,后面用着在完善}struct Devices livingroomLight = {.deviceName = "livingroomLight",.pinNum = 29,.deviceInit = livingroomLightInit,.open  = livingroomLightOpen,.close = livingroomLightClose,.changeStatus = livingroomLightChangeStatus,};struct Devices *addLivingroomLightToDeviceLink(struct Devices *phead)
{if(phead == NULL){return &livingroomLight;}else{livingroomLight.next=phead;phead = &livingroomLight;return phead;}}

restaurantLight.c(餐厅灯)

#include "controlDevice.h"int restaurantLightInit(int pinNum)
{pinMode(pinNum,OUTPUT);//设置引脚为输出模式digitalWrite(pinNum,HIGH);}int restaurantLightOpen(int pinNum)
{digitalWrite(pinNum,LOW);
}int restaurantLightClose(int pinNum)
{digitalWrite(pinNum,HIGH);}int restaurantLightChangeStatus()
{//暂时不用,后面用着在完善}struct Devices restaurantLight = {.deviceName = "restaurantLight",.pinNum = 28,.deviceInit = restaurantLightInit,.open  = restaurantLightOpen,.close = restaurantLightClose,.changeStatus = restaurantLightChangeStatus,};struct Devices *addRestaurantLightToDeviceLink(struct Devices *phead)
{if(phead == NULL){return &restaurantLight;}else{restaurantLight.next=phead;phead = &restaurantLight;return phead;}}

beedroomLight(卧室灯)

#include "controlDevice.h"int bedroomLightInit(int pinNum)
{pinMode(pinNum,OUTPUT);//设置引脚为输出模式digitalWrite(pinNum,HIGH);}int bedroomLightOpen(int pinNum)
{digitalWrite(pinNum,LOW);
}int bedroomLightClose(int pinNum)
{digitalWrite(pinNum,HIGH);}int bedroomLightChangeStatus()
{//暂时不用,后面用着在完善}struct Devices bedroomLight = {.deviceName = "bedroomLight",.pinNum = 27,.deviceInit = bedroomLightInit,.open  = bedroomLightOpen,.close = bedroomLightClose,.changeStatus = bedroomLightChangeStatus,};struct Devices *addbedroomLightToDeviceLink(struct Devices *phead)
{if(phead == NULL){return &bedroomLight;}else{bedroomLight.next=phead;phead = &bedroomLight;return phead;}}

fire.c(火灾检测)

#include "controlDevice.h"int fireInit(int pinNum)
{pinMode(pinNum,INPUT);//设置引脚为输出模式}int fireStatusRead(int pinNum)
{return digitalRead(pinNum);}int fireChangeStatus()
{//暂时不用,后面用着在完善}struct Devices fire = {.deviceName = "fire",.pinNum = 25,.deviceInit = fireInit,.readStatus = fireStatusRead,.changeStatus = fireChangeStatus,};struct Devices *addFireToDeviceLink(struct Devices *phead)
{if(phead == NULL){return &fire;}else{fire.next=phead;phead = &fire;return phead;}}

beep.c(和火灾检测配合实现火灾报警的蜂鸣器)

#include "controlDevice.h"int beepInit(int pinNum)
{pinMode(pinNum,OUTPUT);//设置引脚为输出模式digitalWrite(pinNum,HIGH);}int beepOpen(int pinNum)
{digitalWrite(pinNum,LOW);}int beepClose(int pinNum)
{digitalWrite(pinNum,HIGH);}int beepChangeStatus()
{//暂时不用,后面用着在完善}struct Devices beep = {.deviceName = "beep",.pinNum = 24,.deviceInit = beepInit,.open = beepOpen,.close = beepClose,.changeStatus = beepChangeStatus,};struct Devices *addBeepToDeviceLink(struct Devices *phead)
{if(phead == NULL){return &beep;}else{beep.next=phead;phead = &beep;return phead;}}
http://www.yidumall.com/news/22978.html

相关文章:

  • 有什么可以在线做数学题的网站seo排名点击器原理
  • 网站搜索引擎优化推广优化推广联盟
  • 沈阳学习做网站搜索网站的浏览器
  • 建大型网站要多少钱郑州seo软件
  • 微网站可以做商城吗百度建站官网
  • 一诺互联网站建设公司杭州网站定制
  • wordpress通知站点bing微信广告投放收费标准
  • 那个网站专门做二手衣服最受欢迎的十大培训课程
  • 跨境电商独立站是什么意思苏州seo推广
  • 厦门市建设局网站摇号网站软件下载app
  • 做网站用的动漫资料seo怎么优化步骤
  • wordpress插件一键宁波seo推荐
  • web期末网站设计大作业一级域名生成二级域名
  • 恩施建站建设2022年新闻热点摘抄
  • 北京低价做网站百度如何注册公司网站
  • 东莞公司注册登记湘潭seo优化
  • 国外自适应网站模版广东短视频seo搜索哪家好
  • 超值的网站建设百度广告登录入口
  • 深圳网站建设工作室seo 推广怎么做
  • wordpress图片模糊加载草根seo视频大全
  • 网站建设定制网站建设公司北京seo网站管理
  • 差异基因做热图在线网站企业类网站有哪些例子
  • 《网站建设与管理》方案百度点击工具
  • 免费网站正能量小说昆明seo
  • 网站推广最有效的方法百度网站推广排名
  • 做网站框架浏览时怎么变长网店如何做推广
  • 怎么建网站seo优化 搜 盈seo公司
  • 金蝶二次开发seo排名优化什么意思
  • 上海做网站自媒体运营主要做什么
  • WordPress P站活动营销