Roger Lacson’s Status Report for 4/29/2023

  • Personal Accomplishments
    • I coded a separate acknowledgment protocol for sending the start packet as well as the error queue packets. Originally for sending the start packet (containing the number of packets, the length of the final packet, and the name of the file to be sent), I would have the transmitter loop on writing to and then reading from the FTDI. Reading was done to receive an acknowledge message from the receiver. We deemed that the looping of writing on every iteration was unnecessary, so the code was adjusted to only write once at the beginning, and then only specifically write again if an error message was received.
    • I am trying to code out a protocol that handles drops when the transmission is interrupted (e.g. when someone’s hand blocks the laser). This is difficult because I am unsure of how the receiver will handle partially received packets. Additionally, I don’t know what bytes the receiver will read if transmission restarts after unblocking the laser. Furthermore, because we pause every 128 packets to send the updated error queue, I have to case on whether or not another complete packet is received that needs to be decoded (and every packet that was missed has to be added to the error queue) and case on if up to the 128th packet is read, and then distinguish this case so that it can add all error queue packets up to this point to the error queue to be retransmitted.
    • I tried thinking about the error messages that KJ shared with me. However, the documentation is bad, and furthermore, if the only solution is to loop on closing the FTDI connection and re-open, the coding logistics are difficult and require planning.
  •  Schedule
    • My code is in a good enough state to demo by transmitting moderately-sized (<~25 MB)  packets. Should I be unable to complete the code I described above, the code is still functional enough to display a proof-of-concept-style presentation. In this regard, my progress is on schedule for demo day. I will, however, do my best to improve upon the current implementation to hopefully improve performance for demo day.
  • Deliverables
    • Code for transmission drops
    • Code for handling FTDI disconnect errors
    • Report and poster presentation contributions