-
Доброе время суток Подскажите, как можно проверить открыт ли CD-ROM, желательно с примерам кода.
-
1) удостовериться, что к компьютеру подключена веб-камера 2) выдать пользователю окошко с просьбой навести камеру на CD-ROM 3) прогнать полученную с камеры картинку через модуль распознания изображения и сравнить с эталонной картинкой открытого CD-ROM мелочами типа юстировки направления "взгляда" камеры можно принебречь, если составить хорошую базу фотографий открытого CD-ROM с разных ракурсов.
-
-
номер раз http://www.rsdn.ru/article/baseserv/scsi.xmlномер три(глобальный) http://www.t10.org/номер два(конкретный, но на Ц и для wnaspi32(NT/2000/9X)) int haid, target, lun;
DWORD dwResult;
haid = atoi(argv[1]);
if (argc < 3) target = 0;
else target = atoi(argv[2]);
if (argc < 4) lun = 0;
else lun = atoi(argv[3]);
dwResult = GetASPI32SupportInfo();
if (BYTE(dwResult >>8) != SS_COMP)
HANDLE hEvent;
hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
if (hEvent == NULL)
SRB_ExecSCSICmd esc;
BYTE buf[8];
ZeroMemory(buf, 8);
ZeroMemory(&esc, sizeof(SRB_ExecSCSICmd));
esc.SRB_Cmd = SC_EXEC_SCSI_CMD;
esc.SRB_HaId = haid;
esc.SRB_Flags = SRB_EVENT_NOTIFY | SRB_DIR_IN;
esc.SRB_Target = target;
esc.SRB_Lun = lun;
esc.SRB_SenseLen = SENSE_LEN;
esc.SRB_BufLen = 0x8;
esc.SRB_BufPointer = buf;
esc.SRB_CDBLen = 10;
esc.SRB_PostProc = hEvent;
esc.CDBByte[0] = 0x4A; esc.CDBByte[1] = 0x1; esc.CDBByte[2] = 0x0;
esc.CDBByte[3] = 0x0;
esc.CDBByte[4] = 0x10; esc.CDBByte[5] = 0x0;
esc.CDBByte[6] = 0x0;
esc.CDBByte[7] = 0x0; esc.CDBByte[8] = 0x8; esc.CDBByte[9] = 0x0;
dwResult = SendASPI32Command((LPSRB)&esc);
if (dwResult == SS_PENDING)
dwResult = esc.SRB_Status;
}
CloseHandle(hEvent);
if (dwResult != SS_COMP)
if ((buf[2] & 0x7) == 4) printf("Result: door %s\n", (buf[5] & 0x1) ? "open" : "closed");
else printf("Result: door status unknown.\n");
- осталось срастить номер раз и номер два...
-
Мне способ с веб-камерой кажется наиболее достоверным, но я бы все-таки использовал старую мышь. Мышь разобрать, и прикрепит одним из наиболее удобных способов напротив лотка сидирома так, чтобы при выдвижении он нажимал на кнопку или перекрывал фотодатчик. Если мышь с колесиком, то прикрепить так, чтобы лоток прокручивал колесико, это позволит анализировать не только состояния "открыт" "закрыт" но и собственно процесс.
|