Como detectar quando a gaveta da unidade de DVD é aberta

2

Eu fui desafiado a escrever um script para fechar minha unidade de dvd unbutu quando ela é aberta, e para fechá-la eu apenas uso o comando

eject -t

mas não consigo encontrar nenhuma documentação sobre como detectar quando a unidade é aberta ...

Existe alguma maneira de detectar quando a gaveta da unidade de DVD abre no Ubuntu?

    
por Jeffrey L. Roberts 27.01.2014 / 18:57

1 resposta

1

A solução é basicamente aqui . Em /usr/include/linux/cdrom.h você encontrará todos ioctl () para o cdrom,

#define CDROM_DRIVE_STATUS      0x5326  /* Get tray position, etc. */

Um snippet de código que retorna isso para você é:

 int slot;
 ioctl(fd, CDROM_DRIVE_STATUS, slot);

 switch(slot) {
    case CDS_NO_INFO: ... break;
    case CDS_NO_DISC: ... break;
    case CDS_TRAY_OPEN: ... break;
    case CDS_DRIVE_NOT_READY: ... break;
    case CDS_DISC_OK: ... break;
    default: /* something else, whichever you like */
 }

O ponto chave é, claro, o CDS_TRAY_OPEN.

    
por 27.01.2014 / 19:31

Tags