1
0

ble-logs.js 917 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. const {
  2. formatTime
  3. } = require('./ble-utils.js')
  4. const DEFAULT_MAX_LOG_COUNT = 100
  5. function createLogItem(direction, payload, note = '', extras = {}, sequence = 0, timestamp = Date.now()) {
  6. return {
  7. id: `log-${timestamp}-${sequence}`,
  8. direction,
  9. note,
  10. payloadBytes: Array.isArray(extras.payloadBytes) ? extras.payloadBytes.slice() : null,
  11. payloadText: typeof extras.payloadText === 'string' ? extras.payloadText : '',
  12. payload,
  13. time: formatTime(timestamp)
  14. }
  15. }
  16. function appendLog(logs = [], logItem, maxLogCount = DEFAULT_MAX_LOG_COUNT) {
  17. const limit = Math.max(1, Number(maxLogCount) || DEFAULT_MAX_LOG_COUNT)
  18. return logs.concat(logItem).slice(-limit)
  19. }
  20. function createClearLogsState() {
  21. return {
  22. logScrollTarget: '',
  23. logs: [],
  24. rxCount: 0,
  25. txCount: 0
  26. }
  27. }
  28. module.exports = {
  29. DEFAULT_MAX_LOG_COUNT,
  30. appendLog,
  31. createClearLogsState,
  32. createLogItem
  33. }