2011-12-13 11 views
12

¿Alguien sabe cómo el RIL (/ hardware/reference/reference-ril /) determina qué se monta en/dev/cuando se inicia la radio de banda base?Android Radio Interface Layer (RIL) y/dev/

En teléfonos más antiguos y en otros documentos, los teléfonos GSM utilizan/dev/smd0. No todos los teléfonos usan/dev/smd0. Estoy tratando de determinar una forma de averiguar qué se monta independientemente del tipo de radio y proveedor.

Si alguien puede identificar específicamente en qué/hardware/referencia/referencia-ril/puedo ver dónde está establecido y de dónde está extrayendo la información desde la inicialización, sería perfecto.

Respuesta

7

RIL está en su Marco de aplicación.

si desea ver el RIL e implementa la funcionalidad con el uso del símbolo del sistema que está hecho. No está por debajo de comando:

void (*RIL_RequestFunc) (int request, void *data, size_t datalen, RIL_Token t); 

encontré esto desde aquí:

que son serios acerca de esto, por favor vaya a través del enlace: RIL Study LInk

Si usted quiere saber acerca ejemplo: GIT HUB

0

Depende realmente de qué interfaz esté utilizando para conectarse. Puede usar la interfaz USB, UART o SPI para conectar la capa superior con el módem. El parámetro pasado en la función RIL_Init determina el dispositivo al que está intentando conectarse. Si desea saber específicamente dónde se hace esto, consulte la función RIL_Init en reference-ril.c.

const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv) 

{

int ret; 

int fd = -1; 
int opt; 
pthread_attr_t attr; 

s_rilenv = env; 

while (-1 != (opt = getopt(argc, argv, "p:d:s:"))) { 
    switch (opt) { 
     case 'p': 
      s_port = atoi(optarg); 
      if (s_port == 0) { 
       usage(argv[0]); 
       return NULL; 
      } 
      RLOGI("Opening loopback port %d\n", s_port); 
     break; 

     case 'd': 
      s_device_path = optarg; 
      RLOGI("Opening tty device %s\n", s_device_path); 
     break; 

     case 's': 
      s_device_path = optarg; 
      s_device_socket = 1; 
      RLOGI("Opening socket %s\n", s_device_path); 
     break; 

     default: 
      usage(argv[0]); 
      return NULL; 
    } 
} 

if (s_port < 0 && s_device_path == NULL) { 
    usage(argv[0]); 
    return NULL; 
} 

sMdmInfo = calloc(1, sizeof(ModemInfo)); 
if (!sMdmInfo) { 
    RLOGE("Unable to alloc memory for ModemInfo"); 
    return NULL; 
} 
pthread_attr_init (&attr); 
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); 
ret = pthread_create(&s_tid_mainloop, &attr, mainLoop, NULL); 

return &s_callbacks; 

}

espero que las cosas son claras ahora.

Cuestiones relacionadas