app.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import sys
  2. from nbus_slave import *
  3. from nbus_system import *
  4. import matplotlib.pyplot as plt
  5. from imu_slave import *
  6. import numpy as np
  7. def show_data(data):
  8. fig, ax = plt.subplots()
  9. for d in data:
  10. ax.plot(data[d])
  11. ax.grid()
  12. plt.show()
  13. if __name__ == "__main__":
  14. nbus = NbusSystem(False)
  15. s1_adr = 5
  16. s2_adr = 6
  17. adrs = [s1_adr, s2_adr]
  18. slave1 = nbus.create_slave(ImuSlave, s1_adr)
  19. slave2 = nbus.create_slave(ImuSlave, s2_adr)
  20. if nbus.get_slave(s1_adr).cmd_echo([97, 98, 99, 100]) == 0:
  21. print("Slave 1 not found")
  22. sys.exit()
  23. if nbus.get_slave(s2_adr).cmd_echo([97, 98, 99, 100]) == 0:
  24. print("Slave 2 not found")
  25. sys.exit()
  26. # app.cmd_reset()
  27. store_param = False
  28. if store_param:
  29. nbus.get_slave(s1_adr).cmd_set_param(1, PARAM_SAMPLERATE, 1)
  30. nbus.get_slave(s1_adr).cmd_set_param(1, PARAM_RANGE, 0)
  31. nbus.get_slave(s1_adr).cmd_set_param(1, PARAM_FILTER, 2)
  32. nbus.get_slave(s1_adr).cmd_store(1)
  33. sys.exit()
  34. # !!!! slave1.cmd_set_param(1, PARAM_SAMPLERATE, 10)
  35. # !!!! slave1.cmd_set_param(2, PARAM_SAMPLERATE, 10)
  36. for adr in adrs:
  37. for s in range(1):
  38. sr = nbus.get_slave(adr).cmd_get_param(s + 1, PARAM_SAMPLERATE)
  39. r = nbus.get_slave(adr).cmd_get_param(s + 1, PARAM_RANGE)
  40. lpf = nbus.get_slave(adr).cmd_get_param(s + 1, PARAM_FILTER)
  41. ee = nbus.get_slave(adr).cmd_get_param(s + 1, PARAM_GAIN)
  42. print(sr, r, lpf, ee)
  43. sr = nbus.get_slave(adr).cmd_get_param(1, PARAM_SAMPLERATE)
  44. nbus.get_slave(adr).cmd_set_param(1, PARAM_RANGE, 1)
  45. print(nbus.get_slave(adr).slave_params)
  46. nbus.cmd_start()
  47. time.sleep(0.1)
  48. #nbus.cmd_stop()
  49. #sys.exit()
  50. pocet = {}
  51. for adr in adrs:
  52. pocet[adr] = nbus.get_slave(adr).cmd_sensor_cnt()
  53. # sys.exit()
  54. print("pocet senzorov=", pocet)
  55. #sys.exit()
  56. data_acc = {}
  57. for adr in adrs:
  58. data_acc[adr] = []
  59. print(data_acc)
  60. for i in range(64):
  61. for adr in adrs:
  62. acc = nbus.get_slave(adr).cmd_sensor_get_data_IMU(1)
  63. # gyr = nbus.get_slave(adr).cmd_sensor_get_data_IMU(2)
  64. data_acc[adr].append(acc)
  65. # print(gyr)
  66. print(".", end=" ")
  67. nbus.cmd_stop()
  68. show_data(data_acc)
  69. # sys.exit()
  70. for adr in adrs:
  71. for i in range(pocet[adr]):
  72. d = nbus.get_slave(adr).cmd_sensor_get_data(i + 1)
  73. print("Data", i + 1, ":\t", d)
  74. print("Sensor type")
  75. for i in range(pocet[adr]):
  76. print(nbus.get_slave(adr).cmd_sensor_type(i + 1))
  77. print("Sensors type")
  78. print(nbus.get_slave(adr).cmd_sensors_type(pocet[adr]))
  79. par = nbus.get_slave(adr).cmd_get_params(1)
  80. print(par)
  81. r = nbus.get_slave(adr).cmd_module_info(0xE1)
  82. print('NAME:', r)
  83. r = nbus.get_slave(adr).cmd_module_info(0xE2)
  84. print('TYPE', r)
  85. r = nbus.get_slave(adr).cmd_module_info(0xE4)
  86. print('FW', r)
  87. r = nbus.get_slave(adr).cmd_module_info(0xE5)
  88. print('HW', r)
  89. r = nbus.get_slave(adr).cmd_module_info(0xE3)
  90. print("UUID", r)
  91. r = nbus.get_slave(adr).cmd_module_info(0xE6)
  92. print("MEM ID", r)
  93. nbus.finish()