Advertisement
Guest User

Untitled

a guest
Dec 30th, 2014
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. dim written
  2. dim result
  3. dim data
  4. dim data_len
  5. dim AC1, AC2, AC3, AC4, AC5, AC6
  6. dim B1, B2
  7. dim MB, MC, MD
  8. dim a
  9. dim x1, x2, t, B5
  10. dim MSB, LSB, UT
  11. dim T
  12. dim sensor(22)
  13. # Boot event listener
  14. event system_boot(major ,minor ,patch ,build ,ll_version ,protocol_version ,hw)
  15. #call hardware_set_soft_timer(1634, 1, 0)
  16. call gap_set_mode(gap_general_discoverable, gap_undirected_connectable)
  17. # This should be the timer for 1s 32768
  18. call hardware_set_soft_timer(16384,1,0)
  19. # call hardware_i2c_read(address,stop,length)(result,data_len,data_data)
  20.  
  21. end
  22. # Disconnection event listener
  23. event connection_disconnected(connection, reason)
  24. call gap_set_mode(gap_general_discoverable, gap_undirected_connectable) # Start advertisement
  25. end
  26. #Timer event listener
  27. event hardware_soft_timer(handle)
  28.  
  29. call hardware_i2c_read(238,0,"\xaa")(result,data_len,sensor(0:22))
  30. #AC5
  31. #call hardware_i2c_read(238,0,"\xb2")(result,data_len,sensor(8))
  32. #call hardware_i2c_read(238,0,"\xb3")(result,data_len,sensor(9))
  33. #AC6
  34. #call hardware_i2c_read(238,0,"\xb4")(result,data_len,sensor(10))
  35. #call hardware_i2c_read(238,0,"\xb5")(result,data_len,sensor(11))
  36. #MC
  37. #call hardware_i2c_read(238,0,"\xbc")(result,data_len,sensor(18))
  38. #call hardware_i2c_read(238,0,"\xbd")(result,data_len,sensor(19))
  39. #MD
  40. #call hardware_i2c_read(238,0,"\xbe")(result,data_len,sensor(20))
  41. #call hardware_i2c_read(238,0,"\xbf")(result,data_len,sensor(21))
  42.  
  43. AC5 = (sensor(8) << 8| sensor(9))
  44. AC6 = (sensor(10) << 8 | sensor(11))
  45. MC = (sensor(18) << 8| sensor(19))
  46. MD = (sensor(20) << 8| sensor(21))
  47. # call hardware_i2c_write(address,stop,data_len, data_data)(written)
  48. call hardware_i2c_write(238,1,2,"\xf4\x2e")(written)
  49. ##delay
  50. a = 0
  51. while a < 500
  52. a = a + 1
  53. end while
  54. # API:
  55. # call hardware_i2c_write(address,stop,data_len, data_data)(written)
  56. # call hardware_i2c_read(address,stop,length)(result,data_len,data_data)
  57. # call attributes_write(handle, offset, value_len, value_data)(result)
  58. #0xEF 239 (read) and 0xEE 238 (write)
  59. # call hardware_i2c_read(address,stop,length)(result,data_len,data_data)
  60. call hardware_i2c_read(239,0,"\xf6")(result,data_len, MSB)
  61. call hardware_i2c_read(239,0,"\xf7")(result,data_len, LSB)
  62. UT = (MSB) << 8 | (LSB)
  63. x1 = (UT - AC6) * AC5 / (2*2*2*2*2*2*2*2*2*2*2*2*2*2*2)
  64. x2 = (MC * (2*2*2*2*2*2*2*2*2*2*2)) / (x1 + MD)
  65. B5 = x1 + x2
  66. T = ((B5 + 8) / (2*2*2*2))
  67. if T < 0
  68. T = 1111
  69. end if
  70. call attributes_write(Measurement,0,2,T)
  71. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement