Implement module iteration based on defined type, change type definitions to be a bitset so a module can have multiple functions, send reports to all attached comm modules, wait until we've received an error code before turning the GSM module off after failing to send a message.