# 设备连接和设置 - 把所有设备通过网线**连接到局域网** - 通过服务器、路由管理器或者IP工具**获取局域网内设备ip** - **登录设备**:在浏览器输入设备ip和端口号:192.168.0.131:82, 用户名是root, 密码是abc123。 - **设置服务器指向**:在设备界面点击"网络"--“服务器管理”, 输入`mandun_url`,设置服务器指向为`192.168.0.252:8080/ebx-bishop/data/carry` - **重启服务器**:点击"系统"--"重启"--"执行重启" # 宿主环境 - **安装NetCore2.0.5的服务器宿主环境**:双击`dd-env`目录下`NetCore`目录下的`DotNetCore.2.0.5-WindowsHosting.exe`文件 # MySQL数据库 - **安装mysql服务**:双击`dd-env`目录下`mysql`目录下的`NT-mysql-Install.bat`文件。会在服务中多出一个`MysqlServer`服务。 - **修改mysql的配置文件**:打开`dd-env`目录下`mysql`目录下的`my.ini`文件。 ``` bind-address=0.0.0.0 port=3306 skip_grant_tables ``` - **启动mysql服务**:双击`dd-env`目录下`mysql`目录下的`NT-mysql-Start.bat`文件。会在进程中多出一个`mysqld.exe`进程。 - **安装Navicat客户端**:双击`dd-tools`下`Navicat Premium_11.2.7简体中文版`目录下的`navicat112_premium_cs_x64.exe`文件,安装完毕再双击`PatchNavicat.exe`文件。 - **连接mysql数据库**:依次点击"连接"、"MySQL",在界面上填写如下: ``` 连接名:自定义 主机名或IP地址:localhost 端口:3306 用户名:root 密码:lcDb_!@34%^_Mantunsci 勾选"保存密码" ``` 点击"连接测试"。如果连接成功,点击"确定"按钮。 # Redis缓存数据库 - **安装redis服务**:双击`dd-env`目录下的`redis`目录下的`NT-redis-Install.bat`文件。会在服务中多处一个`redis-server`服务。 - **启动redis服务**:双击`dd-env`目录下的`redis`目录下的`NT-redis-Start.bat`文件。会在进程中多处一个`redis-server.exe`进程。 - **安装redis客户端**:双击`dd-tools`目录下的`Redis`目录下的`redis-desktop-manager-0.9.3.817.exe`文件。 - **连接redis服务器**:点击`连接到Redis服务器` ``` 名字:自定义 地址:127.0.0.1 端口:6321 验证:_ebx_cnto_r_srv 安全:无 ``` 点击"好"按钮。 # 创建主数据库teche ``` 数据库名:teche 字符集:utf8mb4--UTF-8 Unicode 排序规则:utf8mbs_general_ci ``` # 创建用户数据库techeuser ``` 数据库名:techeusr 字符集:utf8mb4--UTF-8 Unicode 排序规则:utf8mbs_general_ci ``` # 创建定时任务数据库quartznet - 创建数据库 ``` 数据库名:quartznet 字符集:utf8mb4--UTF-8 Unicode 排序规则:utf8mbs_general_ci ``` - 执行语句 ``` # By: Ron Cordell - roncordell # I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM. # make sure you have UTF-8 collaction for best .NET interoperability # CREATE DATABASE quartznet CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; DROP TABLE IF EXISTS QRTZ_LOCKS; DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; DROP TABLE IF EXISTS QRTZ_TRIGGERS; DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; DROP TABLE IF EXISTS QRTZ_CALENDARS; CREATE TABLE QRTZ_JOB_DETAILS( SCHED_NAME VARCHAR(60) NOT NULL, JOB_NAME VARCHAR(60) NOT NULL, JOB_GROUP VARCHAR(60) NOT NULL, DESCRIPTION VARCHAR(250) NULL, JOB_CLASS_NAME VARCHAR(250) NOT NULL, IS_DURABLE BOOLEAN NOT NULL, IS_NONCONCURRENT BOOLEAN NOT NULL, IS_UPDATE_DATA BOOLEAN NOT NULL, REQUESTS_RECOVERY BOOLEAN NOT NULL, JOB_DATA BLOB NULL, PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)) ENGINE=InnoDB; CREATE TABLE QRTZ_TRIGGERS ( SCHED_NAME VARCHAR(60) NOT NULL, TRIGGER_NAME VARCHAR(60) NOT NULL, TRIGGER_GROUP VARCHAR(60) NOT NULL, JOB_NAME VARCHAR(60) NOT NULL, JOB_GROUP VARCHAR(60) NOT NULL, DESCRIPTION VARCHAR(250) NULL, NEXT_FIRE_TIME BIGINT(19) NULL, PREV_FIRE_TIME BIGINT(19) NULL, PRIORITY INTEGER NULL, TRIGGER_STATE VARCHAR(16) NOT NULL, TRIGGER_TYPE VARCHAR(8) NOT NULL, START_TIME BIGINT(19) NOT NULL, END_TIME BIGINT(19) NULL, CALENDAR_NAME VARCHAR(60) NULL, MISFIRE_INSTR SMALLINT(2) NULL, JOB_DATA BLOB NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)) ENGINE=InnoDB; CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( SCHED_NAME VARCHAR(60) NOT NULL, TRIGGER_NAME VARCHAR(60) NOT NULL, TRIGGER_GROUP VARCHAR(60) NOT NULL, REPEAT_COUNT BIGINT(7) NOT NULL, REPEAT_INTERVAL BIGINT(12) NOT NULL, TIMES_TRIGGERED BIGINT(10) NOT NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) ENGINE=InnoDB; CREATE TABLE QRTZ_CRON_TRIGGERS ( SCHED_NAME VARCHAR(60) NOT NULL, TRIGGER_NAME VARCHAR(60) NOT NULL, TRIGGER_GROUP VARCHAR(60) NOT NULL, CRON_EXPRESSION VARCHAR(120) NOT NULL, TIME_ZONE_ID VARCHAR(80), PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) ENGINE=InnoDB; CREATE TABLE QRTZ_SIMPROP_TRIGGERS ( SCHED_NAME VARCHAR(60) NOT NULL, TRIGGER_NAME VARCHAR(60) NOT NULL, TRIGGER_GROUP VARCHAR(60) NOT NULL, STR_PROP_1 VARCHAR(512) NULL, STR_PROP_2 VARCHAR(512) NULL, STR_PROP_3 VARCHAR(512) NULL, INT_PROP_1 INT NULL, INT_PROP_2 INT NULL, LONG_PROP_1 BIGINT NULL, LONG_PROP_2 BIGINT NULL, DEC_PROP_1 NUMERIC(13,4) NULL, DEC_PROP_2 NUMERIC(13,4) NULL, BOOL_PROP_1 BOOLEAN NULL, BOOL_PROP_2 BOOLEAN NULL, TIME_ZONE_ID VARCHAR(80) NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) ENGINE=InnoDB; CREATE TABLE QRTZ_BLOB_TRIGGERS ( SCHED_NAME VARCHAR(60) NOT NULL, TRIGGER_NAME VARCHAR(60) NOT NULL, TRIGGER_GROUP VARCHAR(60) NOT NULL, BLOB_DATA BLOB NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP), FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) ENGINE=InnoDB; CREATE TABLE QRTZ_CALENDARS ( SCHED_NAME VARCHAR(60) NOT NULL, CALENDAR_NAME VARCHAR(60) NOT NULL, CALENDAR BLOB NOT NULL, PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)) ENGINE=InnoDB; CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( SCHED_NAME VARCHAR(60) NOT NULL, TRIGGER_GROUP VARCHAR(60) NOT NULL, PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)) ENGINE=InnoDB; CREATE TABLE QRTZ_FIRED_TRIGGERS ( SCHED_NAME VARCHAR(60) NOT NULL, ENTRY_ID VARCHAR(140) NOT NULL, TRIGGER_NAME VARCHAR(60) NOT NULL, TRIGGER_GROUP VARCHAR(60) NOT NULL, INSTANCE_NAME VARCHAR(60) NOT NULL, FIRED_TIME BIGINT(19) NOT NULL, SCHED_TIME BIGINT(19) NOT NULL, PRIORITY INTEGER NOT NULL, STATE VARCHAR(16) NOT NULL, JOB_NAME VARCHAR(60) NULL, JOB_GROUP VARCHAR(60) NULL, IS_NONCONCURRENT BOOLEAN NULL, REQUESTS_RECOVERY BOOLEAN NULL, PRIMARY KEY (SCHED_NAME,ENTRY_ID)) ENGINE=InnoDB; CREATE TABLE QRTZ_SCHEDULER_STATE ( SCHED_NAME VARCHAR(60) NOT NULL, INSTANCE_NAME VARCHAR(60) NOT NULL, LAST_CHECKIN_TIME BIGINT(19) NOT NULL, CHECKIN_INTERVAL BIGINT(19) NOT NULL, PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)) ENGINE=InnoDB; CREATE TABLE QRTZ_LOCKS ( SCHED_NAME VARCHAR(60) NOT NULL, LOCK_NAME VARCHAR(40) NOT NULL, PRIMARY KEY (SCHED_NAME,LOCK_NAME)) ENGINE=InnoDB; CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); commit; ``` # 网站配置 - **查看服务器IP**:比如是:`192.168.0.252` - **设置appsettings.json文件**:在`dd-dev_版本号`目录下的`appsettings.json`文件中修改如下: ``` { "ConnectionStrings": { "IDENTITY_CONN": "server=192.168.0.252;port=3306;database=techeusr;user=root;password=lcDb_!@34%^_Mantunsci;SslMode=none", "TaiHe_CONN": "server=192.168.0.252;port=3306;database=teche;user=root;password=lcDb_!@34%^_Mantunsci;SslMode=none;default command timeout=180", "CJ_CONN": "server=192.168.0.252;port=3306;database=ebx;user=root;password=lcDb_!@34%^_Mantunsci;SslMode=none" }, "Logging": { "IncludeScopes": false, "Debug": { "LogLevel": { "Default": "Warning" } }, "Console": { "LogLevel": { "Default": "Warning" } } }, "App": { "ip": "192.168.0.252:8080", "server": "192.168.0.252", "cjapi": "http://192.168.0.252:8080/api/", "xmapi": "http://192.168.0.252:8080/api/", "bjInterval": 180 //计算报警的频率,按每秒钟队列保守处理4个回路 }, "AllowedHosts": "*" } ``` # 网站运行 - **确保mysql已经启动**:在服务中的名称是`MysqlServer` - **确保redis已经启动**:在服务中的名称是`redis-server` - **运行网站**: 在`dd-dev_版本号`目录下,按住`shift+右键`,点击`在此处打开命令窗口`,在控制台输入`dotnet.exe TaiHe.Electricity.Web.dll` - **确保teche数据库中已经有了所有表** - **确保techeuser数据库中已经有了所有表** - **往teche的kaiguanapplication添加一条记录**。 ``` INSERT INTO kaiguanapplication(NAME, DelFlag) VALUES('照明',0) ``` - **登录**:打开网站`192.168.8.131:8080`,输入用户名`TecheFwd2018`,点击"登录"按钮 # 项目管理 点击左侧"工作人员"-"项目管理"。 ``` 项目名称: 管理员用户名: 密码: 姓名: 手机号: ``` # 楼层管理 点击左侧"工作人员"-"楼层管理",右侧在相应项目行点击“编辑”按钮,点击左上角"添加楼层"按钮。 ``` 楼层名称: 排序: ``` # 区域管理 点击左侧"工作人员"-"区域管理",右侧在相应楼层行点击“编辑”按钮,点击左上角"添加区域"按钮。 ``` 区域名称: 排序: ``` # 电箱管理 点击左侧"工作人员"-"区域管理",点击左上角"添加电箱"按钮。 ``` 电箱名称: 添加至:区域 选择项目: 选择楼层: 选择区域: ``` # 模块管理 点击左侧"工作人员"-"模块管理"。这里呈现所有向服务器发送数据的模块,如果有模块不在本地局域网内,可删除。 # 开关管理 点击左侧"工作人员"-"开关管理"。点击左上角"添加"按钮,点击"选择电箱"按钮,找到对应的电箱选择"选择" 按钮。 ``` 选择电箱: 模块类型:回路模块 是否有三相:没有三相 模块MAC: 排序: 备注: ``` # 菜单管理 点击左侧"权限管理"-"菜单管理",点击"同步菜单"按钮。 ``` 电工 可视化管理 当前报警 开关报警 设备管理 可视化管理 电工管理 报警设置 当前报警 定时管理 场景管理 回路管理 报警策略 开关报警 ``` # 可视化管理 点击左侧"可视化管理",点击"查看楼层",点击区域图片。点击界面上某个按钮尝试。