| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633 |
- <navigation-bar background="#FFF"></navigation-bar>
- <view wx:if="{{toastText}}" class="page-toast page-toast--{{toastType}}">
- {{toastText}}
- </view>
- <scroll-view class="scrollarea" scroll-y type="list">
- <view class="page-shell">
- <view class="panel {{collapsedCards.motor ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.motor ? 'is-collapsed' : ''}}"
- data-card="motor"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-motor"></view>
- <view class="panel-title">电机参数</view>
- </view>
- <view class="panel-actions">
- <view
- class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}"
- bindtap="readMotorParameters"
- >
- 读取
- </view>
- <view
- class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}"
- bindtap="writeMotorParameters"
- >
- 写入
- </view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.motor ? 'is-collapsed' : ''}}"
- data-card="motor"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.motor}}">
- <view wx:for="{{motorParameterInputRegisters}}" wx:key="name" class="param-row input-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input value-input--with-unit"
- type="{{item.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{item.inputValue}}"
- data-index="{{index}}"
- bindinput="onMotorParameterInput"
- bindblur="onMotorParameterBlur"
- />
- </view>
- </view>
- </block>
- </view>
- <view class="panel {{collapsedCards.driver ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.driver ? 'is-collapsed' : ''}}"
- data-card="driver"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-chip"></view>
- <view class="panel-title">驱动器硬件参数</view>
- </view>
- <view class="panel-actions">
- <view
- class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}"
- bindtap="readDriverParameters"
- >
- 读取
- </view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.driver ? 'is-collapsed' : ''}}"
- data-card="driver"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.driver}}">
- <view wx:for="{{readonlyParamRegisters}}" wx:key="name" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view wx:if="{{!item.hideMeta}}" class="param-meta">{{item.addressDisplay}}</view>
- </view>
- <view class="param-value">{{item.displayValue || '--'}}{{item.unit ? ' ' + item.unit : ''}}</view>
- </view>
- </block>
- </view>
- <view wx:if="{{estimatorCalculatedDisplayRegisters.length || atoBandwidthDisplayRegisters.length}}" class="panel {{collapsedCards.estimator ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.estimator ? 'is-collapsed' : ''}}"
- data-card="estimator"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-bars"></view>
- <view class="panel-title">估算器参数</view>
- </view>
- <view class="panel-actions panel-actions--three">
- <view class="panel-action-button" bindtap="onEstimatorUpdate">更新</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="estimator" bindtap="onGroupRead">读取</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="estimator" bindtap="onGroupWrite">写入</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.estimator ? 'is-collapsed' : ''}}"
- data-card="estimator"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.estimator}}">
- <view wx:for="{{estimatorCalculatedDisplayRegisters}}" wx:key="name" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="param-value">{{item.writeValue || '--'}}{{item.unit ? ' ' + item.unit : ''}}</view>
- </view>
- <view
- wx:for="{{atoBandwidthDisplayRegisters}}"
- wx:for-item="atoItem"
- wx:key="name"
- class="param-row input-row"
- >
- <view class="param-main">
- <view class="param-name">{{atoItem.name}}</view>
- <view class="param-meta {{atoItem.isDirty ? 'param-meta--dirty' : ''}}">KP 0x{{atoItem.kpAddress}} {{atoItem.kpWriteValue || '--'}} KI 0x{{atoItem.kiAddress}} {{atoItem.kiWriteValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{atoItem.unit ? 'value-input--with-unit' : ''}}"
- type="{{atoItem.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{atoItem.inputValue}}"
- data-index="{{atoItem.sourceIndex}}"
- data-input-group="ato"
- bindinput="onAtoBandwidthInput"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </block>
- </view>
- <view wx:if="{{dqGainDisplayRegisters.length}}" class="panel {{collapsedCards.dq ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.dq ? 'is-collapsed' : ''}}"
- data-card="dq"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-tune"></view>
- <view class="panel-title">DQ轴电流环参数</view>
- </view>
- <view class="panel-actions">
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="dq" bindtap="onGroupRead">读取</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="dq" bindtap="onGroupWrite">写入</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.dq ? 'is-collapsed' : ''}}"
- data-card="dq"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.dq}}">
- <view
- wx:for="{{dqGainDisplayRegisters}}"
- wx:for-item="dqItem"
- wx:key="name"
- class="param-row input-row"
- >
- <view class="param-main">
- <view class="param-name">{{dqItem.name}}</view>
- <view class="param-meta {{dqItem.isDirty ? 'param-meta--dirty' : ''}}">{{dqItem.addressDisplay}} {{dqItem.writeValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{dqItem.unit ? 'value-input--with-unit' : ''}}"
- type="{{dqItem.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{dqItem.inputValue}}"
- data-index="{{dqItem.sourceIndex}}"
- data-input-group="dq"
- bindinput="onDqGainInput"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </block>
- </view>
- <view wx:if="{{tailwindControlRegisters.length || tailwindCalculatedDisplayRegisters.length || tailwindAtoBandwidthDisplayRegisters.length}}" class="panel {{collapsedCards.tailwind ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.tailwind ? 'is-collapsed' : ''}}"
- data-card="tailwind"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-wind"></view>
- <view class="panel-title">顺逆风配置</view>
- </view>
- <view class="panel-actions">
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="tailwind" bindtap="onGroupRead">读取</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="tailwind" bindtap="onGroupWrite">写入</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.tailwind ? 'is-collapsed' : ''}}"
- data-card="tailwind"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.tailwind}}">
- <view wx:for="{{tailwindControlRegisters}}" wx:key="address" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue}}</view>
- </view>
- <switch
- checked="{{item.value}}"
- color="#0f766e"
- disabled="{{!connectedDevice}}"
- data-index="{{item.sourceIndex}}"
- bindchange="onTailwindSwitchChange"
- />
- </view>
- <view wx:for="{{tailwindCalculatedDisplayRegisters}}" wx:key="name" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="param-value">{{item.writeValue || '--'}}{{item.unit ? ' ' + item.unit : ''}}</view>
- </view>
- <view
- wx:for="{{tailwindAtoBandwidthDisplayRegisters}}"
- wx:for-item="atoItem"
- wx:key="name"
- class="param-row input-row"
- >
- <view class="param-main">
- <view class="param-name">{{atoItem.name}}</view>
- <view class="param-meta {{atoItem.isDirty ? 'param-meta--dirty' : ''}}">KP 0x{{atoItem.kpAddress}} {{atoItem.kpWriteValue || '--'}} KI 0x{{atoItem.kiAddress}} {{atoItem.kiWriteValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{atoItem.unit ? 'value-input--with-unit' : ''}}"
- type="{{atoItem.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{atoItem.inputValue}}"
- data-index="{{atoItem.sourceIndex}}"
- data-input-group="ato"
- bindinput="onAtoBandwidthInput"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </block>
- </view>
- <view wx:if="{{prepositionSwitchRegisters.length || prepositionParameterDisplayRegisters.length}}" class="panel {{collapsedCards.preposition ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.preposition ? 'is-collapsed' : ''}}"
- data-card="preposition"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-target"></view>
- <view class="panel-title">预定位配置</view>
- </view>
- <view class="panel-actions">
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="preposition" bindtap="onGroupRead">读取</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="preposition" bindtap="onGroupWrite">写入</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.preposition ? 'is-collapsed' : ''}}"
- data-card="preposition"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.preposition}}">
- <view wx:for="{{prepositionSwitchRegisters}}" wx:key="address" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue}}</view>
- </view>
- <switch
- checked="{{item.value}}"
- color="#0f766e"
- disabled="{{!connectedDevice}}"
- data-index="{{item.sourceIndex}}"
- bindchange="onTailwindSwitchChange"
- />
- </view>
- <view wx:for="{{prepositionParameterDisplayRegisters}}" wx:key="name" class="param-row input-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{item.unit ? 'value-input--with-unit' : ''}}"
- type="{{item.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{item.inputValue}}"
- data-index="{{item.sourceIndex}}"
- data-input-group="preposition"
- bindinput="onPrepositionParameterInput"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </block>
- </view>
- <view wx:if="{{speedLoopInputDisplayRegisters.length || speedLoopCalculatedDisplayRegisters.length || speedLoopExtraDisplayRegisters.length}}" class="panel {{collapsedCards.speedLoop ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.speedLoop ? 'is-collapsed' : ''}}"
- data-card="speedLoop"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-speed"></view>
- <view class="panel-title">速度环路</view>
- </view>
- <view class="panel-actions">
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="speedLoop" bindtap="onGroupRead">读取</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="speedLoop" bindtap="onGroupWrite">写入</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.speedLoop ? 'is-collapsed' : ''}}"
- data-card="speedLoop"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.speedLoop}}">
- <view wx:for="{{speedLoopInputDisplayRegisters}}" wx:key="name">
- <view class="param-row input-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{item.unit ? 'value-input--with-unit' : ''}}"
- type="{{item.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{item.inputValue}}"
- data-index="{{item.sourceIndex}}"
- data-input-group="parameter"
- bindinput="onInputChange"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </view>
- <view wx:for="{{speedLoopCalculatedDisplayRegisters}}" wx:key="name" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="param-value">{{item.writeValue || '--'}}{{item.unit ? ' ' + item.unit : ''}}</view>
- </view>
- <view wx:for="{{speedLoopExtraDisplayRegisters}}" wx:key="name">
- <view class="param-row input-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{item.unit ? 'value-input--with-unit' : ''}}"
- type="{{item.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{item.inputValue}}"
- data-index="{{item.sourceIndex}}"
- data-input-group="speedLoopExtra"
- bindinput="onSpeedLoopExtraInput"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </view>
- </block>
- </view>
- <view wx:if="{{vspCurveRegisters.length}}" class="panel {{collapsedCards.vsp ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.vsp ? 'is-collapsed' : ''}}"
- data-card="vsp"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-curve"></view>
- <view class="panel-title">VSP曲线</view>
- </view>
- <view class="panel-actions">
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="vsp" bindtap="onGroupRead">读取</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="vsp" bindtap="onGroupWrite">写入</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.vsp ? 'is-collapsed' : ''}}"
- data-card="vsp"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.vsp}}">
- <view wx:for="{{vspCurveRegisters}}" wx:key="name">
- <view class="param-row input-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}{{item.actualText ? ' ' + item.actualText : ''}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{item.unit ? 'value-input--with-unit' : ''}}"
- type="{{item.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{item.inputValue}}"
- data-index="{{item.sourceIndex}}"
- data-input-group="parameter"
- bindinput="onInputChange"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </view>
- <view class="param-row">
- <view class="param-main">
- <view class="param-name">{{speedSlopeRegister.name}}</view>
- <view class="param-meta {{speedSlopeRegister.isDirty ? 'param-meta--dirty' : ''}}">{{speedSlopeRegister.addressDisplay}} {{speedSlopeRegister.writeValue || '--'}}</view>
- </view>
- <view class="param-value">{{speedSlopeRegister.writeValue || '--'}}{{speedSlopeRegister.unit ? ' ' + speedSlopeRegister.unit : ''}}</view>
- </view>
- </block>
- </view>
- <view wx:if="{{oilParameterInputRegisters.length}}" class="panel {{collapsedCards.oil ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.oil ? 'is-collapsed' : ''}}"
- data-card="oil"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-oil"></view>
- <view class="panel-title">上油参数</view>
- </view>
- <view class="panel-actions">
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="oil" bindtap="onGroupRead">读取</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="oil" bindtap="onGroupWrite">写入</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.oil ? 'is-collapsed' : ''}}"
- data-card="oil"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.oil}}">
- <view wx:for="{{oilParameterInputRegisters}}" wx:key="name" class="param-row input-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{item.unit ? 'value-input--with-unit' : ''}}"
- type="{{item.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{item.inputValue}}"
- data-index="{{index}}"
- data-input-group="oil"
- bindinput="onOilParameterInput"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </block>
- </view>
- <view class="panel {{collapsedCards.protectionSwitch ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.protectionSwitch ? 'is-collapsed' : ''}}"
- data-card="protectionSwitch"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-shield-check"></view>
- <view class="panel-title">保护控制</view>
- </view>
- <view class="panel-actions">
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="protectionSwitch" bindtap="onGroupRead">读取</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.protectionSwitch ? 'is-collapsed' : ''}}"
- data-card="protectionSwitch"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.protectionSwitch}}">
- <view wx:for="{{protectionSwitchRegisters}}" wx:key="address" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue}}</view>
- </view>
- <switch
- checked="{{item.value}}"
- color="#0f766e"
- disabled="{{!connectedDevice}}"
- data-index="{{index}}"
- bindchange="onProtectionSwitchChange"
- />
- </view>
- </block>
- </view>
- <view class="panel {{collapsedCards.protection ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.protection ? 'is-collapsed' : ''}}"
- data-card="protection"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-shield-alert"></view>
- <view class="panel-title">保护参数</view>
- </view>
- <view class="panel-actions">
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="protection" bindtap="onGroupRead">读取</view>
- <view class="panel-action-button {{connectedDevice ? '' : 'is-disabled'}}" data-group="protection" bindtap="onGroupWrite">写入</view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.protection ? 'is-collapsed' : ''}}"
- data-card="protection"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.protection}}">
- <view wx:for="{{protectionDisplayRegisters}}" wx:key="name" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta {{item.isDirty ? 'param-meta--dirty' : ''}}">{{item.addressDisplay}} {{item.writeValue || '--'}}</view>
- </view>
- <view class="input-wrap">
- <input
- class="value-input {{item.unit ? 'value-input--with-unit' : ''}}"
- type="{{item.unit ? 'text' : 'digit'}}"
- placeholder="--"
- value="{{item.inputValue}}"
- data-index="{{item.sourceIndex}}"
- data-input-group="protection"
- bindinput="onProtectionInputChange"
- bindblur="onInputBlur"
- />
- </view>
- </view>
- </block>
- </view>
- <view class="panel {{collapsedCards.status ? 'panel--collapsed' : ''}}">
- <view class="panel-header panel-header--with-actions">
- <view
- class="panel-heading-toggle {{collapsedCards.status ? 'is-collapsed' : ''}}"
- data-card="status"
- bindtap="toggleCard"
- >
- <view class="panel-icon icon-status"></view>
- <view class="panel-title">状态</view>
- </view>
- <view class="panel-actions panel-actions--status">
- <view class="status-auto-controls">
- <input
- class="auto-read-interval"
- type="number"
- value="{{autoReadInterval}}"
- bindinput="onAutoReadIntervalInput"
- />
- <text class="auto-read-unit">ms</text>
- <view
- class="panel-action-button auto-read-button {{autoReadStatus ? 'is-active' : ''}} {{autoReadStatus || canReadStatus ? '' : 'is-disabled'}}"
- bindtap="onAutoReadStatusTap"
- >
- {{autoReadStatus ? '停止' : '自动'}}
- </view>
- </view>
- <view
- class="panel-action-button {{canReadStatus ? '' : 'is-disabled'}}"
- bindtap="readStatus"
- >
- 读取
- </view>
- </view>
- <view
- class="collapse-toggle {{collapsedCards.status ? 'is-collapsed' : ''}}"
- data-card="status"
- bindtap="toggleCard"
- >
- <view class="collapse-indicator"></view>
- </view>
- </view>
- <block wx:if="{{!collapsedCards.status}}">
- <view wx:for="{{statusRegisters}}" wx:key="name" class="param-row">
- <view class="param-main">
- <view class="param-name">{{item.name}}</view>
- <view class="param-meta">{{item.addressDisplay}} {{item.rawValue}}</view>
- </view>
- <view class="param-value">{{item.displayValue}}{{item.displayUnit ? ' ' + item.displayUnit : ''}}</view>
- </view>
- </block>
- </view>
- </view>
- </scroll-view>
|