在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → IoTSharp开源物联网平台:数据采集、处理、可视化及设备管理

IoTSharp开源物联网平台:数据采集、处理、可视化及设备管理

一般编程问题

下载此实例

实例介绍

【实例简介】
IoTSharp是一个开放源代码的物联网平台,用于数据采集、处理、可视化以及设备管理。它支持多种数据库,包括PostgreSql、MySql、Oracle、SQLServer、Sqlite和Cassandra,以及多种时间序列数据库如InfluxDB、IoTDB、TDengine、TimescaleDB和PinusDB。此外,IoTSharp还支持多种事件总线消息队列,例如RabbitMQ、Kafka、InMemory、ZeroMQ、NATS、Pulsar和RedisStreams等。

IoTSharp平台的前端使用Vue3实现,提供了丰富的部署和配置选项,包括Docker部署、Linux部署和Windows部署。平台还提供了IoTSharp.SDKs,包括IoTSharp.Sdk.Http和IoTSharp.Sdk.MQTT,以及专门的客户端SDK,如IoTSharp-C-Client-Sdk和IoTSharp for nanoFramework,适用于不同的开发需求。

IoTSharp致力于构建一个健康的生态系统,包括IoTSharp.EntityFrameworkCore.Taos、IoTSharp.X509Extensions等多个扩展库,旨在为开发者提供一个全面、灵活的物联网解决方案。
【实例截图】
【核心代码】
文件清单
└── IoTSharp-6235677c8161de50b6c2c15298a44eeb25559ae7
    ├── appsettings.Development.json
    ├── appveyor.yml
    ├── BACKERS.md
    ├── buildimage.cmd
    ├── buildimageuixe.cmd
    ├── ClientApp
    │   ├── aspnetcore-https.js
    │   ├── CHANGELOG.md
    │   ├── ClientApp.esproj
    │   ├── index.html
    │   ├── LICENSE
    │   ├── package.json
    │   ├── plugins.d.ts
    │   ├── public
    │   │   ├── 200x200.png
    │   │   ├── 32x32.png
    │   │   ├── 350x100.png
    │   │   ├── 512x512.png
    │   │   ├── 64x64.png
    │   │   ├── 677x130.png
    │   │   ├── 96x96.png
    │   │   ├── android-chrome-192x192.png
    │   │   ├── android-chrome-512x512.png
    │   │   ├── apple-touch-icon.png
    │   │   ├── docusaurus.png
    │   │   ├── favicon-16x16.png
    │   │   ├── favicon-32x32.png
    │   │   ├── favicon.ico
    │   │   ├── favicon.svg
    │   │   ├── iotsharp.png
    │   │   ├── logo_dark.svg
    │   │   ├── logo.svg
    │   │   ├── logo_white.svg
    │   │   └── site.webmanifest
    │   ├── README.md
    │   ├── shim.d.ts
    │   ├── source.d.ts
    │   ├── src
    │   │   ├── api
    │   │   │   ├── account
    │   │   │   │   └── index.ts
    │   │   │   ├── alarm
    │   │   │   │   └── index.ts
    │   │   │   ├── asset
    │   │   │   │   └── index.ts
    │   │   │   ├── customer
    │   │   │   │   └── index.ts
    │   │   │   ├── dashboard
    │   │   │   │   └── index.ts
    │   │   │   ├── devices
    │   │   │   │   └── index.ts
    │   │   │   ├── flows
    │   │   │   │   └── index.ts
    │   │   │   ├── iapiresult.ts
    │   │   │   ├── installer
    │   │   │   │   └── index.ts
    │   │   │   ├── login
    │   │   │   │   └── index.ts
    │   │   │   ├── menu
    │   │   │   │   └── index.ts
    │   │   │   ├── produce
    │   │   │   │   └── index.ts
    │   │   │   ├── tenants
    │   │   │   │   └── index.ts
    │   │   │   └── user
    │   │   │       └── index.ts
    │   │   ├── App.vue
    │   │   ├── assets
    │   │   │   ├── login-icon-two.svg
    │   │   │   ├── logo-icon.svg
    │   │   │   ├── logo-mini.svg
    │   │   │   └── logo-text.svg
    │   │   ├── components
    │   │   │   ├── AdvancedKeyValue
    │   │   │   │   ├── AdvancedKeyValue.vue
    │   │   │   │   ├── readme.md
    │   │   │   │   ├── z-select.vue
    │   │   │   │   └── z-switch.vue
    │   │   │   ├── AppLogo.vue
    │   │   │   ├── auth
    │   │   │   │   ├── authAll.vue
    │   │   │   │   ├── auths.vue
    │   │   │   │   └── auth.vue
    │   │   │   ├── card
    │   │   │   │   └── index.vue
    │   │   │   ├── cropper
    │   │   │   │   └── index.vue
    │   │   │   ├── editor
    │   │   │   │   ├── index.vue
    │   │   │   │   └── toolbar.ts
    │   │   │   ├── iconSelector
    │   │   │   │   └── index.vue
    │   │   │   ├── monaco
    │   │   │   │   └── monaco.vue
    │   │   │   ├── noticeBar
    │   │   │   │   └── index.vue
    │   │   │   └── svgIcon
    │   │   │       └── index.vue
    │   │   ├── components.d.ts
    │   │   ├── dtos
    │   │   │   ├── deviceaddoreditdto.ts
    │   │   │   ├── devicepropdto.ts
    │   │   │   ├── produceaddoreditdto.ts
    │   │   │   ├── ruleaddoreditdtodto.ts
    │   │   │   └── tenantaddoreditdto.ts
    │   │   ├── i18n
    │   │   │   ├── index.ts
    │   │   │   ├── lang
    │   │   │   │   ├── en.ts
    │   │   │   │   ├── zh-cn.ts
    │   │   │   │   └── zh-tw.ts
    │   │   │   └── pages
    │   │   │       ├── formI18n
    │   │   │       │   ├── en.ts
    │   │   │       │   ├── zh-cn.ts
    │   │   │       │   └── zh-tw.ts
    │   │   │       └── login
    │   │   │           ├── en.ts
    │   │   │           ├── zh-cn.ts
    │   │   │           └── zh-tw.ts
    │   │   ├── layout
    │   │   │   ├── component
    │   │   │   │   ├── aside.vue
    │   │   │   │   ├── columnsAside.vue
    │   │   │   │   ├── header.vue
    │   │   │   │   └── main.vue
    │   │   │   ├── footer
    │   │   │   │   └── index.vue
    │   │   │   ├── index.vue
    │   │   │   ├── lockScreen
    │   │   │   │   └── index.vue
    │   │   │   ├── logo
    │   │   │   │   └── index.vue
    │   │   │   ├── main
    │   │   │   │   ├── classic.vue
    │   │   │   │   ├── columns.vue
    │   │   │   │   ├── defaults.vue
    │   │   │   │   └── transverse.vue
    │   │   │   ├── navBars
    │   │   │   │   ├── breadcrumb
    │   │   │   │   │   ├── breadcrumb.vue
    │   │   │   │   │   ├── closeFull.vue
    │   │   │   │   │   ├── index.vue
    │   │   │   │   │   ├── search.vue
    │   │   │   │   │   ├── setings.vue
    │   │   │   │   │   ├── userNews.vue
    │   │   │   │   │   └── user.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── tagsView
    │   │   │   │       ├── contextmenu.vue
    │   │   │   │       └── tagsView.vue
    │   │   │   ├── navMenu
    │   │   │   │   ├── horizontal.vue
    │   │   │   │   ├── menu-icons-config.js
    │   │   │   │   ├── subItem.vue
    │   │   │   │   └── vertical.vue
    │   │   │   └── routerView
    │   │   │       ├── iframes.vue
    │   │   │       ├── link.vue
    │   │   │       └── parent.vue
    │   │   ├── main.ts
    │   │   ├── router
    │   │   │   ├── backEnd.ts
    │   │   │   ├── frontEnd.ts
    │   │   │   ├── index.ts
    │   │   │   └── route.ts
    │   │   ├── stores
    │   │   │   ├── appInfo.ts
    │   │   │   ├── index.ts
    │   │   │   ├── interface
    │   │   │   │   └── index.ts
    │   │   │   ├── keepAliveNames.ts
    │   │   │   ├── requestOldRoutes.ts
    │   │   │   ├── routesList.ts
    │   │   │   ├── tagsViewRoutes.ts
    │   │   │   ├── themeConfig.ts
    │   │   │   └── userInfo.ts
    │   │   ├── theme
    │   │   │   ├── app.scss
    │   │   │   ├── common
    │   │   │   │   └── transition.scss
    │   │   │   ├── dark.scss
    │   │   │   ├── element.scss
    │   │   │   ├── iconSelector.scss
    │   │   │   ├── index.scss
    │   │   │   ├── loading.scss
    │   │   │   ├── media
    │   │   │   │   ├── chart.scss
    │   │   │   │   ├── cityLinkage.scss
    │   │   │   │   ├── date.scss
    │   │   │   │   ├── dialog.scss
    │   │   │   │   ├── error.scss
    │   │   │   │   ├── form.scss
    │   │   │   │   ├── home.scss
    │   │   │   │   ├── index.scss
    │   │   │   │   ├── layout.scss
    │   │   │   │   ├── login.scss
    │   │   │   │   ├── media.scss
    │   │   │   │   ├── pagination.scss
    │   │   │   │   ├── personal.scss
    │   │   │   │   ├── scrollbar.scss
    │   │   │   │   └── tagsView.scss
    │   │   │   ├── mixins
    │   │   │   │   └── index.scss
    │   │   │   ├── other.scss
    │   │   │   └── waves.scss
    │   │   ├── utils
    │   │   │   ├── arrayOperation.ts
    │   │   │   ├── authDirective.ts
    │   │   │   ├── authFunction.ts
    │   │   │   ├── commonFunction.ts
    │   │   │   ├── customDirective.ts
    │   │   │   ├── dateUtil.ts
    │   │   │   ├── directive.ts
    │   │   │   ├── download.ts
    │   │   │   ├── formatTime.ts
    │   │   │   ├── getStyleSheets.ts
    │   │   │   ├── loading.ts
    │   │   │   ├── other.ts
    │   │   │   ├── request.ts
    │   │   │   ├── setIconfont.ts
    │   │   │   ├── storage.ts
    │   │   │   ├── theme.ts
    │   │   │   ├── toolsValidate.ts
    │   │   │   └── wartermark.ts
    │   │   └── views
    │   │       ├── dashboard
    │   │       │   ├── homeCardItems.ts
    │   │       │   ├── HomeCardItem.vue
    │   │       │   ├── index.vue
    │   │       │   └── v1.vue
    │   │       ├── error
    │   │       │   ├── 401.vue
    │   │       │   └── 404.vue
    │   │       ├── iot
    │   │       │   ├── alarms
    │   │       │   │   ├── alarmlist.vue
    │   │       │   │   ├── alarmSearchOptions.ts
    │   │       │   │   └── model.ts
    │   │       │   ├── assets
    │   │       │   │   ├── assetdetail.vue
    │   │       │   │   ├── assetlist.vue
    │   │       │   │   ├── crudOptions
    │   │       │   │   │   └── assetListCrudOptions.ts
    │   │       │   │   ├── designer
    │   │       │   │   │   ├── assetdesigner.vue
    │   │       │   │   │   ├── contextmenu
    │   │       │   │   │   │   ├── edgemenu.vue
    │   │       │   │   │   │   └── shapemenu.vue
    │   │       │   │   │   ├── drawercontainer.vue
    │   │       │   │   │   ├── models
    │   │       │   │   │   │   └── assetdesignermodel.ts
    │   │       │   │   │   ├── panels
    │   │       │   │   │   │   ├── assetpanel.vue
    │   │       │   │   │   │   ├── devicepanel.vue
    │   │       │   │   │   │   └── mapping.vue
    │   │       │   │   │   └── shapes
    │   │       │   │   │       ├── asset.ts
    │   │       │   │   │       └── device.ts
    │   │       │   │   ├── detail
    │   │       │   │   │   ├── AssetDetailProps.vue
    │   │       │   │   │   ├── AssetDetailTelemetry.vue
    │   │       │   │   │   ├── assetPropsCrudOptions.ts
    │   │       │   │   │   └── assetTelemetryRealtimeCrudOptions.ts
    │   │       │   │   └── model
    │   │       │   │       └── assetList.ts
    │   │       │   ├── devices
    │   │       │   │   ├── AddDevice.vue
    │   │       │   │   ├── addRules.vue
    │   │       │   │   ├── designer
    │   │       │   │   │   ├── contextmenu
    │   │       │   │   │   │   ├── menuconnector.vue
    │   │       │   │   │   │   └── menunode.vue
    │   │       │   │   │   ├── models
    │   │       │   │   │   │   ├── clientdto.ts
    │   │       │   │   │   │   ├── constants.ts
    │   │       │   │   │   │   ├── drawerparams.ts
    │   │       │   │   │   │   ├── gatewaydesignermodel.ts
    │   │       │   │   │   │   ├── modbusmapping.ts
    │   │       │   │   │   │   └── opcuamapping.ts
    │   │       │   │   │   ├── pannels
    │   │       │   │   │   │   ├── basic
    │   │       │   │   │   │   │   └── basic.vue
    │   │       │   │   │   │   ├── connector
    │   │       │   │   │   │   │   ├── connectorprofile.ts
    │   │       │   │   │   │   │   └── connector.vue
    │   │       │   │   │   │   ├── device
    │   │       │   │   │   │   │   ├── deviceprofile.ts
    │   │       │   │   │   │   │   └── device.vue
    │   │       │   │   │   │   ├── drawercontainer.vue
    │   │       │   │   │   │   ├── modbus
    │   │       │   │   │   │   │   ├── modbuspointlist.vue
    │   │       │   │   │   │   │   ├── modbusprofile.ts
    │   │       │   │   │   │   │   └── modbus.vue
    │   │       │   │   │   │   ├── opcua
    │   │       │   │   │   │   │   ├── opcuapointlist.vue
    │   │       │   │   │   │   │   ├── opcuaprofile.ts
    │   │       │   │   │   │   │   └── opcua.vue
    │   │       │   │   │   │   └── point
    │   │       │   │   │   │       └── point.vue
    │   │       │   │   │   └── shapes
    │   │       │   │   │       ├── device.ts
    │   │       │   │   │       └── gateway.ts
    │   │       │   │   ├── detail
    │   │       │   │   │   ├── deviceDetailBaseInfoColumns.ts
    │   │       │   │   │   ├── DeviceDetailProps.vue
    │   │       │   │   │   ├── DeviceDetailRules.vue
    │   │       │   │   │   ├── DeviceDetailTelemetryHistory.vue
    │   │       │   │   │   ├── DeviceDetailTelemetry.vue
    │   │       │   │   │   ├── devicePropsCrudOptions.ts
    │   │       │   │   │   ├── deviceRulesCrudOptions.ts
    │   │       │   │   │   ├── deviceTelemetryRealtimeCrudOptions.ts
    │   │       │   │   │   ├── maps
    │   │       │   │   │   │   └── bmap
    │   │       │   │   │   │       └── BMap.vue
    │   │       │   │   │   ├── propform.vue
    │   │       │   │   │   └── telemetryHistoryChartOptions.ts
    │   │       │   │   ├── deviceBackup.vue
    │   │       │   │   ├── deviceCrudOptions.ts
    │   │       │   │   ├── DeviceDetail.vue
    │   │       │   │   ├── devicegraph.vue
    │   │       │   │   ├── devicelist.vue
    │   │       │   │   ├── gatewaydesigner.vue
    │   │       │   │   ├── gatewaylist.vue
    │   │       │   │   ├── model.ts
    │   │       │   │   └── propeditor.vue
    │   │       │   ├── forms
    │   │       │   │   └── edit.vue
    │   │       │   ├── gateway
    │   │       │   │   ├── gatewaydesignermodel.ts
    │   │       │   │   ├── gatewaydesigner.vue
    │   │       │   │   ├── gatewaylist.vue
    │   │       │   │   └── shapes
    │   │       │   │       ├── device.ts
    │   │       │   │       └── gateway.ts
    │   │       │   ├── produce
    │   │       │   │   ├── deviceform.vue
    │   │       │   │   ├── producedatadictionaryform.vue
    │   │       │   │   ├── produceform.vue
    │   │       │   │   ├── producelist.vue
    │   │       │   │   └── producepropform.vue
    │   │       │   ├── rules
    │   │       │   │   ├── addflow.vue
    │   │       │   │   ├── component
    │   │       │   │   │   ├── contextmenu
    │   │       │   │   │   │   ├── line.vue
    │   │       │   │   │   │   └── node.vue
    │   │       │   │   │   ├── drawer
    │   │       │   │   │   │   ├── basic.vue
    │   │       │   │   │   │   ├── executor.vue
    │   │       │   │   │   │   ├── index.vue
    │   │       │   │   │   │   ├── line.vue
    │   │       │   │   │   │   └── script.vue
    │   │       │   │   │   └── tool
    │   │       │   │   │       ├── help.vue
    │   │       │   │   │       ├── index.vue
    │   │       │   │   │       └── simulator.vue
    │   │       │   │   ├── flowdesigner.vue
    │   │       │   │   ├── flowevents.vue
    │   │       │   │   ├── flowlist.vue
    │   │       │   │   ├── flowsimulator.vue
    │   │       │   │   ├── js
    │   │       │   │   │   ├── config.ts
    │   │       │   │   │   ├── leftNavList.ts
    │   │       │   │   │   └── mock.ts
    │   │       │   │   └── models.ts
    │   │       │   └── settings
    │   │       │       ├── certmgr.vue
    │   │       │       ├── crudOptions
    │   │       │       │   ├── customerListCrudOptions.ts
    │   │       │       │   ├── tenantListCrudOptions.ts
    │   │       │       │   └── userListCrudOptions.ts
    │   │       │       ├── customerlist.vue
    │   │       │       ├── dictionarygrouplist.vue
    │   │       │       ├── dictionarylist.vue
    │   │       │       ├── model
    │   │       │       │   ├── tenantListModel.ts
    │   │       │       │   └── userListModel.ts
    │   │       │       ├── tenantlist.vue
    │   │       │       └── userlist.vue
    │   │       ├── login
    │   │       │   ├── component
    │   │       │   │   └── account.vue
    │   │       │   ├── index.vue
    │   │       │   ├── signup_form_option.ts
    │   │       │   ├── signup_form_rules.ts
    │   │       │   └── signup.vue
    │   │       ├── profile
    │   │       │   ├── index.vue
    │   │       │   ├── password_form_rules.ts
    │   │       │   ├── profile_form_option.ts
    │   │       │   └── profile_form_rules.ts
    │   │       └── setup
    │   │           ├── index.vue
    │   │           ├── setup_form_option.json
    │   │           └── setup_form_rules.ts
    │   ├── tsconfig.json
    │   ├── tsconfig.node.json
    │   ├── types
    │   │   └── global.d.ts
    │   └── vite.config.ts
    ├── Deployments
    │   ├── rabbit_mongo_influx
    │   │   ├── appsettings.Production.json
    │   │   ├── catlog.sh
    │   │   ├── data
    │   │   │   └── servers.json
    │   │   ├── default.dcproj.user
    │   │   ├── docker-compose.yml
    │   │   ├── login.sh
    │   │   ├── mongodb-init.sh
    │   │   ├── rabbit_mongo_influx.dcproj
    │   │   ├── README.md
    │   │   ├── upgrade.sh
    │   │   └── zeromq_taos.dcproj.user
    │   ├── README.md
    │   ├── zeromq_sharding
    │   │   ├── appsettings.Production.json
    │   │   ├── catlog.sh
    │   │   ├── docker-compose.yml
    │   │   ├── loginbash.sh
    │   │   ├── README.md
    │   │   ├── servers.json
    │   │   ├── upgrade.sh
    │   │   ├── zeromq_sharding.dcproj
    │   │   └── zeromq_sharding.dcproj.user
    │   └── zeromq_taos
    │       ├── appsettings.Production.json
    │       ├── catlog.sh
    │       ├── default.dcproj.user
    │       ├── docker-compose.yml
    │       ├── login.sh
    │       ├── README.md
    │       ├── servers.json
    │       ├── upgrade.sh
    │       ├── zeromq_taos.dcproj
    │       └── zeromq_taos.dcproj.user
    ├── docker-compose.dcproj
    ├── docker-compose.override.yml
    ├── docker-compose.yml
    ├── docs
    │   ├── babel.config.js
    │   ├── blog
    │   │   ├── 2022-02-14-first-version-doc.md
    │   │   ├── 2023-01-11_img
    │   │   │   ├── 1.png
    │   │   │   ├── 2.png
    │   │   │   └── 3.png
    │   │   ├── 2023-01-11.md
    │   │   ├── 2023-02-14-videos_1.md
    │   │   ├── 2023-02-14-videos_2.md
    │   │   └── authors.yml
    │   ├── docs
    │   │   ├── intro.md
    │   │   ├── tutorial-basics
    │   │   │   ├── aggregate.md
    │   │   │   ├── appsettings.md
    │   │   │   ├── _category_.json
    │   │   │   ├── connectivity.md
    │   │   │   ├── debug.md
    │   │   │   ├── deploy_by_docker.md
    │   │   │   ├── deploy_linux.md
    │   │   │   ├── deploy_win.md
    │   │   │   ├── gateway.md
    │   │   │   ├── influxdb.md
    │   │   │   ├── iotsharp.md
    │   │   │   ├── scriptuse.md
    │   │   │   ├── sourcecode.md
    │   │   │   └── webapi.md
    │   │   └── tutorial-extras
    │   │       ├── _category_.json
    │   │       ├── http.md
    │   │       ├── mqtt.md
    │   │       ├── mqtt_tls.md
    │   │       └── raw_data_gateway.md
    │   ├── docusaurus.config.js
    │   ├── package.json
    │   ├── README.md
    │   ├── sidebars.js
    │   ├── src
    │   │   ├── components
    │   │   │   ├── HomepageFeatures.js
    │   │   │   └── HomepageFeatures.module.css
    │   │   ├── css
    │   │   │   └── custom.css
    │   │   └── pages
    │   │       ├── index.js
    │   │       ├── index.module.css
    │   │       └── markdown-page.md
    │   ├── static
    │   │   ├── CNAME
    │   │   └── img
    │   │       ├── 200x200.png
    │   │       ├── 20190615010003.jpg
    │   │       ├── 20190615010115.jpg
    │   │       ├── 20221118224640.jpg
    │   │       ├── 32x32.png
    │   │       ├── 350x100.png
    │   │       ├── 512x512.png
    │   │       ├── 64x64.png
    │   │       ├── 677x130.png
    │   │       ├── 96x96.png
    │   │       ├── android-chrome-192x192.png
    │   │       ├── android-chrome-512x512.png
    │   │       ├── apple-touch-icon.png
    │   │       ├── docusaurus.png
    │   │       ├── favicon-16x16.png
    │   │       ├── favicon-32x32.png
    │   │       ├── favicon.ico
    │   │       ├── InfluxDB2.PNG
    │   │       ├── iotsharp
    │   │       │   ├── add-gateway.png
    │   │       │   ├── alarm-rule-design.png
    │   │       │   ├── alarm-rule-function.png
    │   │       │   ├── alarm-rule-mqtt-test.png
    │   │       │   ├── alarm-rule-result.png
    │   │       │   ├── bgweb.png
    │   │       │   ├── csharp-function.png
    │   │       │   ├── csharp-result.png
    │   │       │   ├── csharp-test.png
    │   │       │   ├── docker-run.png
    │   │       │   ├── font-login.png
    │   │       │   ├── gateway-config.png
    │   │       │   ├── gateway-online.png
    │   │       │   ├── gateway-token.png
    │   │       │   ├── influxdb-addtoken.png
    │   │       │   ├── influxdb-copytoken.png
    │   │       │   ├── influxdb-data.png
    │   │       │   ├── influxdb-ini.png
    │   │       │   ├── iotsharp-dashboard.png
    │   │       │   ├── iotsharp-regeist.png
    │   │       │   ├── javascript-function.png
    │   │       │   ├── javascript-result.png
    │   │       │   ├── javascript-test.png
    │   │       │   ├── kep_iotgateway2.png
    │   │       │   ├── kep_iotgateway.png
    │   │       │   ├── lua-function.png
    │   │       │   ├── lua-result.png
    │   │       │   ├── lua-test.png
    │   │       │   ├── mqtt_x509.png
    │   │       │   ├── project-appsettings.png
    │   │       │   ├── python-function.png
    │   │       │   ├── python-result.png
    │   │       │   ├── python-test.png
    │   │       │   ├── rules-list.png
    │   │       │   ├── script-type.png
    │   │       │   ├── sql-code.png
    │   │       │   ├── sql-function.png
    │   │       │   ├── sql-result.png
    │   │       │   ├── sql-test.png
    │   │       │   ├── webapi-auth.png
    │   │       │   ├── webapi-deviceid.png
    │   │       │   ├── webapi-login.png
    │   │       │   └── webapi-telemetry.png
    │   │       ├── iotsharp128.png
    │   │       ├── iotsharp32.png
    │   │       ├── iotsharp64.png
    │   │       ├── iotsharp.png
    │   │       ├── IoTSharpQQGruop.png
    │   │       ├── logo_dark.svg
    │   │       ├── logo.svg
    │   │       ├── logo_white.svg
    │   │       ├── maikebing_wxpay.png
    │   │       ├── mstile-144x144.png
    │   │       ├── mstile-150x150.png
    │   │       ├── mstile-310x150.png
    │   │       ├── mstile-310x310.png
    │   │       ├── mstile-70x70.png
    │   │       ├── qrcode.jpg
    │   │       ├── qyqun.jpg
    │   │       ├── screenshot.png
    │   │       ├── site.webmanifest
    │   │       ├── tn.png
    │   │       ├── tutorial
    │   │       │   ├── docsVersionDropdown.png
    │   │       │   └── localeDropdown.png
    │   │       ├── undraw_docusaurus_mountain.svg
    │   │       ├── undraw_docusaurus_react.svg
    │   │       └── undraw_docusaurus_tree.svg
    │   └── yarn.lock
    ├── IoTSharp
    │   ├── appsettings.Cassandra.json
    │   ├── appsettings.ClickHouse.json
    │   ├── appsettings.DefaultSettings.json
    │   ├── appsettings.Development.json
    │   ├── appsettings.InfluxDB.json
    │   ├── appsettings.InMemory.json
    │   ├── appsettings.json
    │   ├── appsettings.MySql.json
    │   ├── appsettings.Oracle.json
    │   ├── appsettings.PostgreSql.json
    │   ├── appsettings.Production.json
    │   ├── appsettings.Sqlite.json
    │   ├── appsettings.SQLServer.json
    │   ├── appsettings.Taos.json
    │   ├── appsettings.TimescaleDB.json
    │   ├── Controllers
    │   │   ├── AccountController.cs
    │   │   ├── AlarmController.cs
    │   │   ├── AssetController.cs
    │   │   ├── AuthorizedKeysController.cs
    │   │   ├── BlobStorageController.cs
    │   │   ├── CaptchaController.cs
    │   │   ├── CustomersController.cs
    │   │   ├── DeviceModelController.cs
    │   │   ├── DevicesController.cs
    │   │   ├── DictionaryController.cs
    │   │   ├── DictionaryGroupController.cs
    │   │   ├── DynamicFormInfoController.cs
    │   │   ├── DynamicFormRemoteApiController.cs
    │   │   ├── HealthChecksController.cs
    │   │   ├── HomeController.cs
    │   │   ├── InstallerController.cs
    │   │   ├── MenuController.cs
    │   │   ├── MetricsController.cs
    │   │   ├── ProducesController.cs
    │   │   ├── RulesController.cs
    │   │   ├── SubscriptionController.cs
    │   │   └── TenantsController.cs
    │   ├── Dockerfile
    │   ├── Dtos
    │   │   ├── AccountDto.cs
    │   │   ├── AttributeDataDto.cs
    │   │   ├── AttributeLatestByKeyNameAndDeviceIdDto.cs
    │   │   ├── AuthorizedKeyDto.cs
    │   │   ├── BaseEventDto.cs
    │   │   ├── CreateDeviceByProduceDto.cs
    │   │   ├── CreateRootCertificateDto.cs
    │   │   ├── CreateUserDto.cs
    │   │   ├── CreateUserInput.cs
    │   │   ├── CustomerDto.cs
    │   │   ├── DeviceAttrEditDto.cs
    │   │   ├── DeviceAttributeDto.cs
    │   │   ├── DeviceDetailDto.cs
    │   │   ├── DeviceModelDto.cs
    │   │   ├── DevicePostDto.cs
    │   │   ├── DevicePutDto.cs
    │   │   ├── DeviceRuleDto.cs
    │   │   ├── FlowOperationDto.cs
    │   │   ├── GatewayDeviceStatus.cs
    │   │   ├── GatewayPlayload.cs
    │   │   ├── HomeKanbanDto.cs
    │   │   ├── InstallDto.cs
    │   │   ├── InstanceDto.cs
    │   │   ├── LockDto.cs
    │   │   ├── MenuItem.cs
    │   │   ├── ProduceAddDto.cs
    │   │   ├── ProduceDataEditDto.cs
    │   │   ├── ProduceDictionaryEditDto.cs
    │   │   ├── ProduceDto.cs
    │   │   ├── RefreshTokenDto.cs
    │   │   ├── RemoveDeviceAttributeInput.cs
    │   │   ├── RuleTaskExecutorDto.cs
    │   │   ├── TelemetryDataDto.cs
    │   │   ├── TimeSpanConverter.cs
    │   │   ├── TimespanConverterNewtonsoft.cs
    │   │   └── UserInfoDto.cs
    │   ├── Extensions
    │   │   ├── ApplicationDBInitializer.cs
    │   │   ├── CachingExtension.cs
    │   │   ├── FlowExtension.cs
    │   │   ├── IoTSharpExtension.cs
    │   │   ├── JwtControllerExtension.cs
    │   │   ├── MqttExtension.cs
    │   │   ├── QueryExtensions.cs
    │   │   └── RpcClient.cs
    │   ├── FlowRuleEngine
    │   │   ├── ConditionTestResult.cs
    │   │   ├── DynamicData.cs
    │   │   ├── FlowRuleProcessor.cs
    │   │   ├── Models.cs
    │   │   ├── SimpleFLowExcutor.cs
    │   │   └── TaskExecutorHelper.cs
    │   ├── Gateways
    │   │   ├── KepServerEx.cs
    │   │   └── RawDataGateway.cs
    │   ├── IoTSharp.csproj
    │   ├── iotsharp.service
    │   ├── IoTSharp.xml
    │   ├── Jobs
    │   │   ├── CachingJob.cs
    │   │   └── CheckDevices.cs
    │   ├── Models
    │   │   ├── BaiduTranslateProfile.cs
    │   │   ├── FieldData.cs
    │   │   ├── FormFieldTypes
    │   │   │   ├── NzOption.cs
    │   │   │   └── NzUploadFile.cs
    │   │   ├── Graph
    │   │   │   ├── Body.cs
    │   │   │   ├── DeviceProp.cs
    │   │   │   ├── Mapping.cs
    │   │   │   ├── MappingObject.cs
    │   │   │   ├── ModelDiagram.cs
    │   │   │   ├── Position.cs
    │   │   │   ├── Shape.cs
    │   │   │   ├── Size.cs
    │   │   │   └── Text.cs
    │   │   ├── ModelAssetDevice.cs
    │   │   ├── ModelCaptcha.cs
    │   │   ├── ModelOriginatorSearch.cs
    │   │   ├── ModelRefreshToken.cs
    │   │   ├── ModelRuleBind.cs
    │   │   ├── PagedData.cs
    │   │   ├── QueryDto.cs
    │   │   ├── Rule
    │   │   │   ├── ModelFlow.cs
    │   │   │   ├── ModelWorkFlow.cs
    │   │   │   └── Params
    │   │   │       └── InputParam.cs
    │   │   └── UserProfile.cs
    │   ├── Program.cs
    │   ├── Properties
    │   │   ├── launchSettings.json
    │   │   ├── PublishProfiles
    │   │   │   ├── linux-arm32.pubxml
    │   │   │   ├── linux-arm64.pubxml
    │   │   │   ├── linux-x64.pubxml
    │   │   │   ├── osx-x64.pubxml
    │   │   │   └── win7-x64.pubxml
    │   │   ├── Resources.Designer.cs
    │   │   └── Resources.resx
    │   ├── Resources
    │   │   ├── buzzle-template.png
    │   │   ├── Logo.ico
    │   │   ├── slide10.jpg
    │   │   ├── slide11.jpg
    │   │   ├── slide12.jpg
    │   │   ├── slide13.jpg
    │   │   ├── slide14.jpg
    │   │   ├── slide15.jpg
    │   │   ├── slide16.jpg
    │   │   ├── slide1.jpg
    │   │   ├── slide2.jpg
    │   │   ├── slide3.jpg
    │   │   ├── slide4.jpg
    │   │   ├── slide5.jpg
    │   │   ├── slide6.jpg
    │   │   ├── slide7.jpg
    │   │   ├── slide8.jpg
    │   │   └── slide9.jpg
    │   ├── Services
    │   │   ├── CoApResources
    │   │   │   └── CoAPResource.cs
    │   │   ├── CoAPService.cs
    │   │   ├── MQTTControllers
    │   │   │   ├── AlarmController.cs
    │   │   │   ├── AttributesController.cs
    │   │   │   ├── DataController.cs
    │   │   │   ├── GatewayController.cs
    │   │   │   ├── RpcController.cs
    │   │   │   └── TelemetryController.cs
    │   │   └── MQTTService.cs
    │   ├── Startup.cs
    │   ├── TaskActions
    │   │   ├── PublishAlarmDataTask.cs
    │   │   ├── PublishAttributeDataTask.cs
    │   │   └── PublishTelemetryDataTask.cs
    │   └── wwwroot
    │       └── favicon.ico
    ├── IoTSharp.Contracts
    │   ├── AlarmDto.cs
    │   ├── ApiResult.cs
    │   ├── AppSettings.cs
    │   ├── AssetDto.cs
    │   ├── Constants.cs
    │   ├── Enums.cs
    │   ├── IoTSharp.Contracts.csproj
    │   ├── MqttBrokerSetting.cs
    │   └── TelemetryDataDto.cs
    ├── IoTSharp.Data
    │   ├── Alarm.cs
    │   ├── ApplicationDbContext.cs
    │   ├── Asset.cs
    │   ├── AssetRelation.cs
    │   ├── AttributeLatest.cs
    │   ├── AuditLog.cs
    │   ├── AuthorizedKey.cs
    │   ├── BaseDictionary.cs
    │   ├── BaseDictionaryGroup.cs
    │   ├── BaseEvent.cs
    │   ├── BaseFunction.cs
    │   ├── BASEI18N.cs
    │   ├── Configurations
    │   │   ├── DataStorageConfiguration.cs
    │   │   └── TelemetryDataConfiguration.cs
    │   ├── Customer.cs
    │   ├── DataExtension.cs
    │   ├── DataStorage.cs
    │   ├── Device.cs
    │   ├── DeviceDiagram.cs
    │   ├── DeviceGraph.cs
    │   ├── DeviceGraphToolBox.cs
    │   ├── DeviceIdentity.cs
    │   ├── DeviceModelCommand.cs
    │   ├── DeviceModel.cs
    │   ├── DevicePort.cs
    │   ├── DevicePortMapping.cs
    │   ├── DeviceRule.cs
    │   ├── DynamicFormFieldInfo.cs
    │   ├── DynamicFormFieldValueInfo.cs
    │   ├── DynamicFormInfo.cs
    │   ├── Extensions
    │   │   ├── AlarmExtension.cs
    │   │   ├── DBExtension.cs
    │   │   ├── DeviceExtension.cs
    │   │   └── PlayloadExtension.cs
    │   ├── Flow.cs
    │   ├── FlowOperation.cs
    │   ├── FlowRule.cs
    │   ├── Gateway.cs
    │   ├── IDataBaseModelBuilderOptions.cs
    │   ├── IJustMy.cs
    │   ├── IoTSharp.Data.csproj
    │   ├── PlayloadData.cs
    │   ├── Produce.cs
    │   ├── ProduceData.cs
    │   ├── ProduceDictionary.cs
    │   ├── RefreshToken.cs
    │   ├── Relationship.cs
    │   ├── RuleTaskExecutor.cs
    │   ├── Shardings
    │   │   ├── Routes
    │   │   │   ├── TelemetryDataDayRoute.cs
    │   │   │   ├── TelemetryDataHourRoute.cs
    │   │   │   ├── TelemetryDataMinuteRoute.cs
    │   │   │   ├── TelemetryDataMonthRoute.cs
    │   │   │   └── TelemetryDataYearRoute.cs
    │   │   └── ShardingDbContext.cs
    │   ├── SubscriptionEvent.cs
    │   ├── SubscriptionTask.cs
    │   ├── TelemetryData.cs
    │   ├── TelemetryLatest.cs
    │   └── Tenant.cs
    ├── IoTSharp.Data.Storage
    │   ├── IoTSharp.Data.Cassandra
    │   │   ├── CassandraModelBuilderOptions.cs
    │   │   ├── IoTSharpDataBuilderExtensions.cs
    │   │   ├── IoTSharp.Data.Cassandra.csproj
    │   │   └── readme.txt
    │   ├── IoTSharp.Data.ClickHouse
    │   │   ├── ClickHouseModelBuilderOptions.cs
    │   │   ├── IoTSharpDataBuilderExtensions.cs
    │   │   ├── IoTSharp.Data.ClickHouse.csproj
    │   │   └── readme.txt
    │   ├── IoTSharp.Data.InMemory
    │   │   ├── InMemoryModelBuilderOptions.cs
    │   │   ├── IoTSharpDataBuilderExtensions.cs
    │   │   └── IoTSharp.Data.InMemory.csproj
    │   ├── IoTSharp.Data.MySQL
    │   │   ├── IoTSharpDataBuilderExtensions.cs
    │   │   ├── IoTSharp.Data.MySQL.csproj
    │   │   ├── Migrations
    │   │   │   ├── 20211210180317_CreateIdentitySchema.cs
    │   │   │   ├── 20211210180317_CreateIdentitySchema.Designer.cs
    │   │   │   ├── 20211221075652_addmodelcommand.cs
    │   │   │   ├── 20211221075652_addmodelcommand.Designer.cs
    │   │   │   ├── 20220212100754_FixTenantInfo.cs
    │   │   │   ├── 20220212100754_FixTenantInfo.Designer.cs
    │   │   │   ├── 20220329035025_AddAlarm.cs
    │   │   │   ├── 20220329035025_AddAlarm.Designer.cs
    │   │   │   ├── 20220329045201_AddAsset.cs
    │   │   │   ├── 20220329045201_AddAsset.Designer.cs
    │   │   │   ├── 20220329045835_AddAssetName.cs
    │   │   │   ├── 20220329045835_AddAssetName.Designer.cs
    │   │   │   ├── 20220914122820_Produce.cs
    │   │   │   ├── 20220914122820_Produce.Designer.cs
    │   │   │   ├── 20220915040624_Produce2.cs
    │   │   │   ├── 20220915040624_Produce2.Designer.cs
    │   │   │   ├── 20220922124340_AddProduceDictionary.cs
    │   │   │   ├── 20220922124340_AddProduceDictionary.Designer.cs
    │   │   │   ├── 20221006071634_remove_online_status.cs
    │   │   │   ├── 20221006071634_remove_online_status.Designer.cs
    │   │   │   ├── 20221107071736_LogicallyDeleted.cs
    │   │   │   ├── 20221107071736_LogicallyDeleted.Designer.cs
    │   │   │   ├── 20221109174343_addflowexfield.cs
    │   │   │   ├── 20221109174343_addflowexfield.Designer.cs
    │   │   │   ├── 20221202074318_ModifyEmailSpell.cs
    │   │   │   ├── 20221202074318_ModifyEmailSpell.Designer.cs
    │   │   │   ├── 20230313073928_ProduceModify.cs
    │   │   │   ├── 20230313073928_ProduceModify.Designer.cs
    │   │   │   └── ApplicationDbContextModelSnapshot.cs
    │   │   ├── MySqlModelBuilderOptions.cs
    │   │   └── readme.md
    │   ├── IoTSharp.Data.Oracle
    │   │   ├── IoTSharpDataBuilderExtensions.cs
    │   │   ├── IoTSharp.Data.Oracle.csproj
    │   │   ├── Migrations
    │   │   │   ├── 20220211164637_AddOracle2022.cs
    │   │   │   ├── 20220211164637_AddOracle2022.Designer.cs
    │   │   │   └── ApplicationDbContextModelSnapshot.cs
    │   │   ├── OracleModelBuilderOptions.cs
    │   │   └── readme.md
    │   ├── IoTSharp.Data.PostgreSQL
    │   │   ├── IoTSharpDataBuilderExtensions.cs
    │   │   ├── IoTSharp.Data.PostgreSQL.csproj
    │   │   ├── Migrations
    │   │   │   ├── 00000000000000_CreateIdentitySchema.cs
    │   │   │   ├── 00000000000000_CreateIdentitySchema.Designer.cs
    │   │   │   ├── 20190103085249_AddDataTable.cs
    │   │   │   ├── 20190103085249_AddDataTable.Designer.cs
    │   │   │   ├── 20190103092505_AddDiscriminator.cs
    │   │   │   ├── 20190103092505_AddDiscriminator.Designer.cs
    │   │   │   ├── 20190104081406_ModifyRelationship.cs
    │   │   │   ├── 20190104081406_ModifyRelationship.Designer.cs
    │   │   │   ├── 20190108071914_AddRole.cs
    │   │   │   ├── 20190108071914_AddRole.Designer.cs
    │   │   │   ├── 20190118115805_AddDeviceIdentity.cs
    │   │   │   ├── 20190118115805_AddDeviceIdentity.Designer.cs
    │   │   │   ├── 20190129085237_AuditLog.cs
    │   │   │   ├── 20190129085237_AuditLog.Designer.cs
    │   │   │   ├── 20190131022355_Value_DateTime.cs
    │   │   │   ├── 20190131022355_Value_DateTime.Designer.cs
    │   │   │   ├── 20190518035335_Gateway.cs
    │   │   │   ├── 20190518035335_Gateway.Designer.cs
    │   │   │   ├── 20190518041926_DeviceOwner.cs
    │   │   │   ├── 20190518041926_DeviceOwner.Designer.cs
    │   │   │   ├── 20190624102543_RetainedMessage.cs
    │   │   │   ├── 20190624102543_RetainedMessage.Designer.cs
    │   │   │   ├── 20190903070558_ReDesingerDataStorage.cs
    │   │   │   ├── 20190903070558_ReDesingerDataStorage.Designer.cs
    │   │   │   ├── 20190903070959_ModifyColumnOrder.cs
    │   │   │   ├── 20190903070959_ModifyColumnOrder.Designer.cs
    │   │   │   ├── 20200623084401_addAuthorizedKey.cs
    │   │   │   ├── 20200623084401_addAuthorizedKey.Designer.cs
    │   │   │   ├── 20200728110511_DateTimeModify.cs
    │   │   │   ├── 20200728110511_DateTimeModify.Designer.cs
    │   │   │   ├── 20200731125037_RemoveAttributeData.cs
    │   │   │   ├── 20200731125037_RemoveAttributeData.Designer.cs
    │   │   │   ├── 20200923043726_AddTelemetryDataPrimaryKey.cs
    │   │   │   ├── 20200923043726_AddTelemetryDataPrimaryKey.Designer.cs
    │   │   │   ├── 20200923101729_RemoveTelemetryDataPrimaryKey.cs
    │   │   │   ├── 20200923101729_RemoveTelemetryDataPrimaryKey.Designer.cs
    │   │   │   ├── 20200924163054_RunSqlScript.cs
    │   │   │   ├── 20200924163054_RunSqlScript.Designer.cs
    │   │   │   ├── 20201024123604_AddDeviceStatus.cs
    │   │   │   ├── 20201024123604_AddDeviceStatus.Designer.cs
    │   │   │   ├── 20210214112844_RemoveRetainedMessage.cs
    │   │   │   ├── 20210214112844_RemoveRetainedMessage.Designer.cs
    │   │   │   ├── 20220215180407_AddSchema2021.cs
    │   │   │   ├── 20220215180407_AddSchema2021.Designer.cs
    │   │   │   ├── 20220329034818_AddAlarm.cs
    │   │   │   ├── 20220329034818_AddAlarm.Designer.cs
    │   │   │   ├── 20220329045120_AddAsset.cs
    │   │   │   ├── 20220329045120_AddAsset.Designer.cs
    │   │   │   ├── 20220329050121_AddAssetName.cs
    │   │   │   ├── 20220329050121_AddAssetName.Designer.cs
    │   │   │   ├── 20220914112335_Produce.cs
    │   │   │   ├── 20220914112335_Produce.Designer.cs
    │   │   │   ├── 20220915040519_Produce2.cs
    │   │   │   ├── 20220915040519_Produce2.Designer.cs
    │   │   │   ├── 20220922115449_AddProduceDictionary.cs
    │   │   │   ├── 20220922115449_AddProduceDictionary.Designer.cs
    │   │   │   ├── 20221006071345_remove_online_status.cs
    │   │   │   ├── 20221006071345_remove_online_status.Designer.cs
    │   │   │   ├── 20221107071615_LogicallyDeleted.cs
    │   │   │   ├── 20221107071615_LogicallyDeleted.Designer.cs
    │   │   │   ├── 20221202074042_ModifyEmailSpell.cs
    │   │   │   ├── 20221202074042_ModifyEmailSpell.Designer.cs
    │   │   │   ├── 20230313073609_ProduceModify.cs
    │   │   │   ├── 20230313073609_ProduceModify.Designer.cs
    │   │   │   └── ApplicationDbContextModelSnapshot.cs
    │   │   ├── NpgsqlModelBuilderOptions.cs
    │   │   └── readme.md
    │   ├── IoTSharp.Data.Sqlite
    │   │   ├── IoTSharpDataBuilderExtensions.cs
    │   │   ├── IoTSharp.Data.Sqlite.csproj
    │   │   ├── Migrations
    │   │   │   ├── 20220812062443_CreateIdentitySchema.cs
    │   │   │   ├── 20220812062443_CreateIdentitySchema.Designer.cs
    │   │   │   ├── 20220914122629_Produce.cs
    │   │   │   ├── 20220914122629_Produce.Designer.cs
    │   │   │   ├── 20220915040147_Produce2.cs
    │   │   │   ├── 20220915040147_Produce2.Designer.cs
    │   │   │   ├── 20220922124423_AddProduceDictionary.cs
    │   │   │   ├── 20220922124423_AddProduceDictionary.Designer.cs
    │   │   │   ├── 20221006071746_remove_online_status.cs
    │   │   │   ├── 20221006071746_remove_online_status.Designer.cs
    │   │   │   ├── 20221107071801_LogicallyDeleted.cs
    │   │   │   ├── 20221107071801_LogicallyDeleted.Designer.cs
    │   │   │   ├── 20221202074402_ModifyEmailSpell.cs
    │   │   │   ├── 20221202074402_ModifyEmailSpell.Designer.cs
    │   │   │   ├── 20230313051417_ProduceModify.cs
    │   │   │   ├── 20230313051417_ProduceModify.Designer.cs
    │   │   │   └── ApplicationDbContextModelSnapshot.cs
    │   │   └── SqliteModelBuilderOptions.cs
    │   └── IoTSharp.Data.SqlServer
    │       ├── IoTSharpDataBuilderExtensions.cs
    │       ├── IoTSharp.Data.SqlServer.csproj
    │       ├── Migrations
    │       │   ├── 20220212100016_SQLServerSchema2022.cs
    │       │   ├── 20220212100016_SQLServerSchema2022.Designer.cs
    │       │   ├── 20220329035141_AddAlarm.cs
    │       │   ├── 20220329035141_AddAlarm.Designer.cs
    │       │   ├── 20220329045427_AddAsset.cs
    │       │   ├── 20220329045427_AddAsset.Designer.cs
    │       │   ├── 20220329045806_AddAssetName.cs
    │       │   ├── 20220329045806_AddAssetName.Designer.cs
    │       │   ├── 20220915040739_Produce2.cs
    │       │   ├── 20220915040739_Produce2.Designer.cs
    │       │   ├── 20220922124831_AddProduceDictionary.cs
    │       │   ├── 20220922124831_AddProduceDictionary.Designer.cs
    │       │   ├── 20221006071915_remove_online_status.cs
    │       │   ├── 20221006071915_remove_online_status.Designer.cs
    │       │   ├── 20221107071845_LogicallyDeleted.cs
    │       │   ├── 20221107071845_LogicallyDeleted.Designer.cs
    │       │   ├── 20221202074541_ModifyEmailSpell.cs
    │       │   ├── 20221202074541_ModifyEmailSpell.Designer.cs
    │       │   └── ApplicationDbContextModelSnapshot.cs
    │       └── MsSqlModelBuilderOptions.cs
    ├── IoTSharp.Data.TimeSeries
    │   ├── AggregateDataHelpers.cs
    │   ├── DependencyInjection.cs
    │   ├── EFStorage.cs
    │   ├── InfluxDBStorage.cs
    │   ├── IoTDBStorage.cs
    │   ├── IoTSharp.Data.TimeSeries.csproj
    │   ├── IStorage.cs
    │   ├── PinusDBStorage.cs
    │   ├── ShardingStorage.cs
    │   ├── TaosStorage.cs
    │   └── TimescaleDBStorage.cs
    ├── IoTSharp.EasyUse
    │   ├── frmMain.cs
    │   ├── frmMain.Designer.cs
    │   ├── frmMain.resx
    │   ├── IoTSharp.EasyUse.csproj
    │   └── Program.cs
    ├── IoTSharp.EventBus
    │   ├── DeviceActivityStatus.cs
    │   ├── DeviceConnectStatus.cs
    │   ├── EventBusMetrics.cs
    │   ├── EventBusOption.cs
    │   ├── EventBusPublisher.cs
    │   ├── EventBusSubscriber.cs
    │   ├── EventsBusDependencyInjection.cs
    │   ├── IoTSharp.EventBus.csproj
    │   ├── IPublisher.cs
    │   └── ISubscriber.cs
    ├── IoTSharp.EventBus.CAP
    │   ├── CapPublisher.cs
    │   ├── CapSubscriber.cs
    │   ├── DependencyInjection.cs
    │   └── IoTSharp.EventBus.CAP.csproj
    ├── IoTSharp.EventBus.NServiceBus
    │   ├── DependencyInjection.cs
    │   ├── IoTSharp.EventBus.NServiceBus.csproj
    │   ├── NSBusPublisher.cs
    │   └── NSBusSubscriber.cs
    ├── IoTSharp.EventBus.Shashlik
    │   ├── DependencyInjection.cs
    │   ├── Events.cs
    │   ├── IoTSharp.EventBus.Shashlik.csproj
    │   ├── ShashlikEvent.cs
    │   ├── ShashlikPublisher.cs
    │   └── ShashlikSubscriber.cs
    ├── IoTSharp.Extensions
    │   ├── BitVector32Extensions.cs
    │   ├── EndianExtensions.cs
    │   ├── EnumerableExtensions.cs
    │   ├── FileExtension.cs
    │   ├── Hex.cs
    │   ├── IoTSharp.Extensions.csproj
    │   ├── MarshalExtension.cs
    │   ├── Retry.cs
    │   ├── StorageExtensions.cs
    │   ├── StringExtension.cs
    │   ├── TaskExtension.cs
    │   ├── TypeExtensions.cs
    │   └── XmlExtensions.cs
    ├── IoTSharp.Extensions.AspNetCore
    │   ├── DependencyInjectionExtension.cs
    │   ├── HostExtension.cs
    │   ├── IdentityExtension.cs
    │   ├── IoTSharp.Extensions.AspNetCore.csproj
    │   └── MVCExtensions.cs
    ├── IoTSharp.Extensions.BouncyCastle
    │   ├── IoTSharp.Extensions.BouncyCastle.csproj
    │   ├── RSAExtensions.cs
    │   └── RSAHelper.cs
    ├── IoTSharp.Extensions.DependencyInjection
    │   ├── IoTSharp.Extensions.DependencyInjection.csproj
    │   └── ObjectPoolExtension.cs
    ├── IoTSharp.Extensions.EFCore
    │   ├── CollectionsExtension.cs
    │   ├── DataExtension.cs
    │   ├── DbReaderExtensions.cs
    │   ├── EFCoreExtension.cs
    │   ├── IoTSharp.Extensions.EFCore.csproj
    │   ├── QueryCollection.cs
    │   ├── readme.md
    │   └── SqlQuery.cs
    ├── IoTSharp.Extensions.QuartzJobScheduler
    │   ├── IoTSharp.Extensions.QuartzJobScheduler.csproj
    │   ├── QuartzJobSchedulerAttribute.cs
    │   ├── QuartzJobSchedulerExtensions.cs
    │   └── readme.md
    ├── IoTSharp.Extensions.RESTful
    │   ├── IoTSharp.Extensions.RESTful.csproj
    │   ├── NewtonsoftRestClientExtensions.cs
    │   └── SystemTextJsonRestClientExtensions.cs
    ├── IoTSharp.Extensions.X509
    │   ├── CryptoBase.cs
    │   ├── Helpers.cs
    │   ├── IoTSharp.Extensions.X509.csproj
    │   ├── PemSigner.cs
    │   ├── PemUtils.cs
    │   ├── TextCrypter.cs
    │   ├── X509PemExtensions.cs
    │   └── X509SelfExtensions.cs
    ├── IoTSharp.Interpreter
    │   ├── BASICScriptEngine.cs
    │   ├── CScriptEngine.cs
    │   ├── CSharpScriptEngine.cs
    │   ├── EngineSetting.cs
    │   ├── IoTSharp.Interpreter.csproj
    │   ├── JavaScriptEngine.cs
    │   ├── LuaScriptEngine.cs
    │   ├── Properties
    │   │   ├── Resources.Designer.cs
    │   │   └── Resources.resx
    │   ├── PythonScriptEngine.cs
    │   ├── Resources
    │   │   └── jsonDB.js
    │   ├── ScriptEngineBase.cs
    │   ├── ScriptEnginesExtensions.cs
    │   └── SQLEngine.cs
    ├── IoTSharp.SDKs
    │   ├── docs
    │   │   └── 200x200.png
    │   ├── IoTSharp.Sdk.CSharp
    │   │   ├── ApiClients.cs
    │   │   ├── ApiExtension.cs
    │   │   ├── IoTSharpClient.cs
    │   │   ├── IoT.Sharp.Hub.nswag
    │   │   ├── IoTSharp.Sdk.Http.csproj
    │   │   ├── Partials.cs
    │   │   ├── SdkClient.cs
    │   │   └── Session.cs
    │   ├── IoTSharp.Sdk.MQTT
    │   │   ├── IoTSharp.Sdk.MQTT.csproj
    │   │   └── MQTTClient.cs
    │   ├── IoTSharp.Sdks.sln
    │   ├── IoTSharp.Sdk.TS
    │   │   └── IoTSharp.Sdk.ts
    │   ├── LICENSE
    │   ├── MQTTDemo
    │   │   ├── MQTTDemo.csproj
    │   │   └── Program.cs
    │   └── README.md
    ├── IoTSharp.sln
    ├── IoTSharp.TaskActions
    │   ├── AlarmPullExcutor.cs
    │   ├── CustomeAlarmPullExcutor.cs
    │   ├── DeviceActionExcutor.cs
    │   ├── IoTSharp.TaskActions.csproj
    │   ├── MessagePullExcutor.cs
    │   ├── RangerCheckExcutor.cs
    │   ├── TaskAction.cs
    │   ├── TaskActionInput.cs
    │   ├── TaskActionOutput.cs
    │   └── TelemetryArrayPullExcutor.cs
    ├── IoTSharp.Test
    │   ├── InstallerTest.cs
    │   ├── IoTSharp.Test.csproj
    │   ├── JsonConverTest.cs
    │   ├── ScriptEngineTest.cs
    │   └── TestIoTSharp.cs
    ├── launchSettings.json
    ├── LICENSE
    ├── nuget.config
    ├── README.md
    ├── README.zh.md
    ├── roadmap.md
    ├── servers.json
    └── tools
        ├── ef_db_drop.cmd
        ├── ef_mg_add.cmd
        ├── ef_mg_remove.cmd
        ├── setnpm.cmd
        └── upgrade_ef.cmd

186 directories, 996 files

标签:

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警