Информация о проекте:
- Raspberry Pi 3B
- RPi Cam (конкретно ArduCam)
- Arduino UNO (подключен к RPiчерез USB-кабель = / dev / ttyUSB0)
- Встроенное приложение Adobe Flash (ActionScript 2.0)
Цель: Подключенный Arduino должен отправить последовательные данные наRPi, которую может получить работающая веб-страница (flash app).Я использую (xml) SOCKET для подключения / прослушивания на стороне приложения Flash.
У меня Raspberry Pi 3B, с последней установленной (на момент написания) версией Raspbian.У меня также установлены Apache, PHP, MyPHPAdmin и MySQL.
Я также настроил RPi для загрузки Chromium в полноэкранном режиме при загрузке, а также для загрузки определенной локально размещенной веб-страницы.
На этой веб-странице есть встроенное Flash-приложение, которое использует подключенную RPi-камеру (веб-камеру) ... и отображает «канал» камеры на веб-странице.
Таким образом, веб-страница размещена локально в моей установке LAMP..
/ var / www / html / index.html (.swf)
(127.0.0.1 или localhost)
Процесс:
Я включаю мой RPi .. (Я вижу, что он загружается и загружает Chromium / URL по умолчанию (localhost)) .. Это по очереди включает мой Arduino .. (подключен через USB [ttyUSB0])
Iиспользовать мой ПК для замазки в моем RPi .. и я запускаю / запускаю SOCAT:
socat -d -d -d -d -x TCP-LISTEN:7777,reuseaddr,fork FILE:/dev/ttyUSB0,b9600,raw
На этом этапе мое Flash-приложение должно получать последовательные данные, отправляемые с Arduino, .. но оно никогда не подключается.. просто тайм-аут, и в конце концов я вывести «не подключен» к экрану при ошибке
объект сокета nevон устанавливает соединение.
Я протестировал ОБА установку / настройку SOCAT и сторону Arduino ... и они оба работают как положено.
* Я установил Putty на свой RPi .. и сделалдва разных соединения (одно RAW и подключенное к одному и тому же порту 7777), и сразу увидели дату, отправляемую из Arduino на экране) и другое соединение с TTYUSB0 (последовательный тип соединения) и увидели те же данные, отправленные из Arduino,Таким образом, это подтверждает, что сторона Arduino верна / работает правильно ... и установка / конфигурация RPi / SOCAT верна и работает правильно ... по крайней мере, до уровня Arduino >> RPi вещей ... но я не могуполучить его на последнем слое приложения Flash.
Я очень слабо разбираюсь в политике безопасности Flash для соединений с сокетами.
По умолчанию пытаюсь получить это (мастер?)файл / политика на порте 843?
Я пытался загрузить файл .swf локально, но он никогда не работал?(Я также перепробовал много вариантов)
Security.allowDomain("*");
//Cross domain security policy load
//Security.loadPolicyFile("xmlsocket://" + "127.0.0.1" + ":8080");
//Security.loadPolicyFile("xmlsocket://127.0.0.1:7777");
//System.security.loadPolicyFile("xmlsocket://localhost:4482");
System.security.loadPolicyFile("http://localhost/crossdomain.xml");
//Security.loadPolicyFile("crossdomain.xml");
var server = new XMLSocket();
//server.connect("127.0.0.1", 7777);
server.connect(null, 7777);
//server.connect('localhost', 7777);
server.onConnect = function(result){
if(result){
//connected
state_txt.text = "connected";
}else{
//not connected
state_txt.text = "not connected";
}
}
server.onClose = function(){
//disconnected
state_txt.text = "connection closed";
}
server.onXML = function(data){
//do whatever
incomingData_txt.text += data;
//close
//server.close();
}
var video_obj:Video;
var cam:Camera = Camera.get();
video_obj.attachVideo(cam);
cam.onStatus = function(infoObj:Object) {
switch (infoObj.code) {
case 'Camera.Muted' :
trace("Camera access is denied");
break;
case 'Camera.Unmuted' :
trace("Camera access granted");
//start it up
//setTimeout(startUp,1000);
break;
}
}
Что я могу сделать, чтобы каким-то образом загрузить этот мусор «политики»?Это локальный хост ... так что, насколько я знаю, нет никакой политики безопасности порта 843?
- Я добавил свой .swf и путь к файлу (и многие варианты) в настройки глобальной безопасностистраница на сайте Macromedia .. (ничего не изменилось)
Я пытался использовать Security.loadPolicyFile () ... и, похоже, ничего не изменилось ..
СделайтеВозможно, мне нужно попытаться установить «самоподписанный сертификат» на моей установке LAMP на моем RPi?и, возможно, использовать страницу как HTTPS?
** Для ясности ... хотя RPI имеет доступ к Интернету прямо сейчас во время настройки, в конечном проекте НЕ будет ни одного.
Это отдельный проект (арт-проект, проп ... что угодно) ..
И безопасность НИКАКОГО ЗАБОТЫ! .. Так что широко открытые разрешения хороши на 10000%.
Что бы ни получалось3 ключевых элемента, обеспечивающих правильное общение, - это нормально.
Если для справки требуется какая-либо информация / статистика, пожалуйста, спросите.Я опубликую то, что могу.
Резюме:
Получите мой Adobe Flash XMLSocket.connect () для окончательного подключения к поступающим данным RPi / SOCAT. Я считаю, что это БезопасностьПолитика связана ...
Наконец ... где я могу посмотреть какие-то "логи" по этому поводу?Chromium >> Console> Verbose ничего не показывал?
Должен быть какой-то журнал (где-то) запроса политики и сбой / ошибка .... верно?