+
+ pub fn set_frame_number(&mut self, number: u16) {
+ let existing_eos = u16::from_be_bytes([self.0[$from], self.0[$from + 1]]) & 0x8000;
+ let new = (existing_eos | (number & 0x7fff)).to_be_bytes();
+ self.0[$from] = new[0];
+ self.0[$from + 1] = new[1];
+ self.recalculate_crc();
+ }
+
+ pub fn set_end_of_stream(&mut self, eos: bool) {
+ let existing_fn = u16::from_be_bytes([self.0[$from], self.0[$from + 1]]) & 0x7fff;
+ let new = (existing_fn | (if eos { 0x8000 } else { 0 })).to_be_bytes();
+ self.0[$from] = new[0];
+ self.0[$from + 1] = new[1];
+ self.recalculate_crc();
+ }