Jump to content

    
Sign in to follow this  
grad100

Разработка

Recommended Posts

Советую все зе уточнить задание, а то можно вляпаться по крупному.

Мне кажется заказчик хочет не направление файла определить, а вклиниться в поток передачи данных и анализировать эти самые данные на предмет информации, которая пробегает. Простого решения не будет, как тут сказали, возможно подсунуть свой хаб в разрыв USB, который будет прозрачно качать информацию и сливать на сторону данные. Но то что это будет недешево, тоже нужно осознавать. Вручную протокол хаба на микроконтроллере не так просто сделать.

Share this post


Link to post
Share on other sites
Хотелось бы отметить что ЗАКЗЧИК хочет определять направление передачи ФАЙЛА,

а не пакета.

 

Так же хотелось бы отметить, что через контроллируемый порт могут идти самые

разные пакеты. (я подключил к порту хаб и насовал в него разнообразных устройств,

клавиатуры, COM порты еще чего нибудь.)

 

Для решения этой задачи нам надо понимать, что подразумевается под файлом.

Если файл на USB FLASH то надо отдетектировать подключение такого устройства,

сесть на протокольный уровень обмена, восстановить когда будет запрос файла

(это очень не тривиальная задача, поскольку в протоколе обмена команды чтение файла нет,

а есть только чтение секторов и когда это чтение секторов есть чтение файла, а не например чтение FAT таблицы

или чтения содержимого директории) и толко при чтении файла зажечь лампочку.

 

В связи с этим вопрос,

мы ограничиваемся в работе только с устройствами типа FLASH и HDD,

причем работающие только через стандартный драйвер MSD.

 

(Если будет подключено устройство, работающее не через стандартный

драйвер я не представляю как определить чтение именно ФАЙЛА)

 

И что ЗАКАЗЧИК подразумевает под файлом.

 

Советую все зе уточнить задание, а то можно вляпаться по крупному.

 

NickS, я отвечу на вопросы по порядку, в котором Вы спрашиваете.

1. Я хочу определять направление передачи ФАЙЛА, а не пакета.

2. Под словом Файл подразумевается любой системный информативный файл, который произвел на свет пользователь и который перемещается на внешний носитель информации. Задача не ограничивается специфическим файлом. Можно добавить, что размер файла в мегабайтах должен превышать 2 мегабайта, например, чтобы было ясно, что он не пуст.

3. "мы ограничиваемся в работе только с устройствами типа FLASH и HDD" - Если я правильно понял вопрос, то ответ - Да. Я предполагаю, что через стандартный драйвер (эту информацию я проверю и уточню). Внешнее устройство, которое получает на себя информацию имеет свой внутренний жесткий диск - какой я пока не знаю, но предполагаю, что работает через стандартный драйвер.

 

Мне кажется заказчик хочет не направление файла определить, а вклиниться в поток передачи данных и анализировать эти самые данные на предмет информации, которая пробегает. Простого решения не будет, как тут сказали, возможно подсунуть свой хаб в разрыв USB, который будет прозрачно качать информацию и сливать на сторону данные. Но то что это будет недешево, тоже нужно осознавать. Вручную протокол хаба на микроконтроллере не так просто сделать.

 

baken , я бы хотел определить именно направление ПРИ ПЕРЕСЫЛКЕ ИНФОРМАТИВНОГО ФАЙЛА, созданного в операционной системе. Мне не нужно анализировать информацию. Также мне нужно получать никакой индикации при любом другом движении пакетов. Если пакеты двигаются даже в нужном мне направлении при стыковке внешнего устройства (hdd) к компьютеру, я не должен получать сигнал, так как это не то что меня интересует.

Edited by grad100

Share this post


Link to post
Share on other sites
baken , я бы хотел определить именно направление ПРИ ПЕРЕСЫЛКЕ ИНФОРМАТИВНОГО ФАЙЛА, созданного в операционной системе. Мне не нужно анализировать информацию. Также мне нужно получать никакой индикации при любом другом движении пакетов. Если пакеты двигаются даже в нужном мне направлении при стыковке внешнего устройства (hdd) к компьютеру, я не должен получать сигнал, так как это не то что меня интересует.

Такое впечатления, что начальнику охраны поручили охранять не только движимое добро фирмы, но и файлы, созданные на рабочем месте. Причем приносить можно, а вот выносить нет.

:biggrin:

Share this post


Link to post
Share on other sites
baken , я бы хотел определить именно направление ПРИ ПЕРЕСЫЛКЕ ИНФОРМАТИВНОГО ФАЙЛА, созданного в операционной системе. Мне не нужно анализировать информацию. Также мне нужно получать никакой индикации при любом другом движении пакетов. Если пакеты двигаются даже в нужном мне направлении при стыковке внешнего устройства (hdd) к компьютеру, я не должен получать сигнал, так как это не то что меня интересует.

 

Да а как Вы определите направление движения файла при работе с флешкой. Почитайте стандарт Mass storage. Флешка общается с виндой при помощи блоков по 512 байт, разобраться что происходит на самом деле, чтение, запись или удаление, можно только если пропускать все пакеты через себя, распатронивать каждый, и смотреть какая там команда Read или Write. Но даже это не гарантирует результата, так как винда может копаться в каталоге флешки, а выглядеть это будет как запись в нее, а может винда просто сняла флаг чтения. На практике это означает выброс 32 блоков по 512 байт от винды во флешку. Никто там по одному биту не пишет. И даже по 512 не пишет. А сразу по 4К, для FAT32, а каталог может состоять из 32 секторов по 4К, и все ради одного бита. И как определить направление файлов, если не пропускать это все через себя и не анализировать каждый пакет?

Ну а если мы анализируем информацию и строим у себя копию FAT чтобы понять, что там происходит, тут до чтения самой информации шажок. Это как ракеты в Чехии. Никто нападать не собирается, но базу строит:)

Share this post


Link to post
Share on other sites

Поддерживаю baken-а, без анализа полностью потока данных, вы не получите тот результат, который описали, то что Вам предлагают сделать на МК аппаратно, то слегка парни не в теме, и т.к. выходит очень нетривиальное решение и непонятно зачем, напишите все же для чего нужна такая ерундовина со светодиодом, т.к. позможно есть более простые решения того зачем Вы это хотите.

Share this post


Link to post
Share on other sites
Такое впечатления, что начальнику охраны поручили охранять не только движимое добро фирмы, но и файлы, созданные на рабочем месте. Причем приносить можно, а вот выносить нет.

 

rtfcnf , низко берете :biggrin:

В Большом адронном коллайдере работает протонный синхротрон и протонный суперсинхротрон , создают протоны. БАК повышает энергию протонов еще в 16 раз и сталкивает их между собой 30 млн раз в секунду. Четыре главных детектора производят в секунду более чем 100 терабайт данных. Так вот, 7 тысяч сверхпроводящих магнитов направляют пучки протонов по кольцевому туннелю, и фокусируют их до толщины волоса. Далее, переход в компактный мюонный соленоид на котором ведется поиск частиц типа бозонов Хиггса. Установка содержит пять огромных цилиндрических слоев детекторов и концевые крышки. Такой детектор предназначен для поиска определенных кварков и антикварков, чтобы понять, чем обусловлено таинственное отсутствие антивещества во Вселенной.

Диски детектора регистрируют ключе­вые частицы, называемые мюонами. Вот здесь нам нужно знать, что запись при регистрации - ПРОИЗОШЛА! :smile3046:

 

Да а как Вы определите направление движения файла при работе с флешкой. Почитайте стандарт Mass storage. Флешка общается с виндой при помощи блоков по 512 байт, разобраться что происходит на самом деле, чтение, запись или удаление, можно только если пропускать все пакеты через себя, распатронивать каждый, и смотреть какая там команда Read или Write. Но даже это не гарантирует результата, так как винда может копаться в каталоге флешки, а выглядеть это будет как запись в нее, а может винда просто сняла флаг чтения. На практике это означает выброс 32 блоков по 512 байт от винды во флешку. Никто там по одному биту не пишет. И даже по 512 не пишет. А сразу по 4К, для FAT32, а каталог может состоять из 32 секторов по 4К, и все ради одного бита. И как определить направление файлов, если не пропускать это все через себя и не анализировать каждый пакет?

Ну а если мы анализируем информацию и строим у себя копию FAT чтобы понять, что там происходит, тут до чтения самой информации шажок. Это как ракеты в Чехии. Никто нападать не собирается, но базу строит:)

 

baken ,

Много технической информации... я понял, что Вы утверждаете, что мое решение это - метод анализа информации и построение структуры FAT ( "... анализируем информацию и строим у себя копию FAT..." ).

Про Чехию вы сказали сильно! :biggrin:

 

Поддерживаю baken-а, без анализа полностью потока данных, вы не получите тот результат, который описали, то что Вам предлагают сделать на МК аппаратно, то слегка парни не в теме, и т.к. выходит очень нетривиальное решение и непонятно зачем, напишите все же для чего нужна такая ерундовина со светодиодом, т.к. позможно есть более простые решения того зачем Вы это хотите.

 

MAZZI, спасибо, что высказали свое мнение. Ваш голос услышан.

По поводу, нетривиального решения - я пока еще не понял какое окончательное будет решение. Пока, только только, благодаря участникам форума, стало понятно, что вообще нужно. А про "ерундовину со светодиодом", если Вам удобно рассматривать вариант "ерундовина без светодиода", то тоже приемлемо! Лишь бы была индикация к началу работы следующего модуля, который здесь не обсуждается.

Edited by grad100

Share this post


Link to post
Share on other sites

-- далее злостный offtopic

 

grad100, расскажите с самого начала, что доступно, и что требуется.

Пока выглядит все в самом лучше случае как попытка героически восстановить информацию, халатно потерянную из-за ошибочных предположений о предмете. То есть, неквалифицированно.

Ну или как попытка "втёмную" использовать разработчиков. То есть, требуется наказание.

 

Вклинившись между коллайдерным компьютером и его флэшкой (я далек от предположения, что высоконаучная тематика всего лишь сарказм) вы все равно не узнаете, записалась ли бесценная информация на флэшку или нет. Вы узнаете только о попытке. А об этом знает и сам компьютер. Которому, кстати, совсем не трудно попытаться прочитать записанное и убедиться, что запись произошла успешно, если софт для него доступен. А сомневаться в этом нет повода.

 

 

А пока снова старый анекдот:

 

Как-то Вождь всех народов товарищ Сталин смотрел очередной кинофильм перед выпуском его в массы. После просмотра Сталин раскурил свою трубку, попыхтел и, наконец, изрек:

– А что это у главного злодея усы, как у товарища Сталина? Это что, заговор? Товарищ Берия, расстрелять актера, гримера, сценариста и режиссера.

– Есть!

Насмерть перепуганный режиссер:

– А может быть, мы ему просто усы сбреем?

– …Или так.

Share this post


Link to post
Share on other sites

grad100 непонятно зачем такие пляски с бубном ?

в Win вроде бы имеется возможность установить свой драйвер-фильтр на доступ/пересылку файлов или изменение папки - определяете тип диска-назначения - и не нужно никаких анализаторов потока USB, FAT и прочего геморроя.

что-то похожее есть у Sysinternals :

http://84.45.57.224/filemon-source-code_topic8215.html

http://forum.sysinternals.com/topic8038_page1.html

http://msdn.microsoft.com/en-us/library/Aa364417

Edited by ukpyr

Share this post


Link to post
Share on other sites
grad100 непонятно зачем такие пляски с бубном ?

в Win вроде бы имеется возможность установить свой драйвер-фильтр на доступ/пересылку файлов или изменение папки - определяете тип диска-назначения - и не нужно никаких анализаторов потока USB, FAT и прочего геморроя.

что-то похожее есть у Sysinternals :

http://84.45.57.224/filemon-source-code_topic8215.html

http://forum.sysinternals.com/topic8038_page1.html

http://msdn.microsoft.com/en-us/library/Aa364417

 

Потому что задача поставлена (моим заказчиком) таким образом, чтобы решение было не через операционную систему и чтобы оно вообще от нее независило.

Share this post


Link to post
Share on other sites
Guest @Ark
Потому что задача поставлена (моим заказчиком) таким образом, чтобы решение было не через операционную систему и чтобы оно вообще от нее независило.

Задача поставлена заказчиком неправильно, точнее - непрофессионально... Постановка задачи - это совместное "творчество" заказчика и разработчика. Чтобы этот процесс, в итоге, был успешным и технически реализуемым, оба должны быть профессионалами, каждый в своей области... В вашем случае, этого не заметно с обеих сторон... Так что, извините, но обсуждать тут нечего...

Share this post


Link to post
Share on other sites
Задача поставлена заказчиком неправильно, точнее - непрофессионально... Постановка задачи - это совместное "творчество" заказчика и разработчика. Чтобы этот процесс, в итоге, был успешным и технически реализуемым, оба должны быть профессионалами, каждый в своей области... В вашем случае, этого не заметно с обеих сторон... Так что, извините, но обсуждать тут нечего...

 

Благодаря именно этому обсуждению на этом форуме у меня уже сформировались несколько конкретных направлений. Если Вам неинтересно, не беда , потому что есть другие участники беседы, которые предложили свои варианты, некоторые свои услуги, а многие ответили мне на имейл. Процесс идет и я благодарен всем кто в нем учавствует.

Edited by grad100

Share this post


Link to post
Share on other sites
Guest @Ark
Благодаря именно этому обсуждению на этом форуме у меня уже сформировались несколько конкретных направлений...

Извините, если мое высказывание показалось обидным... Но постановка задачи - это очень серьезная работа... Может быть 90%... как минимум 50% успеха...Хотите получить хороший, достойный и, самое главное, технически и финансово реализуемый результат - обращайтесь к профессионалам, либо становитесть им сами... ;)

Share this post


Link to post
Share on other sites
Извините, если мое высказывание показалось обидным... Но постановка задачи - это очень серьезная работа... Может быть 90%... как минимум 50% успеха...Хотите получить хороший, достойный и, самое главное, технически и финансово реализуемый результат - обращайтесь к профессионалам, либо становитесть им сами... ;)

Ваше высказывание не показалось мне обидным, я понял что вы привыкли работать в условиях, когда Вам "переводят" на технический язык уже сформированную задачу. А у нас это лишь только следующий этап.

По поводу профессионализма - я считаю, что это профессиональный форум и потому сделал запрос именно сюда и не ошибся. То что на первом этапе не все ясно, ничего страшного - "причешим".

Я професионал в другой сфере и нет необходимости изучать новое направление только лишь для того, чтобы объяснить условия поставленной задачи. Профессионалы не определяют условия задачи, а выполняют ее.

Edited by grad100

Share this post


Link to post
Share on other sites
Guest @Ark
... я понял что вы привыкли работать в условиях, когда Вам "переводят" на технический язык уже сформированную задачу... Профессионалы не определяют условия задачи, а выполняют ее.

Не правильно поняли. Профессионалы сначала пытаются понять смысл самой задачи - зачем все это делается, почему и для чего. Для каких целей. А потом уже вырабатывают решение ... Сейчас же фактически Вы предлагаете следующее: зачем - это не ваше дело, а как - мы уже без вас решили. Нужно только реализовать... Именно такой подход к разработке и является не профессиональным.

Share this post


Link to post
Share on other sites
..фактически Вы предлагаете следующее: зачем - это не ваше дело, а как - мы уже без вас решили. Нужно только реализовать... Именно такой подход к разработке и является не профессиональным.

 

..Мистер @Ark, не вдаваясь в конкретную тему, но, по вашему посту, рискну с вами не согласиться, слегка.

 

..Я потому только отношу себя к профессионалам, что деньги получаю за разработку.

С этой точки зрения, «зачем и для каких целей», меня не волнует вообще, ну, если, это не явно наркотики и торговля оружием.. :rolleyes:

Мое дело понять, что же, собственно, надо и в рамках отпущенных средств и своего умения это реализовать.

 

..Другое дело, когда заказчик настаивает, «как». Это всегда занижает горизонт, однако, воздержавшись от вопроса «если ты такой умный, почему бы тебе не сделать самому», если вариант заказчика технически возможен, я соглашаюсь сделать, конечно, если устраивает сумма и сроки.

 

..Например, «слеплю на рассыпухе» драйвер верхнего ключа, когда заказчик настаивает на дешевизне Это будет работать. А если окажется не технологично, при массовом изготовлении, деталюшек много – такое прозрение заказчика уже не ко мне..

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this