实例介绍
IOT-CS是一款工业智能网关,基于.net core3.1的跨平台物联网网关。它支持不同设备驱动(PLC、数据库、串口设备、上位机、OPC UA、MQTT),具备二次开发驱动的能力实现与Thingsboard进行数据通讯。同时支持MQTT、MYSQL、WEBHOOK等多种资源配置化管理,实现数据的快速推送,提供简单的驱动接口开发。
主要亮点:
1. 内置Mqtt服务端,支持websocket进行标准mqtt输出
2. 可视化的驱动设备配置实现数据采集
3. 支持工业现场的多种设备协议
4. 支持驱动二次开发
5. 内置OPCUA驱动协议,西门子S7协议,Modbus驱动全协议支持,欧姆龙PLC驱动(待开发中),三菱PLC驱动(待开发中)
安装部署:
1. Windows主机运行环境:下载windows运行环境并将其加入PATH环境变量,验证是否安装成功
2. Linux主机运行环境:下载Linux运行环境并安装,验证是否安装成功
3. 下载release版本,解压到指定位置,进入App目录后执行命令即可
4. 对于Windows运行,需将其安装成Windows服务;对于Linux运行,请安装成systemd服务。
该产品支持驱动管理、设备管理、规则管理、资源管理和设备日志等多种功能
【核心代码】
文件清单
└── IOTCS-b5df5c86e0914ca89c684e953b4d190bb86405ee
├── images
│ ├── 1648884682.jpg
│ ├── 1648891279.jpg
│ ├── 1648891309.jpg
│ ├── 1648891338.jpg
│ ├── 1648891377.jpg
│ ├── 1648891419.jpg
│ ├── 1648894225.jpg
│ ├── datalocation.jpg
│ ├── device.jpg
│ ├── deviceParm.jpg
│ ├── diagnostics.png
│ ├── log.jpg
│ ├── shebei.jpg
│ ├── shouye.jpg
│ ├── weixi.jpg
│ └── 二维码.jpg
├── LICENSE
├── README.md
└── src
├── Dockerfile
├── IOTCS.EdgeGateway.Application
│ ├── AppServicesModule.cs
│ ├── IAuthorizationService.cs
│ ├── IDataLocationService.cs
│ ├── IDBDataStorageService.cs
│ ├── IDeviceConfigService.cs
│ ├── IDeviceService.cs
│ ├── IDriveService.cs
│ ├── IFreeSqlMgrService.cs
│ ├── Imps
│ │ ├── AuthorizationService.cs
│ │ ├── DataLocationService.cs
│ │ ├── DBDataStorageService.cs
│ │ ├── DeviceConfigService.cs
│ │ ├── DeviceService.cs
│ │ ├── DriveService.cs
│ │ ├── FreeSqlMgrService.cs
│ │ ├── OpcStorageService.cs
│ │ ├── RelationshipService.cs
│ │ ├── ResourceService.cs
│ │ └── UserService.cs
│ ├── IOpcStorageService.cs
│ ├── IOTCS.EdgeGateway.Application.csproj
│ ├── IRelationshipService.cs
│ ├── IResourceService.cs
│ ├── IUserService.cs
│ └── Utils
│ └── TimestampHelper.cs
├── IOTCS.EdgeGateway.BaseDriver
│ ├── IDriver.cs
│ └── IOTCS.EdgeGateway.BaseDriver.csproj
├── IOTCS.EdgeGateway.BaseProcPipeline
│ ├── IOTCS.EdgeGateway.BaseProcPipeline.csproj
│ ├── IPipelineContext.cs
│ └── RouterMessage.cs
├── IOTCS.EdgeGateway.CmdHandler
│ ├── DataObject2DataObject.cs
│ ├── Extension
│ │ └── CustomConcurrentDictionary.cs
│ ├── IOTCS.EdgeGateway.CmdHandler.csproj
│ ├── Models
│ │ └── WebSocketProtocol.cs
│ ├── OpcHandlerModule.cs
│ ├── OpcUaNotificationHandler.cs
│ ├── SystemNotificationHandler.cs
│ └── UINotificationHandler.cs
├── IOTCS.EdgeGateway.Commands
│ ├── IOTCS.EdgeGateway.Commands.csproj
│ ├── OpcUaCommand.cs
│ ├── OpcUaNotification.cs
│ └── UINotification.cs
├── IOTCS.EdgeGateway.ComResDriver
│ ├── IHttpDriver.cs
│ ├── IMqttDriver.cs
│ ├── IOTCS.EdgeGateway.ComResDriver.csproj
│ └── IResourceDriver.cs
├── IOTCS.EdgeGateway.Core
│ ├── Collections
│ │ ├── ConcurrentHashSet.cs
│ │ ├── ConcurrentList.cs
│ │ ├── IConcurrentList.cs
│ │ ├── IKeyValueCache.cs
│ │ ├── IPool.cs
│ │ ├── ITypeList.cs
│ │ ├── MemoryCache.cs
│ │ ├── Pair.cs
│ │ ├── Pool.cs
│ │ ├── SystemKeyValue.cs
│ │ └── TypeList.cs
│ ├── Extensions
│ │ ├── ByteArrayExtensions.cs
│ │ ├── CollectionExtensions.cs
│ │ ├── DateTimeExtensions.cs
│ │ ├── DecimalExtensions.cs
│ │ ├── DefaultConvert.cs
│ │ ├── EncryptExtension.cs
│ │ ├── IntExtensions.cs
│ │ ├── ObjectExtensions.cs
│ │ ├── StreamExtensions.cs
│ │ └── StringExtensions.cs
│ ├── IocManager.cs
│ ├── IOTCS.EdgeGateway.Core.csproj
│ ├── Reflection
│ │ └── ReflectionHelper.cs
│ └── Security
│ ├── Crc16.cs
│ ├── Crc32.cs
│ ├── MD5Helper.cs
│ ├── Murmur128.cs
│ └── RC4.cs
├── IOTCS.EdgeGateway.Diagnostics
│ ├── DiagnosticsContext
│ │ └── AppDiagnosticsContextModule.cs
│ ├── IOTCS.EdgeGateway.Diagnostics.csproj
│ ├── ISystemDiagnostics.cs
│ ├── IUINotification.cs
│ ├── Notification
│ │ └── SystemNotification.cs
│ ├── SystemDiagnostics.cs
│ └── UINotification.cs
├── IOTCS.EdgeGateway.Dispatch
│ ├── AppDispatchModule.cs
│ ├── DispatchManager.cs
│ ├── IDispatchManager.cs
│ └── IOTCS.EdgeGateway.Dispatch.csproj
├── IOTCS.EdgeGateway.Domain
│ ├── DomainService
│ │ ├── IDeviceDomainService.cs
│ │ ├── Impl
│ │ │ ├── DeviceDomainService.cs
│ │ │ └── RelationshipDomainService.cs
│ │ └── IRelationshipDomainService.cs
│ ├── IOTCS.EdgeGateway.Domain.csproj
│ ├── Models
│ │ ├── DataLocationModel.cs
│ │ ├── DeviceConfigModel.cs
│ │ ├── DeviceModel.cs
│ │ ├── DriveModel.cs
│ │ ├── InitailizeDatabaseModel.cs
│ │ ├── NodeTypeConfigModel.cs
│ │ ├── RelationshipModel.cs
│ │ ├── ResourceModel.cs
│ │ ├── RuleModel.cs
│ │ └── UserModel.cs
│ ├── Repositories
│ │ ├── IDataLocationRepository.cs
│ │ ├── IDeviceConfigRepository.cs
│ │ ├── IDeviceRepository.cs
│ │ ├── IDriveRepository.cs
│ │ ├── IFreeSqlMgrRepository.cs
│ │ ├── IOpcStorageRepository.cs
│ │ ├── IRelationshipRepository.cs
│ │ ├── IResourceRepository.cs
│ │ └── IUserRepository.cs
│ └── ValueObject
│ ├── DataLocationDto.cs
│ ├── DataNodeDto.cs
│ ├── DataRequestDto.cs
│ ├── DataResponseDto.cs
│ ├── Device
│ │ ├── DeviceConfigDto.cs
│ │ ├── DeviceDto.cs
│ │ └── DriveDto.cs
│ ├── InitailizeDatabaseDto.cs
│ ├── JwtSettingsDto.cs
│ ├── LoginDto.cs
│ ├── Notification
│ │ ├── MonitorVariableValueDto.cs
│ │ ├── NotifyBase.cs
│ │ ├── NotifyChangeDto.cs
│ │ └── NotifyChangeVariableDto.cs
│ ├── OpcConfigDto.cs
│ ├── PublishStatusDto.cs
│ ├── RelationshipDto.cs
│ ├── ResourceDto.cs
│ ├── SendMessageDto.cs
│ ├── SystemManagerDto.cs
│ ├── TokenObject.cs
│ └── UserDto.cs
├── IOTCS.EdgeGateway.Freesql
│ ├── CommonDbSessionContext.cs
│ ├── DbContext
│ │ └── AppFreeSqlDbContextModule.cs
│ ├── DBSessionContext.cs
│ ├── Extensions
│ │ ├── CommonDbContextServiceCollectionExtensions.cs
│ │ ├── DbContextOptions.cs
│ │ ├── DbContextServiceCollectionExtensions.cs
│ │ ├── OuterDbContextOptions.cs
│ │ └── OuterDbContextServiceCollectionExtensions.cs
│ ├── ICommonDbSessionContext.cs
│ ├── IDBSessionContext.cs
│ ├── IdleBus
│ │ └── DbBus.cs
│ ├── IOTCS.EdgeGateway.Freesql.csproj
│ ├── IOuterDBSessionContext.cs
│ └── OuterDBSessionContext.cs
├── IOTCS.EdgeGateway.Freesql.Helper
│ ├── Application
│ │ ├── IService.cs
│ │ ├── ServiceBaseAbstract.cs
│ │ └── ServiceBase.cs
│ ├── Domain
│ │ ├── IRepositoryBase.cs
│ │ ├── RepositoryBase.cs
│ │ └── UnitOfWorkManager.cs
│ ├── Extensions
│ │ └── ModelToDTOExtensions.cs
│ └── IOTCS.EdgeGateway.Freesql.Helper.csproj
├── IOTCS.EdgeGateway.HttpHandler
│ ├── AppHttpHandlerModule.cs
│ └── IOTCS.EdgeGateway.HttpHandler.csproj
├── IOTCS.EdgeGateway.Infrastructure
│ ├── Extensions
│ │ └── SwaggerExtension.cs
│ ├── IOTCS.EdgeGateway.Infrastructure.csproj
│ ├── Serialize
│ │ └── AppJsonModule.cs
│ ├── Server
│ │ ├── ApplicationIntegrated.cs
│ │ ├── ApplicationStartBase.cs
│ │ ├── ApplicationStartModule.cs
│ │ ├── ApplicationWithServiceProvider.cs
│ │ └── ServerPortDetecter.cs
│ ├── Socket
│ │ ├── AppWebSocketModule.cs
│ │ ├── CommunicationManager.cs
│ │ ├── Model
│ │ │ ├── NullClientToServerProtocol.cs
│ │ │ ├── WebSocketClientToServerProtocol.cs
│ │ │ └── WebSocketProtocol.cs
│ │ └── WebSocketServerOptions.cs
│ └── WebApi
│ ├── ApplicationMvcModule.cs
│ ├── Controller
│ │ ├── DataLocationController.cs
│ │ ├── DeviceConfigController.cs
│ │ ├── DeviceController.cs
│ │ ├── DriveController.cs
│ │ ├── LoginController.cs
│ │ ├── RelationshipController.cs
│ │ ├── ResourceController.cs
│ │ ├── SystemController.cs
│ │ └── UserController.cs
│ ├── Filter
│ │ ├── HttpGlobalExceptionFilter.cs
│ │ └── ManageVerifyAttribute.cs
│ ├── Middleware
│ │ └── BasicAuthenticationMiddleware.cs
│ ├── Settings
│ │ ├── AccessToken.cs
│ │ ├── CustomException.cs
│ │ ├── OpenApiData.cs
│ │ ├── Settings.cs
│ │ └── Token.cs
│ ├── Startup.cs
│ └── Views
│ ├── Home
│ │ └── Index.cshtml
│ ├── _Layout.cshtml
│ └── _ViewStart.cshtml
├── IOTCS.EdgeGateway.Library
│ ├── ClientUtils.cs
│ ├── FilterDeclaration.cs
│ ├── FormUtils.cs
│ ├── IOTCS.EdgeGateway.Library.csproj
│ ├── OpcUaClient.cs
│ └── OpcUaStatusEventArgs.cs
├── IOTCS.EdgeGateway.Logging
│ ├── Console
│ │ ├── Console
│ │ │ ├── ConsoleLoggerProvider.cs
│ │ │ ├── IConsole.cs
│ │ │ └── Internal
│ │ │ ├── ConsoleLogger.cs
│ │ │ ├── LogMessage.cs
│ │ │ ├── OutputQueue.cs
│ │ │ ├── UnixLogConsole.cs
│ │ │ └── WindowsLogConsole.cs
│ │ └── ConsoleLoggerFactoryExtensions.cs
│ ├── IOTCS.EdgeGateway.Logging.csproj
│ ├── Log4Net
│ │ ├── Internal
│ │ │ ├── InternalConst.cs
│ │ │ ├── Log4NetLogger.cs
│ │ │ └── PathExtension.cs
│ │ └── Log4NetLoggerProvider.cs
│ ├── Log4NetLoggerFactoryExtensions.cs
│ ├── Logging
│ │ ├── ILogger.cs
│ │ ├── ILoggerFactory.cs
│ │ ├── ILoggerProvider.cs
│ │ ├── Internal
│ │ │ ├── AggregateLogger.cs
│ │ │ ├── NullLogger.cs
│ │ │ └── NullLoggerProvider.cs
│ │ ├── LoggerExtensions.cs
│ │ ├── LoggerFactory.cs
│ │ ├── LoggerFactoryExtensions.cs
│ │ └── LogLevel.cs
│ ├── LoggingServiceCollectionExtensions.cs
│ └── NullLogger.cs
├── IOTCS.EdgeGateway.MqttHandler
│ ├── AppMqttHandlerModule.cs
│ ├── Extensions
│ │ └── MqttContextOptions.cs
│ ├── IMqttSessionContext.cs
│ ├── IOTCS.EdgeGateway.MqttHandler.csproj
│ └── MqttSessionContext.cs
├── IOTCS.EdgeGateway.Plugins
│ ├── AppPluginModule.cs
│ ├── BACNetDriver
│ │ ├── BACNetDriver.cs
│ │ └── IBACNetDriver.cs
│ ├── DataInitialize
│ │ ├── IInitializeConfiguration.cs
│ │ └── InitializeConfiguration.cs
│ ├── Executor
│ │ ├── Collector.cs
│ │ ├── ICollector.cs
│ │ └── ResourceComparer .cs
│ ├── IOTCS.EdgeGateway.Plugins.csproj
│ ├── ModbusDriver
│ │ ├── IModbusRTUDriver.cs
│ │ ├── IModbusRTUOverTcpDriver.cs
│ │ ├── IModbusTcpDriver.cs
│ │ ├── ModbusRTUDriver.cs
│ │ ├── ModbusRTUOverTcpDriver.cs
│ │ └── ModbusTcpDriver.cs
│ ├── Monitor
│ │ ├── IMonitorTask.cs
│ │ ├── Model
│ │ │ ├── OpcConnectionStatusDto.cs
│ │ │ ├── SystemInfoDto.cs
│ │ │ └── WebSocketProtocol.cs
│ │ └── MonitorTask.cs
│ ├── OpcUADriver
│ │ ├── IOpcUADriver.cs
│ │ └── OpcUADriver.cs
│ └── SiemensDriver
│ ├── ISiemensS71200NetDriver.cs
│ ├── ISiemensS71500NetDriver.cs
│ ├── SiemensS71200NetDriver.cs
│ └── SiemensS71500NetDriver.cs
├── IOTCS.EdgeGateway.ProcPipeline
│ ├── AppPipelineModule.cs
│ ├── IOTCS.EdgeGateway.ProcPipeline.csproj
│ └── PipelineContext.cs
├── IOTCS.EdgeGateway.Reflection
│ ├── IOTCS.EdgeGateway.Reflection.csproj
│ ├── ReflectionExtensions.cs
│ └── StructTuple.cs
├── IOTCS.EdgeGateway.Repository
│ ├── DataLocationRepository.cs
│ ├── DeviceConfigRepository.cs
│ ├── DeviceRepository.cs
│ ├── DriveRepository.cs
│ ├── FreeSqlMgrRepository.cs
│ ├── IOTCS.EdgeGateway.Repository.csproj
│ ├── OpcStorageRepository.cs
│ ├── QuickCollect.SCADA.Server.Repository.csproj
│ ├── RelationshipRepository.cs
│ ├── RepositoryModule.cs
│ ├── ResourceRepository.cs
│ └── UserRepository.cs
├── IOTCS.EdgeGateway.ResDriver
│ ├── HttpDriver.cs
│ ├── IOTCS.EdgeGateway.ResDriver.csproj
│ └── MqttDriver.cs
├── IOTCS.EdgeGateway.Server
│ ├── appSettings.json
│ ├── Database
│ │ └── iotcs.db
│ ├── iotcs.db
│ ├── IOTCS.EdgeGateway.Server.csproj
│ ├── log4net.config
│ └── Program.cs
├── IOTCS.EdgeGateway.Server.sln
├── IOTCS.EdgeGateway.WebSocketManager
│ ├── IOTCS.EdgeGateway.WebSocketManager.csproj
│ ├── Json
│ │ ├── JsonBinderWithoutAssembly.cs
│ │ └── PrimitiveJsonConverter.cs
│ ├── Networking
│ │ ├── InvocationDescriptor.cs
│ │ ├── InvocationResult.cs
│ │ ├── Message.cs
│ │ └── RemoteException.cs
│ ├── Strategies
│ │ ├── ControllerMethodInvocationStrategy.cs
│ │ ├── DecoratedControllerMethodInvocationStrategy.cs
│ │ ├── MethodInvocationStrategy.cs
│ │ └── StringMethodInvocationStrategy.cs
│ ├── WebSocketConnectionManager.cs
│ ├── WebSocketHandler.cs
│ ├── WebSocketManagerExtensions.cs
│ └── WebSocketManagerMiddleware.cs
└── IOTCS.EdgeGateway.WsHandler
├── IOTCS.EdgeGateway.WsHandler.csproj
└── WsMessageHandler.cs
83 directories, 319 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论