Files
KinginfoGateway/doc/build/docs/301/index.html
Kimdiego2098 48158b1db6 更新文档
2024-01-24 14:46:49 +08:00

16 lines
54 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-301" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">MqttClient | thingsgateway</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://diego2098.gitee.io/thingsgateway-docs/docs/301"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="MqttClient | thingsgateway"><meta data-rh="true" name="description" content="通过自定义脚本可快速适配业务模型比如各大云平台的Iot物模型"><meta data-rh="true" property="og:description" content="通过自定义脚本可快速适配业务模型比如各大云平台的Iot物模型"><link data-rh="true" rel="icon" href="/thingsgateway-docs/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://diego2098.gitee.io/thingsgateway-docs/docs/301"><link data-rh="true" rel="alternate" href="https://diego2098.gitee.io/thingsgateway-docs/docs/301" hreflang="en"><link data-rh="true" rel="alternate" href="https://diego2098.gitee.io/thingsgateway-docs/docs/301" hreflang="x-default"><link rel="stylesheet" href="/thingsgateway-docs/assets/css/styles.59b237ac.css">
<link rel="preload" href="/thingsgateway-docs/assets/js/runtime~main.17ae08d1.js" as="script">
<link rel="preload" href="/thingsgateway-docs/assets/js/main.788c7689.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/thingsgateway-docs/"><div class="navbar__logo"><img src="/thingsgateway-docs/img/ThingsGatewayLogo.png" alt="ThingsGateway Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/thingsgateway-docs/img/ThingsGatewayLogo.png" alt="ThingsGateway Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">ThingsGateway</b></a><a class="navbar__item navbar__link" href="/thingsgateway-docs/docs/upgrade">更新日志</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">源码</a><ul class="dropdown__menu"><li><a href="https://gitee.com/diego2098/ThingsGateway" target="_blank" rel="noopener noreferrer" class="dropdown__link">Gitee主库<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/kimdiego2098/ThingsGateway" target="_blank" rel="noopener noreferrer" class="dropdown__link">GitHub<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://www.nuget.org/profiles/kimdiego" target="_blank" rel="noopener noreferrer" class="dropdown__link">Nuget<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><a href="https://space.bilibili.com/88105259/channel/series" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">视频<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://gitee.com/dotnetchina" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">社区<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><div class="navbar__search searchBarContainer_NW3z"><input placeholder="Search" aria-label="Search" class="navbar__search-input"><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/thingsgateway-docs/"><img src="/thingsgateway-docs/img/ThingsGatewayLogo.png" alt="ThingsGateway Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/thingsgateway-docs/img/ThingsGatewayLogo.png" alt="ThingsGateway Logo" class="themedImage_ToTc themedImage--dark_i4oU"><b>ThingsGateway</b></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/thingsgateway-docs/docs/upgrade">更新日志</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/thingsgateway-docs/docs/1">版权说明</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/thingsgateway-docs/docs/2">产品介绍</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/thingsgateway-docs/docs/">入门指南</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/thingsgateway-docs/docs/100">驱动调试</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/thingsgateway-docs/docs/101">基础手册</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/thingsgateway-docs/docs/200">采集插件手册</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/thingsgateway-docs/docs/201">业务插件手册</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/201">ModbusSlave</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/thingsgateway-docs/docs/301">MqttClient</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/302">MqttServer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/303">RabbitMQProducer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/304">KafkaProducer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/305">TDengineDBProducer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/306">QuestDBProducer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/307">SqlDBProducer</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/308">SqlHisAlarm</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/thingsgateway-docs/docs/309">OpcUaServer</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/thingsgateway-docs/docs/10001">Pro插件手册</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/thingsgateway-docs/docs/400">部署</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/thingsgateway-docs/docs/501">常见问题</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/thingsgateway-docs/docs/601">插件开发</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/thingsgateway-docs/docs/20001">nuget包文档</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/thingsgateway-docs/docs/1002">技术支持/合作</a></div></li></ul></nav><button type="button" title="Collapse sidebar" aria-label="Collapse sidebar" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><path d="M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"></path><path d="M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"></path></g></svg></button></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/thingsgateway-docs/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">业务插件手册</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">MqttClient</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>MqttClient</h1></header><div class="theme-admonition theme-admonition-tip alert alert--success admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span><mdxadmonitiontitle><code>提示</code></mdxadmonitiontitle></div><div class="admonitionContent_S0QG"><p>通过自定义脚本可快速适配业务模型比如各大云平台的Iot物模型</p><p>脚本的示例请查看<strong>常见问题</strong></p></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="一说明">一、说明<a href="#一说明" class="hash-link" aria-label="Direct link to 一、说明" title="Direct link to 一、说明"></a></h2><p>MqttClient通过Tcp/WebSocket的方式发布内容到Broker(Server),可以定时/变化发布数据</p><p>通道只支持 Other </p><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="二插件属性配置项">二、插件属性配置项<a href="#二插件属性配置项" class="hash-link" aria-label="Direct link to 二、插件属性配置项" title="Direct link to 二、插件属性配置项"></a></h2><img loading="lazy" src="/thingsgateway-docs/assets/images/MqttClient-8fa7dc0592dd20c39ac0db9d17799f96.png" class="img_ev3q"><table><thead><tr><th>属性</th><th>说明</th><th>备注</th></tr></thead><tbody><tr><td>IP</td><td>ServerIP,为空时指任意IP</td><td></td></tr><tr><td>端口</td><td>连接端口</td><td>1883</td></tr><tr><td>是否WebSocket连接</td><td>是否WebSocket连接</td><td>False</td></tr><tr><td>WebSocketUrl</td><td>WebSocketUrl</td><td>ws://127.0.0.1:8083/mqtt</td></tr><tr><td>账号</td><td>账号</td><td></td></tr><tr><td>密码</td><td>密码</td><td></td></tr><tr><td>连接Id</td><td>连接Id</td><td></td></tr><tr><td>连接超时时间</td><td>连接超时时间</td><td></td></tr><tr><td>允许Rpc写入</td><td>是否允许写入变量</td><td></td></tr><tr><td>Rpc写入Topic</td><td>写入变量的主题</td><td>实际的写入主题为固定通配 {ThingsGateway/+/<!-- -->[填入值]<!-- -->} ,其中RpcWrite为该属性填入内容+通配符是不固定GUID值每次执行写入时会在不同的主题中返回返回结果主题会在主题后添加Response , 也就是{ThingsGateway/+/<!-- -->[填入值]<!-- -->/Response}</td></tr><tr><td>数据请求Topic</td><td>该主题接受到任何消息都会发布全部信息到对应的变量/设备/报警主题中</td><td></td></tr><tr><td>设备是否列表</td><td>设备是否列表上传false时每个设备实体都会单独发布注意性能需求默认为true</td><td></td></tr><tr><td>变量是否列表</td><td>变量是否列表上传false时每个变量实体都会单独发布注意性能需求默认为true</td><td></td></tr><tr><td>报警是否列表</td><td>报警是否列表上传false时每个报警实体都会单独发布注意性能需求默认为true</td><td></td></tr><tr><td>设备Topic</td><td>设备实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性</td><td></td></tr><tr><td>变量Topic</td><td>变量实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性</td><td></td></tr><tr><td>报警Topic</td><td>报警实体的发布主题 ,使用${key}作为匹配项key必须是上传实体中的属性</td><td></td></tr><tr><td>设备实体脚本</td><td>脚本返回新的实体列表,动态类中需继承<strong>IDynamicModel</strong>,传入列表为<strong>DeviceData</strong>,查看以下具体属性</td><td>编辑页面中,可通过检查按钮验证脚本,脚本示例请查看<strong>常见问题</strong></td></tr><tr><td>变量实体脚本</td><td>脚本返回新的实体列表,动态类中需继承<strong>IDynamicModel</strong>,传入列表为<strong>VariableData</strong>,查看以下具体属性</td><td>编辑页面中,可通过检查按钮验证脚本,脚本示例请查看<strong>常见问题</strong></td></tr><tr><td>报警实体脚本</td><td>脚本返回新的实体列表,动态类中需继承<strong>IDynamicModel</strong>,传入列表为<strong>AlarmVariable</strong>,查看以下具体属性</td><td>编辑页面中,可通过检查按钮验证脚本,脚本示例请查看<strong>常见问题</strong></td></tr><tr><td>是否选择全部变量</td><td>是否选择全部变量true时不需要单个变量添加业务属性</td><td></td></tr><tr><td>是否间隔执行</td><td>是否选择全部变量true间隔上传False变化检测上传</td><td></td></tr><tr><td>间隔执行时间</td><td>间隔执行时间</td><td></td></tr><tr><td>启用缓存</td><td>是否启用缓存</td><td></td></tr><tr><td>上传列表最大数量</td><td>每一次上传的列表最大数量</td><td></td></tr><tr><td>内存队列最大数量</td><td>内存队列的最大数量,超出或失败时转入文件缓存,根据数据量设定适当值</td><td></td></tr></tbody></table><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="脚本接口">脚本接口<a href="#脚本接口" class="hash-link" aria-label="Direct link to 脚本接口" title="Direct link to 脚本接口"></a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">public interface IDynamicModel</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> IEnumerable&lt;dynamic&gt; GetList(IEnumerable&lt;dynamic&gt; datas);</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="devicedata">DeviceData<a href="#devicedata" class="hash-link" aria-label="Direct link to DeviceData" title="Direct link to DeviceData"></a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// &lt;summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// 设备业务变化数据</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// &lt;/summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">public class DeviceData</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;PrimaryIdEntity.Id&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public long Id { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Name&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Name { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;DeviceRunTime.ActiveTime&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public DateTime ActiveTime { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;DeviceRunTime.DeviceStatus&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public DeviceStatusEnum DeviceStatus { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;DeviceRunTime.LastErrorMessage&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string LastErrorMessage { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark1&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark1 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark2&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark2 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark3&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark3 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark4&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark4 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark5&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark5 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="variabledata">VariableData<a href="#variabledata" class="hash-link" aria-label="Direct link to VariableData" title="Direct link to VariableData"></a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// &lt;summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// 变量业务变化数据</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// &lt;/summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">public class VariableData</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;PrimaryIdEntity.Id&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public long Id { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Variable.Name&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Name { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.DeviceName&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string DeviceName { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.Value&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public object Value { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.ChangeTime&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public DateTime ChangeTime { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.CollectTime&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public DateTime CollectTime { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.IsOnline&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public bool IsOnline { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.LastErrorMessage&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string? LastErrorMessage { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark1&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark1 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark2&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark2 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark3&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark3 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark4&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark4 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Device.Remark5&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark5 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="alarmvariable">AlarmVariable<a href="#alarmvariable" class="hash-link" aria-label="Direct link to AlarmVariable" title="Direct link to AlarmVariable"></a></h3><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// &lt;summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// 报警变量</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">/// &lt;/summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">public class AlarmVariable</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">{</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Variable.Name&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;变量名称&quot;, IsNullable = false)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Name { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Variable.Description&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;描述&quot;, IsNullable = true)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string? Description { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.DeviceName&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;设备名称&quot;, IsNullable = true)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string DeviceName { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Variable.RegisterAddress&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;变量地址&quot;)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string RegisterAddress { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;Variable.DataType&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;数据类型&quot;, ColumnDataType = &quot;varchar(100)&quot;)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public DataTypeEnum DataType { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.AlarmCode&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;报警值&quot;, IsNullable = false)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string AlarmCode { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.AlarmLimit&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;报警限值&quot;, IsNullable = false)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string AlarmLimit { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.AlarmText&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;报警文本&quot;, IsNullable = true)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string? AlarmText { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.AlarmTime&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [SugarColumn(ColumnDescription = &quot;报警时间&quot;, IsNullable = false)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public DateTime AlarmTime { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;inheritdoc cref=&quot;VariableRunTime.EventTime&quot;/&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public DateTime EventTime { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// 报警类型</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;/summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public AlarmTypeEnum? AlarmType { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// 事件类型</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> /// &lt;/summary&gt;</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public EventTypeEnum EventType { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark1 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark2 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark3 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark4 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> public string Remark5 { get; set; }</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">}</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="三变量业务属性">三、变量业务属性<a href="#三变量业务属性" class="hash-link" aria-label="Direct link to 三、变量业务属性" title="Direct link to 三、变量业务属性"></a></h2><h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="允许写入">允许写入<a href="#允许写入" class="hash-link" aria-label="Direct link to 允许写入" title="Direct link to 允许写入"></a></h3><p>单独配置变量是否允许写入</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://gitee.com/diego2098/ThingsGateway/tree/master/doc/docs/301.mdx" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><script src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div class="col lastUpdated_VsjB">📖<span id="busuanzi_value_page_pv"></span><br><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2024-01-21T07:38:31.000Z">Jan 21, 2024</time></b> by <b>Kimdiego2098</b></span></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/thingsgateway-docs/docs/201"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">ModbusSlave</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/thingsgateway-docs/docs/302"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">MqttServer</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#一说明" class="table-of-contents__link toc-highlight">一、说明</a></li><li><a href="#二插件属性配置项" class="table-of-contents__link toc-highlight">二、插件属性配置项</a><ul><li><a href="#脚本接口" class="table-of-contents__link toc-highlight">脚本接口</a></li><li><a href="#devicedata" class="table-of-contents__link toc-highlight">DeviceData</a></li><li><a href="#variabledata" class="table-of-contents__link toc-highlight">VariableData</a></li><li><a href="#alarmvariable" class="table-of-contents__link toc-highlight">AlarmVariable</a></li></ul></li><li><a href="#三变量业务属性" class="table-of-contents__link toc-highlight">三、变量业务属性</a><ul><li><a href="#允许写入" class="table-of-contents__link toc-highlight">允许写入</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">文档</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/thingsgateway-docs/docs">入门</a></li><li class="footer__item"><a class="footer__link-item" href="/thingsgateway-docs/docs">手册</a></li></ul></div><div class="col footer__col"><div class="footer__title">社区</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitee.com/diego2098/ThingsGateway/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">讨论<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gitee.com/diego2098/ThingsGateway/board" target="_blank" rel="noopener noreferrer" class="footer__link-item">看板<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">更多</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitee.com/diego2098/ThingsGateway" target="_blank" rel="noopener noreferrer" class="footer__link-item">仓库<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2020-2024 Diego.</div></div></div></footer></div>
<script src="/thingsgateway-docs/assets/js/runtime~main.17ae08d1.js"></script>
<script src="/thingsgateway-docs/assets/js/main.788c7689.js"></script>
</body>
</html>