This week, I finished a working version of the modem which now supports sending data and properly detecting when there is a disconnect to allow reconnecting properly. There are however, a few limitations as of now. One of them is that for some reason on the current firmware, I am unable to use more than 3 concurrent sockets. And to make matters worse, the TCPIP_TCP_ServerOpen function that was included in the TCP-IP Library in Harmony v1.11 crashes the firmware when I try to open the 4th socket. TCPIP_TCP_ClientOpen still works properly without crashing on the 4th socket which at least allows me to detect that the 4th socket was not opened. What was weird with this behaviour was that the current limit on the number of sockets is currently set to 10 so this should not be an issue. Making sure that there were not any other sockets using up the quota, I followed Dr. Shawn’s advice to either increase the limit, remove some features that may be using up sockets or do both to determine whether is the limitation due to the quota. After increasing the limit and removing the DNS feature, unfortunately the problem still remains. I have not tried disabling cors though so I intend to try that first before proceeding to other parts of the modem. Speed was also an issue as I only managed to get bump up the speed to a meagre 700kbps from the initial 200kbps.
There are also a few parts of the modem which did not correspond exactly to the original module so I will need to modify them. For the most part of it, I would need to buffer the AT commands instead of assuming that the size of a packet of data sent would be consistent for each command as it is possible for the commands to be sent in separate chunks of data which would cause the modem to operate incorrectly. After that is done, what is left would be documenting the feature to ensure that users actually know how to use the modem!