index.wxml 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <navigation-bar background="{{themeMode === 'dark' ? '#111827' : '#FFF'}}"></navigation-bar>
  2. <view wx:if="{{toastText}}" class="page-toast page-toast--{{toastType}} {{themeClass}}">
  3. {{toastText}}
  4. </view>
  5. <scroll-view class="scrollarea {{themeClass}}" scroll-y type="list">
  6. <view class="page-shell">
  7. <view class="panel status-summary-panel">
  8. <view class="panel-header panel-header--with-actions">
  9. <view class="panel-icon icon-status"></view>
  10. <view class="panel-title">状态</view>
  11. <view class="panel-actions panel-actions--status">
  12. <view
  13. class="panel-action-button auto-read-button {{autoReadStatus ? 'is-active' : ''}} {{autoReadStatus || canReadStatus ? '' : 'is-disabled'}}"
  14. bindtap="onAutoReadStatusTap"
  15. >
  16. {{autoReadStatus ? '停止' : '自动'}}
  17. </view>
  18. <view
  19. class="panel-action-button {{canReadStatus ? '' : 'is-disabled'}}"
  20. bindtap="readStatus"
  21. >
  22. 读取
  23. </view>
  24. </view>
  25. </view>
  26. <view class="status-summary-body">
  27. <view class="status-summary-top">
  28. <view class="status-summary-box status-summary-box--state">
  29. <view class="status-summary-box-label">状态机</view>
  30. <view class="status-summary-box-value">{{statusSummary.stateText}}</view>
  31. </view>
  32. <view class="status-summary-box status-summary-box--fault {{statusSummary.faultClass}}">
  33. <view class="status-summary-box-label">故障码</view>
  34. <view class="status-summary-box-value">{{statusSummary.faultText}}</view>
  35. </view>
  36. </view>
  37. <view class="status-summary-line status-summary-line--metrics">
  38. <view
  39. wx:for="{{statusSummary.metrics}}"
  40. wx:key="key"
  41. class="status-metric"
  42. >
  43. {{item.displayText}}
  44. </view>
  45. </view>
  46. </view>
  47. </view>
  48. <view class="panel control-panel">
  49. <view class="panel-header panel-header--with-actions">
  50. <view class="panel-icon icon-control"></view>
  51. <view class="panel-title">控制指令</view>
  52. <view class="panel-actions panel-actions--three control-actions">
  53. <view
  54. class="panel-action-button {{connectedDevice && !isBootloaderBusy ? '' : 'is-disabled'}}"
  55. bindtap="readControlStatus"
  56. >
  57. 读取
  58. </view>
  59. <view
  60. wx:for="{{controlActionButtons}}"
  61. wx:key="key"
  62. class="panel-action-button {{connectedDevice && !isBootloaderBusy ? '' : 'is-disabled'}}"
  63. data-key="{{item.key}}"
  64. bindtap="onControlButtonTap"
  65. >
  66. {{item.name}}
  67. </view>
  68. </view>
  69. </view>
  70. <view class="param-row input-row">
  71. <view class="param-main">
  72. <view class="param-name">{{speedCommand.name}}</view>
  73. <view class="param-meta {{speedCommand.isDirty ? 'param-meta--dirty' : ''}}">{{speedCommand.addressDisplay}} {{speedCommand.writeValue}}</view>
  74. </view>
  75. <view class="input-wrap">
  76. <input
  77. class="value-input"
  78. type="{{speedCommand.unit ? 'text' : 'digit'}}"
  79. placeholder="--"
  80. value="{{speedCommand.inputValue}}"
  81. bindinput="onSpeedCommandInput"
  82. bindblur="onSpeedCommandBlur"
  83. />
  84. </view>
  85. </view>
  86. <view class="control-grid">
  87. <view wx:for="{{controlButtons}}" wx:key="key" class="control-cell control-cell--{{item.key}}">
  88. <button
  89. class="control-button control-button--{{item.key}}"
  90. disabled="{{!connectedDevice || isBootloaderBusy}}"
  91. data-key="{{item.key}}"
  92. bindtap="onControlButtonTap"
  93. >
  94. <text class="control-name">{{item.name}}</text>
  95. </button>
  96. </view>
  97. </view>
  98. </view>
  99. <view class="panel upgrade-panel">
  100. <view class="panel-header panel-header--with-actions">
  101. <view class="panel-icon icon-chip"></view>
  102. <view class="panel-title">BootLoader</view>
  103. <view class="panel-actions upgrade-actions">
  104. <view
  105. class="panel-action-button {{isBootloaderBusy ? 'is-disabled' : ''}}"
  106. bindtap="openFirmwareFile"
  107. >
  108. 打开
  109. </view>
  110. <view
  111. class="panel-action-button {{isBootloaderBusy ? 'is-disabled' : ''}}"
  112. bindtap="chooseFirmwareFile"
  113. >
  114. 聊天
  115. </view>
  116. <view
  117. class="panel-action-button {{connectedDevice && !isBootloaderBusy ? '' : 'is-disabled'}}"
  118. bindtap="handshakeBootloader"
  119. >
  120. 握手
  121. </view>
  122. <view
  123. class="panel-action-button {{connectedDevice && !isBootloaderBusy ? '' : 'is-disabled'}}"
  124. bindtap="readProgramChecksum"
  125. >
  126. 读取
  127. </view>
  128. <view
  129. class="panel-action-button {{connectedDevice && !isBootloaderBusy ? '' : 'is-disabled'}}"
  130. bindtap="exitBootloader"
  131. >
  132. 退出
  133. </view>
  134. <view
  135. class="panel-action-button {{connectedDevice && isFirmwareReady && !isBootloaderBusy ? '' : 'is-disabled'}}"
  136. bindtap="startFirmwareUpgrade"
  137. >
  138. 升级
  139. </view>
  140. </view>
  141. </view>
  142. <view class="upgrade-body">
  143. <view class="upgrade-row">
  144. <text class="upgrade-label">芯片型号</text>
  145. <text class="upgrade-value">{{chipModel}}</text>
  146. </view>
  147. <view class="upgrade-row upgrade-row--file">
  148. <view class="upgrade-file-head">
  149. <text class="upgrade-label">固件文件</text>
  150. <view class="upgrade-file-meta">
  151. <text class="upgrade-file-meta-item upgrade-file-meta-item--program">{{deviceProgramCrcText}}</text>
  152. <text class="upgrade-file-meta-item upgrade-file-meta-item--checksum">{{firmwareChecksumText}}</text>
  153. <text class="upgrade-file-meta-item upgrade-file-meta-item--size">{{firmwareSizeText}}</text>
  154. </view>
  155. </view>
  156. <text class="upgrade-file-name">{{firmwareName ? firmwareName : '--'}}</text>
  157. </view>
  158. <view class="upgrade-row">
  159. <text class="upgrade-label">Bootloader</text>
  160. <text class="upgrade-value">{{bootloaderVersion}} / {{bootloaderChipId}}</text>
  161. </view>
  162. <view wx:if="{{bootloaderStatusText || bootloaderDetailText}}" class="upgrade-status {{isFirmwareReady ? 'upgrade-status--ready' : ''}}">
  163. {{bootloaderStatusText}}<text wx:if="{{bootloaderDetailText}}"> · {{bootloaderDetailText}}</text>
  164. </view>
  165. <view class="upgrade-progress">
  166. <view class="upgrade-progress-bar" style="width: {{bootloaderProgress}}%;"></view>
  167. </view>
  168. </view>
  169. </view>
  170. </view>
  171. </scroll-view>