2025-12-11 09:17:16 +08:00
2025-12-11 09:17:16 +08:00
2025-12-11 09:17:16 +08:00
111
2025-12-11 09:53:23 +08:00
2025-12-11 09:17:16 +08:00
2025-12-11 09:17:16 +08:00
2025-12-11 09:17:16 +08:00
2025-12-17 10:51:23 +08:00
111
2025-12-11 09:53:23 +08:00
2025-12-11 10:59:46 +08:00
111
2025-12-11 09:53:23 +08:00
2025-12-17 10:51:23 +08:00
2025-12-11 09:17:16 +08:00
2025-12-17 10:51:23 +08:00
2025-12-11 09:17:16 +08:00
2025-12-11 09:17:16 +08:00
2025-12-11 09:17:16 +08:00
2025-12-11 09:17:16 +08:00
2025-12-19 17:23:12 +08:00

CRICS_V3 - 酒店客房智能控制系统

项目概述

CRICSCustomer Room Intelligent Control System是一套酒店客房智能控制系统用于管理酒店客房的智能设备控制、状态监控和数据统计等功能。


技术框架

开发环境

  • IDE: Visual Studio 2010+
  • 目标框架: .NET Framework 4.0
  • 解决方案格式: VS 2010 Solution Format Version 11.00

核心技术栈

分类 技术/框架 版本 说明
Web框架 ASP.NET MVC 2.0 Web应用程序框架
IoC容器 Spring.NET 1.3.x 依赖注入、AOP支持
ORM框架 NHibernate 3.0 对象关系映射
数据库 SQL Server - 关系型数据库
缓存 Redis (CSRedis) - 分布式缓存
缓存 Memcached - 内存缓存
日志 log4net 1.2.10 日志记录框架
JSON处理 Newtonsoft.Json 6.0 JSON序列化/反序列化
通信协议 UDP - RCU主机通信
消息队列 MQTT (M2Mqtt) 4.3 消息传输
任务调度 FluentScheduler 4.1.2 定时任务调度
Excel处理 NPOI - Excel文件读写
HTTP客户端 RestSharp 105.2.3 REST API调用
JWT jose-jwt - JWT令牌处理

前端技术

  • UI框架: EasyUI 1.4.2
  • JavaScript库: jQuery

项目结构

CRICS_V3_1124/
├── CRICS_V3_1124.sln          # 解决方案文件
├── README.md                   # 项目说明文档
├── Para.prom                   # 参数配置文件
├── Para_copy.yaml              # YAML配置文件
│
├── WebSite/                    # Web应用程序主项目
│   ├── Controllers/            # MVC控制器
│   ├── Views/                  # 视图模板
│   ├── Models/                 # 视图模型
│   ├── Config/                 # Spring.NET配置
│   ├── api/                    # API接口
│   ├── Core/                   # 核心业务逻辑
│   ├── Job/                    # 定时任务
│   ├── Scripts/                # JavaScript脚本
│   ├── Styles/                 # CSS样式
│   ├── Images/                 # 图片资源
│   └── easyui-1.4.2/          # EasyUI前端框架
│
├── RCUHost/                    # RCU主机通信服务
│   ├── Implement/              # 接口实现
│   │   ├── HostServer.cs       # UDP服务器核心
│   │   ├── *Receiver.cs        # 各类命令接收器
│   │   └── ReceiverContext.cs  # 接收器上下文
│   ├── Protocols/              # 通信协议定义
│   ├── Config/                 # 配置文件
│   ├── RCUHostCommon/          # 通用工具类
│   ├── NewUDP/                 # 新版UDP处理
│   └── TimingHelper/           # 定时辅助工具
│
├── Domain/                     # 领域模型层
│   ├── *.cs                    # 实体类定义
│   └── *.hbm.xml              # NHibernate映射文件
│
├── Dao/                        # 数据访问层
│   ├── I*Repository.cs         # 仓储接口
│   ├── Implement/              # 仓储实现
│   └── RepositoryBase`1.cs     # 泛型仓储基类
│
├── Service/                    # 业务逻辑层
│   ├── I*Manager.cs            # 服务接口
│   ├── Implement/              # 服务实现
│   └── GenericManagerBase`1.cs # 泛型服务基类
│
├── Common/                     # 公共工具库
│   ├── CSRedisCacheHelper.cs   # Redis缓存帮助类
│   ├── MemoryCacheHelper.cs    # 内存缓存帮助类
│   ├── AliyunSMSHelper.cs      # 阿里云短信帮助类
│   ├── ExcelHelper.cs          # Excel帮助类
│   ├── HttpWebRequestHelper.cs # HTTP请求帮助类
│   ├── Tools.cs                # 通用工具类
│   ├── BLWMQTT.cs              # MQTT客户端
│   ├── XiaoDuOperation.cs      # 小度音箱操作
│   ├── TianMaoOperation.cs     # 天猫精灵操作
│   ├── RokidOperation.cs       # Rokid操作
│   └── ...                     # 其他工具类
│
├── CommonEntity/               # 公共实体层
│   ├── CacheDTO.cs             # 缓存数据传输对象
│   ├── CacheKey.cs             # 缓存键定义
│   ├── DataTongJi.cs           # 数据统计实体
│   └── ...                     # 其他实体类
│
├── ConsoleApplication1/        # 控制台测试程序1
├── ConsoleApplication2/        # 控制台测试程序2
├── ConsoleApplication3/        # 控制台测试程序3
├── ConsoleApplication666/      # 控制台测试程序
├── test/                       # 测试项目
├── MyIPY/                      # Python互操作项目
│
├── DBSql/                      # 数据库脚本
│   └── crics.sql               # 数据库初始化脚本
│
├── lib/                        # 第三方依赖库
│   ├── Spring.NET/             # Spring.NET程序集
│   ├── NHibernate/             # NHibernate程序集
│   ├── Redis/                  # Redis客户端
│   ├── Memcached/              # Memcached客户端
│   ├── log4net/                # 日志组件
│   ├── NPOI/                   # Excel处理组件
│   ├── RestSharp/              # REST客户端
│   ├── jwt/                    # JWT组件
│   ├── M2Mqtt.Net/             # MQTT客户端
│   ├── taskschedule/           # 任务调度组件
│   └── ...                     # 其他依赖
│
└── CA/                         # 证书/许可证文件

分层架构

┌─────────────────────────────────────────────────────────┐
│                    表现层 (WebSite)                      │
│         Controllers / Views / Scripts / Styles          │
├─────────────────────────────────────────────────────────┤
│                    业务逻辑层 (Service)                  │
│                  I*Manager / *Manager                   │
├─────────────────────────────────────────────────────────┤
│                    数据访问层 (Dao)                      │
│               I*Repository / *Repository                │
├─────────────────────────────────────────────────────────┤
│                    领域模型层 (Domain)                   │
│              Entity Classes / HBM Mappings              │
├─────────────────────────────────────────────────────────┤
│                     基础设施层                           │
│    Common (工具类) / CommonEntity (公共实体) / RCUHost   │
└─────────────────────────────────────────────────────────┘

核心模块说明

1. RCUHost - RCU主机通信服务

RCURoom Control Unit主机通信服务是系统的核心组件负责与酒店客房内的智能控制主机进行UDP通信。

主要功能:

  • UDP服务器监听和数据接收
  • 协议解析和命令分发
  • 设备状态实时同步
  • 心跳检测和在线状态维护
  • Redis消息发布/订阅

核心类:

  • HostServer.cs - UDP服务器核心实现
  • *Receiver.cs - 各类命令接收处理器
  • ReceiverContext.cs - 请求上下文

支持的命令类型:

  • 0x01 - 主机注册
  • 0x02 - 心跳
  • 0x0E - 状态上报
  • 0x32-0x36 - 新版协议命令
  • 更多命令参见 CommandType 枚举

2. 智能语音设备集成

系统支持多种智能语音设备:

  • 小度音箱 - 百度小度
  • 天猫精灵 - 阿里天猫
  • Rokid - Rokid智能音箱

功能包括:欢迎词播放、离房提示、设备重置等。

3. 缓存策略

多级缓存架构:

  • L1: MemoryCache (进程内缓存)
  • L2: Redis (分布式缓存)
  • L3: Memcached (可选)

缓存应用场景:

  • 主机在线状态
  • 设备状态数据
  • 取电状态
  • 配置信息

4. 消息队列

使用Redis Pub/Sub进行消息通信

  • redis-takecard_change - 取电状态变更
  • redis-serviceinfo_change - 服务信息变更
  • redis-on_off_line - 上下线状态

数据库设计

数据库: SQL Server
数据库名: CRICS

主要数据表

表名 说明
tb_Host 主机信息
tb_HostModal 主机回路模块
tb_RoomType 房间类型
tb_RoomStatus 房间状态
tb_SysHotel 酒店信息
tb_SysUser 系统用户
tb_AlarmSetting 告警设置
tb_FaultRecord 故障记录
tb_HostModalEnergy 能耗统计
... 更多表参见DBSql

配置文件说明

Spring.NET 配置

配置文件位于各项目的 Config 目录下:

  • WebSite/Config/Controllers.xml - 控制器依赖注入配置
  • Service/Config/*.xml - 服务层配置
  • Dao/Config/*.xml - 数据访问层配置
  • RCUHost/Config/*.xml - RCU服务配置

Web.config

主要配置项:

  • 数据库连接字符串
  • NHibernate配置
  • log4net日志配置
  • Spring.NET配置
  • Redis连接配置

依赖注入

项目使用 Spring.NET 作为IoC容器通过XML配置文件进行依赖注入。

配置示例:

<object type="WebSite.Controllers.HostController, WebSite" parent="BaseController" singleton="false">
    <property name="HostManager" ref="Manager.Host" />
    <property name="HostAirManager" ref="Manager.HostAir" />
    ...
</object>

开发指南

环境要求

  • Visual Studio 2010 或更高版本
  • .NET Framework 4.0
  • SQL Server 2008 或更高版本
  • Redis Server
  • IIS (部署用)

项目构建

  1. 使用Visual Studio打开 CRICS_V3_1124.sln
  2. 还原NuGet包如有
  3. 配置数据库连接字符串
  4. 执行 DBSql/crics.sql 初始化数据库
  5. 构建解决方案

调试运行

  1. 设置 WebSite 为启动项目
  2. 配置IIS Express或本地IIS
  3. F5启动调试

主要功能模块

  1. 设备控制 - 灯光、空调、窗帘、电视等
  2. 状态监控 - 实时状态查看、告警通知
  3. 场景管理 - 场景配置、一键控制
  4. 能耗统计 - 用电量统计、能耗分析
  5. 用户管理 - 权限控制、角色管理
  6. 酒店管理 - 多酒店支持、分组管理
  7. API接口 - 第三方系统集成
  8. 微信控制 - 微信公众号集成
  9. 语音控制 - 智能音箱集成

版本信息

  • 版本: V3
  • 最后更新: 2024年12月

注意事项

  1. RCU通信使用UDP协议注意防火墙配置
  2. Redis缓存需要正确配置连接信息
  3. 数据库初始化脚本需要根据实际情况修改路径
  4. 生产环境部署注意安全配置
Description
CRICS后台(vs2010)
Readme 36 MiB
Languages
C# 53.7%
JavaScript 16.6%
ASP.NET 13%
CSS 10.9%
HTML 5.8%