Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

 

Рисунок 12. Формат дескриптора свойства «СD Track at Once»

Устройство способно выполнить запись трека на компакт-диск в режиме TAO в том случае, если бит CD-RW установлен в единицу.

Рассмотрим функцию, выполняющую проверку наличия у устройства свойства «СD Track at Once» и значение бита CD-RW. Функция принимает один параметр – код свойства. Полный текст программы приведен в файле SG/get_conf.c.

int get_conf(__u16 f_num)

{

    __u8 get_conf_cmd[10];

    __u8 data_buff[16]; // результаты чтения

    __u32 data_length = 0; // реальная длина данных

    __u16 current_prof = 0; // значение текущего профиля

    __u16 f_code = 0; // код свойства

/* Ждем готовность устройства */

    if(test_unit_ready() < 0) exit(-1);

/* Формируем командный пакет */

    memset(data_buff, 0, 16);

    memset(get_conf_cmd, 0, 10);

    get_conf_cmd[0] = 0x46; // код команды GET CONFIGURATION

    get_conf_cmd[1] = 2; // RT= 10b

    get_conf_cmd[8] = 16;

/* В поле Starting Feature Number заносим код свойства */

    f_num = __swab16(f_num);

    memcpy((get_conf_cmd + 2), (void *)&f_num, 2);

/* Посылаем устройству команду */

    if(send_cmd(get_conf_cmd, 10, SG_DXFER_FROM_DEV, data_buff, 16, 20000) < 0) return -1;

/* Определяем длину считанных данных */

    memcpy((void *)&data_length, data_buff, 4);

    data_length = __swab32(data_length);

    printf(" Feature data length - %u ", data_length);

/* Если длина считанных данных равна 4, то запрашиваемое свойство не поддерживается */

    if(data_length == 4) return -1;

/* Определяем значение текущего профиля */

    memcpy((void *)&current_prof, data_buff + 6, 2);

    current_prof = __swab16(current_prof);

    printf("Current profile - 0x%.4X ", current_prof);

/* Код свойства, значение должно совпадать с параметром f_num */

    memcpy((void *)&f_code, (data_buff + 8), 2);

    f_code = __swab16(f_code);

    printf("Feature Code - 0x%.4X ", f_code);

    printf("Byte 4: 0x%X ", data_buff[12]);

/* Проверяем значение бита CD-RW. Если бит установлен в единицу – запрашиваемое свойство устройством поддерживается */

    if(data_buff[12] & 0x02) printf("Feature CD TAO support ");

    else return -1;

   

    return 0;

}

Устанавливаем в привод CD-RW диск и запускаем программу на выполнение. Результаты работы:

Feature data length - 12

Current profile - 0x000A

Feature Code - 0x002D

Byte 4: 0x6

Feature CD TAO support

Текущий профиль устройства – CD-RW, см. п. 5.4.10 «Profile 000Ah: CD-RW» спецификации SCSI MMC-4 ([1]). Список свойств, соответствующих данному профилю, приведен в этом же пункте, в таблице 192 «Mandatory Feature for CD-RW». Свойство «CD Track at Once» входит в их число.

Теперь установим в привод диск CD-ROM и опять запустим программу на выполнение. Результаты работы программы:

Feature data length - 12

Current profile - 0x0008

Feature Code - 0x002D

Byte 4: 0x6

Feature CD TAO support

Свойство «CD Track at Once» приводом поддерживается, но текущий профиль – 0x0008, CD-ROM – не позволяет это свойство применять. Список свойств, соответствующих профилю «CD-ROM», приведен в таблице 188 «Mandatory Feature for CD-ROM», п. 5.4.8 спецификации SCSI MMC-4 ([1]).


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2016 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100