Программа для записи на серию USB-дисков

Сергей20 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
09.02.2007

Операционная система: FreeBSD 6.

Язык программирования: Perl

Название программы: usbwriter

Что необходимо:

1. Одновременная запись ISO-образа на USB-диски.

2. Проверка записи.

3. Запись статистики в лог-файл.

Программе передаются следующие параметры:

1. ключ -f – полный путь и имя файла-образа

2. ключ -n – необходимое количество записей

3. ключ -s – необходимый размер носителя (m – мегабайт , g – гигабайт)

4. ключ –с – 5-ти разрядное 16-ричное число (magic number)

# usbwriter –f /usr/home/temp-microsoft-present.20070209.iso –n 200 –s 512m –с 00AB9

В процессе работы: программа определяет число доступных USB-портов и обозначает их жёлтым цветом, ожидает вставки носителя, определяет его уникальный номер и размер, и сверяет с необходимым размером носителя, производит запись и проверку.

Программа записывает в лог-файл следующие параметры (через знак табуляции):

1. Временная метка после извлечения носителя : YYYYMMDDHHMMSS

2. Magic number: 00AB9

3. Уникальный номер носителя : SD512_21F09FBD110807

4. Имя образа без пути к нему : temp-microsoft-present.20070209.iso

5. Время записи в секундах : 256

6. Время проверки в секундах : 48

7. Порядковый номер носителя : 22222 (от 1 до количества необходимых записей)

8. Результат записи: success (success или fail)

Например:

…………………………

20070209141122 00AB9 SD512_21F09FBD110807 temp-microsoft-present.20070209.iso 256 48 22222 success

20070209141130 00AB9 SD512_21F09FBD110809 temp-microsoft-present.20070209.iso 256 48 22223 success

20070209141130 00AB9 SD512_21F09FBD1108A5 temp-microsoft-present.20070209.iso 256 30 22224 fail

20070209141130 00AB9 SD512_21F09FBD110900 temp-microsoft-present.20070209.iso 256 48 22224 success

20070209141130 00AB9 SD512_21F20FBD110901 temp-microsoft-present.20070209.iso 256 48 22225 success

…………………………

Все операции (ожидание, проверка носителя на совместимость с образом, запись, проверка записи) должны сопровождаться отображением на экране в псевдографике (в виде нумерованых полосок, изменяющих цвет в зависимости от состояния USB-порта). Номер полоски должен соответствовать номеру USB-порта (1-й порт = 1, 2-й порт = 2 и т.д.).

Цвета:

1. Ожидание – жёлтый

2. Проверка - мигающий бело-зелёный

3. Запись – зелёный

4. Проверка записи – синий

5. Готовность для извлечения - мигающий бело-синий

6. Ошибка (запись, проверка) - мигающий бело-красный

7. Неработающие порты - серый

8. Несоответствие носителя – красный.

Также программа должна прочитать последнюю строчку лог-файла, для того, чтобы определить, сколько записей ещё осталось, если имя образа совпадает с последним в лог-файле. Если нет – должна начать новую серию.

Программа также должна выводить на экран:

1. имя образа

2. необходимое количество записей (required) : 5 знаков (1-99999)

3. количество успешных записей (successfull): 5 знаков (0-99999)

4. количество записей, которое необходимо сделать (left): 5 знаков (1-99999)

5. Индикатор записи серии в виде 3-х-значного числа (1-100%) и полоски (белого и зелёного цвета).

После нажатия F10 система прекращает запись и другие операции не дожидаясь окончания записи и других операций на текущие носители.