Приложение Adobe Flash для чтения из экземпляра SOCAT на Raspberry Pi?

Я не понимаю, в чем причина моей проблемы, поскольку я считаю, что все настроено правильно, но мое приложение Flash ПО-ПРЕЖНЕМУ не может подключиться к «SOCAT» для чтения последовательных данных incomigng с подключенного Arduino.

Резюме проекта:

Приложение Adobe Flash

  • Написано на ActionScript 2 (AS2.0)
  • В нем есть объект камеры (но, похоже, он работает нормально и не является фокусом здесь)

RPi 3B, ред. 2

  • LAMP установлен (также Apache, MySQL, PHP и MyPHPAdmin)
  • Запуск экземпляра SOCAT при загрузке с помощью этой строки:

    socat -d -d -d -d -x TCP-LISTEN:7777,reuseaddr,fork ФАЙЛ:/dev/ttyUSB0,b9600,raw

Arduino подключен к RPi через USB-кабель (то есть: ttyUSB0 обозначается как)

  • Arduino — запускает временный скетч, который отправляет последовательные данные каждую секунду или около того (строка: «данные» отправляется снова и снова)

Я проверил, что ОБА входящие данные Arduino отправляются (через Arduino IDE для проверки самой платы, а также) с использованием экземпляра PUTTY на RPI для установления соединения и проверки данных, отправляемых по линии ttyUSB0. а также получено на порт 127.0.0.1:7777)

Ардуино:

Arduino - настройки PUTTY

СОКАТ/RPi:

SOCAT - настройки PUTTY

Когда я открываю любое из этих окон... я вижу:

данные
данные
данные
данные

Это то, что отправляет Arduino.

Так что на данный момент..

У меня данные отправляются правильно. У меня данные принимаются корректно. (как минимум до уровня SOCAT)

Однако .. Я НЕ могу (на всю жизнь) подключить мое приложение Adobe Flash к этому экземпляру SOCAT и прочитать эти входящие данные с USB-подключенного Arduino !!!

Я начал читать об этом ... и прочитал о политике безопасности, которая необходима для того, чтобы Flash Player разрешал это соединение.

Итак, после некоторого возни, я, наконец, получил следующую настройку и работал правильно (по крайней мере, я верю, но если бы все было идеально, меня бы здесь не было .. верно?) :)

Я установил SSL с самозаверяющим сертификатом. Я (в конце концов) настроил сервер политики безопасности, используя мод Apache (предназначенный именно для этого сценария)

И когда я запускаю эту строку:

perl -e 'printf "<policy-file-request/>%c",0' | nc 127.0.01 843

Я получаю ссылку на политику, возвращенную мне:

<?xml version='1.0'?>
<!DOCTYPE cross-domain-policy SYSTEM
'http://www.adobe.com/xml/dtds/cross-domain-policy.dtd'>

<cross-domain-policy>
        <site-control permitted-cross-domain-policies='all'/>
        <allow-access-from domain='*' secure='false'/>
        <allow-http-request-headers-from domain='*' headers='*' secure='false'/>
</cross-domain-policy>

Я даже загрузил свой пользовательский файл (который на самом деле является той же конфигурацией, но хотел посмотреть, разрешает ли «основной» файл пользовательские политики, и это было/есть)

Может быть, проблема во Flash/AS? Вот как я пытаюсь установить соединение XMLSocket с работающим экземпляром SOCAT:

import flash.system.Security;

Security.allowDomain("*");
Security.allowInsecureDomain("127.0.0.1");

Security.loadPolicyFile("xmlsocket://127.0.0.1:843");


//instantiate instance
var rpi_usb0_Listener = new XMLSocket();

//create listeners:
//on connect
rpi_usb0_Listener.onConnect = function(result){
    if(result){
        //connected
        state_txt.text = "on-connect success";
    }else{
        //not connected
        state_txt.text = "on-connect failed";
    }
}

//on close
rpi_usb0_Listener.onClose = function(){
    //disconnected
    state_txt.text = "connection closed";
}

//on incoming date recieved
rpi_usb0_Listener.onXML = function(data){
    //do whatever   
    incomingData_txt.text += data;

    //close
    //rpi_usb0_Listener.close();
}


//make connection
if(!rpi_usb0_Listener.connect(null, 7777)){
    state_txt.text = "connection true";
}else{
    state_txt.text = "connection false";
}

Независимо от того, что я пытался .. я никогда не могу подключиться.

Я каждый раз получаю сообщение "ошибка при подключении" на экране.. (после 15-секундного тайм-аута)

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

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

Это моя линия/установка SOCAT? Это не позволяет подключиться из моего приложения Flash?


person whispers    schedule 03.03.2019    source источник