light.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. // pages/light/light.js
  2. import { connectStateMap, connectStateTypes } from '../../data/devType.js'
  3. import { MAX_COLOR_TEMPERATURE, MIN_COLOR_TEMPERATURE, COLOR_TEMPERATURE_STEP } from '../../data/lampType.js'
  4. import { handle } from '../../utils/mjs_handle.js'
  5. import { calculateColor } from '../../utils/mjs_color.js'
  6. import BLE from '../../utils/mjs_wxble.js'
  7. console.log(BLE);
  8. const ble = new BLE();
  9. const tmpDevs = [
  10. {
  11. id: 1,
  12. name: "123",
  13. deviceId: "1234"
  14. },
  15. {
  16. id: 2,
  17. name: "设备2",
  18. deviceId: "23456"
  19. }
  20. ]
  21. Page({
  22. /**
  23. * 页面的初始数据
  24. */
  25. data: {
  26. connectStateTypes: connectStateTypes,
  27. ble: {
  28. state: connectStateTypes.scaning,
  29. devName: "123",
  30. init: false
  31. },
  32. lamp: {
  33. // 信息相关
  34. temp_max: MAX_COLOR_TEMPERATURE,
  35. temp_min: MIN_COLOR_TEMPERATURE,
  36. temp_step: COLOR_TEMPERATURE_STEP,
  37. // 开关状态
  38. switch: false,
  39. // 全开状态(无色温调节)
  40. fullOpen: false,
  41. // 亮度
  42. brightness: 50,
  43. // 色温
  44. colorTemperature: MAX_COLOR_TEMPERATURE,
  45. // 色彩
  46. bgc: "#3b3b3b"
  47. },
  48. bleDevs: tmpDevs
  49. },
  50. brightnessChangeHandle(e){
  51. console.log("亮度改变");
  52. console.log(e);
  53. this.setData({
  54. lamp: {...this.data.lamp, brightness: e.detail.value}
  55. })
  56. this.reComputeBgColor();
  57. },
  58. colorChangeHandle(e){
  59. console.log("色温改变");
  60. console.log(e);
  61. this.setData({
  62. lamp: {...this.data.lamp, colorTemperature: e.detail.value}
  63. })
  64. this.reComputeBgColor();
  65. },
  66. // 计算背景色
  67. reComputeBgColor(){
  68. let newBgC;
  69. let temp = this.data.lamp.colorTemperature;
  70. let light = this.data.lamp.brightness;
  71. if(this.data.lamp.fullOpen){
  72. temp = MAX_COLOR_TEMPERATURE / 2;
  73. }
  74. if(this.data.lamp.switch){
  75. newBgC = calculateColor(temp, light);
  76. }else{
  77. newBgC = "#3b3b3b";
  78. }
  79. this.setData({
  80. lamp: {...this.data.lamp, bgc: newBgC}
  81. })
  82. },
  83. fullModeSwitchHandle(e){
  84. // 全开模式切换
  85. console.log("全开模式切换");
  86. this.setData({
  87. lamp: {...this.data.lamp, fullOpen: !this.data.lamp.fullOpen}
  88. })
  89. },
  90. switchHandle(e){
  91. // 开关切换
  92. this.setData({
  93. lamp: {...this.data.lamp, switch: !this.data.lamp.switch}
  94. });
  95. this.reComputeBgColor();
  96. },
  97. // 蓝牙控制板块
  98. searchDeviceHandle() {
  99. // 开始搜索设备
  100. this.excuteSearchDevice();
  101. },
  102. connectDevHandle(e) {
  103. // 连接设备
  104. console.log("click connectDev")
  105. console.log(e);
  106. let dev = e.detail;
  107. console.log(dev);
  108. },
  109. async excuteSearchDevice(){
  110. console.log("搜索 蓝牙设备");
  111. let err,res;
  112. if(!this.data.ble.init){
  113. [err,res] = await handle(ble.initBle());
  114. if(err){
  115. return wx.showModal({
  116. title: '蓝牙错误',
  117. content: "无法启用蓝牙!!!",
  118. success (res) { }
  119. })
  120. }
  121. ble.onSearch = this.onSearchHandle;
  122. this.setData({
  123. ble: {...this.data.ble, init: true},
  124. })
  125. }
  126. this.setData({
  127. ble: {...this.data.ble,state: connectStateTypes.searching},
  128. });
  129. ble.search(this.onSearchHandle);
  130. },
  131. /**
  132. * 生命周期函数--监听页面加载
  133. */
  134. onLoad(options) {
  135. },
  136. /**
  137. * 生命周期函数--监听页面初次渲染完成
  138. */
  139. onReady() {
  140. },
  141. /**
  142. * 生命周期函数--监听页面显示
  143. */
  144. onShow() {
  145. // 配置导航栏
  146. wx.setNavigationBarTitle({
  147. title: '灯光控制'
  148. })
  149. },
  150. /**
  151. * 生命周期函数--监听页面隐藏
  152. */
  153. onHide() {
  154. },
  155. /**
  156. * 生命周期函数--监听页面卸载
  157. */
  158. onUnload() {
  159. },
  160. /**
  161. * 页面相关事件处理函数--监听用户下拉动作
  162. */
  163. onPullDownRefresh() {
  164. },
  165. /**
  166. * 页面上拉触底事件的处理函数
  167. */
  168. onReachBottom() {
  169. },
  170. /**
  171. * 用户点击右上角分享
  172. */
  173. onShareAppMessage() {
  174. }
  175. })