Guest User

Untitled

a guest
Jul 17th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. import scipy
  2.  
  3. def remove_zeroes_in_msg_stream(stream, start_of_msg, end_of_msg):
  4. filtered = []
  5. num_msg = 0
  6. state="ZEROES"
  7. for b in stream:
  8. if state == "ZEROES":
  9. if b != 0:
  10. if b != start_of_msg: # this should not happen
  11. print "Error!", b
  12. else:
  13. state = "DATA"
  14. num_msg += 1
  15. msg_len = 1
  16. elif state == "DATA":
  17. if b == end_of_msg:
  18. state = "TAIL"
  19. elif state == "TAIL":
  20. if b == 0:
  21. state = "ZEROES"
  22. if state != "ZEROES":
  23. filtered.append(b)
  24. msg_len += 1
  25. return filtered, num_msg, msg_len
  26.  
  27. stream = scipy.fromfile(open("test"), dtype=scipy.uint8)
  28. cnt_som = 0
  29. cnt_eom = 0
  30. som = 170
  31. eom = 23
  32. state = "ZEROES"
  33. num_msg = 0
  34. signaling_len = 8
  35.  
  36. for bb in stream:
  37. if state == "ZEROES":
  38. if bb != 0:
  39. if bb != som: # this should not happen
  40. raise ValueError("Beginning of message is not som.")
  41. else:
  42. state = "PREAMBLE"
  43. num_msg += 1
  44. preamble_len = 1
  45. elif state == "PREAMBLE":
  46. if bb != som:
  47. if preamble_len != signaling_len and preamble_len > 2:
  48. raise ValueError("Wrong preamble len of " + str(preamble_len) + "." \
  49. + ". Current byte " + str(bb) + ". Current message " + str(num_msg) + ".")
  50. state = "DATA"
  51. data_len = 1
  52. else:
  53. preamble_len += 1
  54. elif state == "DATA":
  55. if bb == eom:
  56. state = "TAIL"
  57. tail_len = 1
  58. else:
  59. data_len += 1
  60. elif state == "TAIL":
  61. if bb != eom:
  62. if tail_len != signaling_len and tail_len > 2:
  63. raise ValueError("Wrong tail len of " + str(tail_len) + ". Current byte " + str(bb) + ". Current message " + str(num_msg) + ".")
  64. elif bb == som:
  65. state = "PREAMBLE"
  66. preamble_len = 1
  67. num_msg += 1
  68. elif bb == 0:
  69. state = "ZEROES"
  70. else:
  71. tail_len += 1
  72. if state != "ZEROES":
  73. print bb
  74.  
  75. print "Number of messages:", num_msg
Add Comment
Please, Sign In to add comment