Ejemplo n.º 1
0
idigi_callback_status_t app_idigi_callback(idigi_class_t const class_id, idigi_request_t const request_id,
                                    void const * const request_data, size_t const request_length,
                                    void * response_data, size_t * const response_length)
{
    idigi_callback_status_t   status = idigi_callback_continue;

    switch (class_id)
    {
    case idigi_class_config:
        status = app_config_handler(request_id.config_request, request_data, request_length, response_data, response_length);
        break;
    case idigi_class_operating_system:
        status = app_os_handler(request_id.os_request, request_data, request_length, response_data, response_length);
        break;
    case idigi_class_network:
        status = app_network_handler(request_id.network_request, request_data, request_length, response_data, response_length);
        break;
    case idigi_class_data_service:
        status = app_data_service_handler(request_id.data_service_request, request_data, request_length, response_data, response_length);
        break;
    default:
        /* not supported */
        break;
    }
    return status;
}
/* iDigi Connector callback */
idigi_callback_status_t ArduinoiDigiInterfaceClass::appCallback(
                            idigi_class_t const class_id,
                            idigi_request_t const request_id, void * const request_data,
                            size_t const request_length, void * response_data,
                            size_t * const response_length)
{
  idigi_callback_status_t   status = idigi_callback_continue;
  //AR_DEBUG_PRINTF("iDigi.appCallback(): %d %d\n", class_id, request_id);
  switch (class_id)
  {
    case idigi_class_config:
      if (request_id.config_request == idigi_config_ip_addr)
      {
        // HACK: from testing we know this callback is called if we are connected:
        iDigi.connected = true;
      }      
      status = app_config_handler(request_id.config_request, request_data, request_length, response_data, response_length);
      break;
    case idigi_class_operating_system:
      status = app_os_handler(request_id.os_request, request_data, request_length, response_data, response_length);
      break;
    case idigi_class_network:
      status = app_network_handler(request_id.network_request, request_data, request_length, response_data, response_length);
      break;
    case idigi_class_data_service:
      status = dataService.appReqHandler(request_id.data_service_request, request_data, request_length, response_data, response_length);
    default:
      /* not supported */
      break;
  }
  return status;
}