This week, I wrapped up work on separating the USB features of the firmware which consists of the HID Keyboard and CDC Debugging Console into 2 seperate files together with 1 USB base file where functionalities are shared. These were written to resemble a library which helps to simplify usage of the USB functionalities when other features are built on top of them.
After wrapping up work on the USB features, I then started to work on the modem features of the firmware. To get this to work, the idea is to listen for AT commands that are sent via serial communication (through the USB CDC Debugging Console for now) and convert them into their corresponding actions that are executed by the TCP/IP stack on the PIC32. While an initial implementation of all the features have been coded up, there are still one or two of them which do not function as intended like determining disconnects and indicating the success or failure of an operation. Also, the current implementation still has a lot of room for improvement in terms of optimisation which I intend to do next week by coming up with a better way to handle the operations while at the same time taking into account the memory/speed trade-off when optimising code for performance.