Лучший отвечающий
Как в Silverlight5 организовать обмен данными с внешним USB-устройством?

Вопрос
-
На net
4.5. обмен данными прекрасно работает (реализован аналогично http://www.nullify.net/Article/189), так как FileStream
имеет конструктор, принимающий указатель на файл IntPtr? <o:p></o:p>
В Silverlight5 ()
конструктора FileStream с указателем на файл нет. При попытке же
задать путь к файлу в конструкторе FileStream(String,
FileMode, FileAccess, FileShare, Int32) строкой -"\\\\.\\hid#vid_...."
- выдает ошибку "FileStream не открывает устройства Win32, такие как
логические диски и ленточные накопители. Избегайте использования
"\\.\" в пути.".27 февраля 2014 г. 4:37
Ответы
-
Добрый день.
Скучно вам не будет. Делается это так:
1. Пишите ActiveX компонент для работы с USB портом.
2. Пишете на javascript интерфейс для работы с этим компонентом.
3. Из Silverlight приложения вызываете методы javascript.
- Предложено в качестве ответа YatajgaModerator 1 марта 2014 г. 16:23
- Отменено предложение в качестве ответа kati_1976 2 марта 2014 г. 10:09
- Предложено в качестве ответа YatajgaModerator 11 марта 2014 г. 19:00
- Помечено в качестве ответа YatajgaModerator 13 марта 2014 г. 6:16
27 февраля 2014 г. 5:57Отвечающий
Все ответы
-
Добрый день.
Скучно вам не будет. Делается это так:
1. Пишите ActiveX компонент для работы с USB портом.
2. Пишете на javascript интерфейс для работы с этим компонентом.
3. Из Silverlight приложения вызываете методы javascript.
- Предложено в качестве ответа YatajgaModerator 1 марта 2014 г. 16:23
- Отменено предложение в качестве ответа kati_1976 2 марта 2014 г. 10:09
- Предложено в качестве ответа YatajgaModerator 11 марта 2014 г. 19:00
- Помечено в качестве ответа YatajgaModerator 13 марта 2014 г. 6:16
27 февраля 2014 г. 5:57Отвечающий -
Алексей, спасибо. Однако, КОМПОНЕНТ уже написан и работает (но на net 4.5!). Вызвать его методы из Silverlight-приложения невозможно из-за ограничений платформы Silverlight - из Silverlight приложения можно вызвать только написанные на Silverlight компоненты.
Вот и пришлось переписать этот компонент, сделав родителем класс Silverlight - UserControl. Но здесь то и столкнулась с еще одним ограничением Silverlight - В Silverlight5 () конструктора FileStream с указателем на файл нет. Есть конструктор с путем к файлу. Но и он не принимает - -"\\\\.\\hid#vid_....".
2 марта 2014 г. 10:23 -
Еще раз. Вы не поняли. Из Silverlight напрямую НИКАК нельзя работать с USB портом. Только так, как я описал в предыдущем посте.2 марта 2014 г. 15:51Отвечающий
-
Уважаемый пользователь, вам же уже ответили, что это не очень просто. Вам стоило сначала повнимательнее изучить ответ.
Сделаем содержимое сообщества лучше, вместе!
2 марта 2014 г. 19:47Модератор -
Алексей, спасибо. Я поняла Ваше предложение. Но, как писала ранее, КОМПОНЕНТ уже реализован! (пусть и не ActiveX). Считаю неоправданно большими затраты времени на реализацию еще одного КОМПОНЕНТА. Считаю, что задача состоит в адаптации существующего компонента к работе с Silverlight. Именно в этом и нужна помощь.
3 марта 2014 г. 8:00 -
Да не вопрос.
1. Поставляете свой компонент в виде Windows сервиса или COM объекта.
2. Пишите ActiveX компонент для работы с этим сервисом или COM объектом.
3. Пишете на javascript интерфейс для работы с этим ActiveX компонентом.
4. Из Silverlight приложения вызываете методы javascript.
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 3 марта 2014 г. 9:01
- Снята пометка об ответе kati_1976 3 марта 2014 г. 9:19
3 марта 2014 г. 8:03Отвечающий -
Алексей, спасибо. Поняла Вас. Другие варианты (кроме как использование ActiveX и javascript ) обойти ограничение конструктора FileStream в Silverlight5 можете предложить?
3 марта 2014 г. 9:19 -
Нет. Это ограничение технологии Silverlight.3 марта 2014 г. 11:02Отвечающий
-
Ок, спасибо. Буду иметь ввиду предложенные Вами варианты. Пока на них не могу остановиться - слишком дорогостоящие (ресурсоемкие). Может на другом уровне (не клиентском) что-то найду. Спасибо!
3 марта 2014 г. 12:22