refactor threadding, receive raw msgs from SerialPort through queue if running async