Comunidad de diseño web y desarrollo en internet online

Puerto Paralelo o Serial desde Flash

Citar            
MensajeEscrito el 04 Ago 2006 09:50 pm
Es posible controlar puertos desde el Flash... interactuando con PHP o Java...?
Alguien sabe como...?

Estaré Agradecido :? :? :?

Por Devil_Herles

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Ago 2006 06:48 pm
se que con php no, no conozco java como para juzgar, pero si se que MDM Zinc tiene posibilidad de comunicación con un puerto COM.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 09 Ago 2006 03:14 am
DEFINITIVAMENTE NO! PERO HAY ALTERNATIVAS.

Tendrías que programar en algún lenguaje como C# o VB, así se hace y se puede hacer, sin embargo creeme que el flash sólo ayudará a hacer más bonita la interfaz.

Asi que lo dejo claro, es posible interactuar Flash con lenguajes como C# o VB, pero son esos lenguajes los que pueden interacuar con un puerto COM.

Y más claro aún, olvidalo si pensabas manpular un puerto COM remotamente a traves de una interfaz flash.

adjunto un articulo e adobe, de como programar un slideshow en flash embedido en VB usando el control OCX de flash.
http://www.adobe.com/devnet/flashslideshow/articles/part1.html

Además yo hice una aplicación hace un par de años atras que basicamente escuchaba comandos fscommand desde flash, sin embargo a raiz de tu post, decidí probarlo y me encontre con algunas limitaciones de seguridad y otros introducidos con flash player 8.

Espero que te sirva el articulo, y si tienes información de como manipular el puerto COM a traves de VB, sería interesante que la publicaras.

Saludos.

Por AllSolutions

5 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 09 Ago 2006 03:46 am
Esto dice la ayuda de MDM Zinc, no sabría decirte acerca de screenweaver, debo probarlo.

mdm.COMPort
--------------------------------------------------------------------------------
Availability
Zinc 2.5 (Windows)


ActionScript Class Name
mdm.COMPort

Method Summary for the COMPort Class

The following table lists methods of the COMPort class

COMPort.close()
Closes the comport.

COMPort.open()
This command opens the serial port for communication.

COMPort.send()
Will send a string through the comport.

COMPort.sendFileContents()
Will send the contents of the specified file.

COMPort.sendHEXData()
Will send the specified HEX data via the comport.

COMPort.setBreak()
Suspends transmission and places the line in a break state.

COMPort.setDTR()
Sets the DTR state to high (on) after the comport has opened.

COMPort.setEcho()
Enables echo.

COMPort.setRTS()
Sets the RTS state to high (on) after the comport has opened.

COMPort.setXON()
Causes transmission to act as if XON has been received.

COMPort.setXOFF()
Causes transmission to act as if XOFF has been received.

COMPort.unsetBreak()
Restores transmission and places the line in a nonbreak.

COMPort.unsetDTR()
Unsets the DTR state to low (off) after the comport has opened.

COMPort.unsetRTS()
Unsets the RTS state to low (off) after the comport has opened.

COMPort.useLinemode()
When enabled, the component will fire the receive event only when the LineEnd characters are received

COMPort.useThreshold()
When enabled, the component will fire the receive event only if the certain amount of bytes (or more) is arrived in the Rx buffer.

Property Summary for the COMPort Class

The following table lists properties of the COMPort class


COMPort.initialDTR
The variable contains Initialdtrstate (DTR)

COMPort.initialRTS
The variable contains Initialdtrstate (RTS)

COMPort.ports
The variable contains delimited list by comma "," containing all the com ports that are found on the system.


Event Summary for the COMPort Class

The following table lists events of the COMPort class

onCOMPortCTSChanged
Executes when the CTS line changes status.

onCOMPortDSRChanged
Executes when the DSR line changes status.

onCOMPortData
Executes when COM Port receives Incoming Data.

onCOMPortHEXData
Executes when COM Port receives Incoming Hex Data.

onCOMPortDataSent
Executes when sending has completed and the buffers emptied.

onCOMPortError
Executes when an error occurs.

onCOMPortSendProgress
Returns the number of bytes sent. Intended for large data.

Yo personalmente no tengo ni idea de como se hace ni para que sirve cada cosa, si sabes algo sobre comunicación con puertos COM, pues tal vez entiendas las posibilidades que tienes.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 11 Oct 2006 04:08 pm
hola a todos
yo bajè el demo d zinc pero no c como hacer para usar los comandos en flash.
Tambien he querido hacer proyectos d programacion recogiendo datos del puerto y mostrarlos en flash...pero hasta ahora no he encontrado alguna solucion mas que usar sockets n c++ y flash.
Aun asi ..si alguien sabe como instalar el mdm en flash para poder usar los comandos les agradeceria mucho ke conpartan su informacion en este foro.gracias

Por kncun

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Mar 2007 07:22 am
Yo he podido acceder al puerto paralelo con Flash de dos formas:
    1- He creado una librería en Perl que accede al puerto paralelo. En este caso, desde Flash accedo a archivos CGI y puedo controlar dispositivos electrónicos de forma remota. Es necesario instalar Apache en el servidor en el que se encuentren las librerías CGI. Explico como hacerlo en esta web www.sebyc.com/crr
    2- Otra forma es acceder en modo local al puerto paralelo, utilizando como complemento un programa que se llama SWFKit. Con él se puede conectar código hecho en ActionScript con el puerto paralelo.Está descrito aquí: http://www.swfkit.com/forum/thread_1_431.html
    Yo lo he probado y funciona.
[/list]

Por J.C.M.Castillo

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Mar 2007 02:54 pm
Instalate la extension esta:

http://www.multidmedia.com/support/developers/exchange/?action=show&id=66

de zinc para flash, y tendrás la ayuda de zinc en flash.
Zinc añade unos parametros a flash que son sólo visibles una vez compilas el swf y lo pasa a exe, mediante Zinc. Si metes codigo de zinc en tu flash y no lo compilas no verás cambio alguno.

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 18 Mar 2007 07:36 pm
lo puedes hacer con screenswift o con MDM Zinc, lo que necesitas en comunicarte con una DLL
existe una dll llamada inpout.dll esta tiene 2 funciones OUT e IN, lo que nos permite comunicar al puerto paralelo.
es facil.

Por eveevans

Claber

450 de clabLevel

3 tutoriales

 

Nicaragua

firefox
Citar            
MensajeEscrito el 21 Mar 2007 03:26 am
Sres. muy interesante, por la duda que tengo con elcomentario ultimo es si esta librería lee el puerto paralelo o el serial o cualquiera de estos? gracias..

Por chevodiaz

0 de clabLevel



Genero:Masculino  

Peru

msie
Citar            
MensajeEscrito el 21 Mar 2007 06:19 am
SI, Lee (in) y envia (out) señales al puerto paralelo .
si solo al LPT no al serial

Por eveevans

Claber

450 de clabLevel

3 tutoriales

 

Nicaragua

firefox
Citar            
MensajeEscrito el 09 Nov 2007 02:20 am
Hola
Alguien sabe como se usa esta libreria en Flash o con MDM Zinc, la he usado con java, pero la verdad no tengo ni idea de como usarla en flash.

Gracias de antemano.

Por jahegima

1 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 09 Nov 2007 03:43 pm
solo debes cargar la libreria con MDM para crear tu propia extencion,
luego con la llamas con Flash con las funciones del MDM
m..... hare un pequeño tutorial de esto, denme 2 dias

Por eveevans

Claber

450 de clabLevel

3 tutoriales

 

Nicaragua

firefox
Citar            
MensajeEscrito el 19 Feb 2009 03:57 am
Para la parte de puerto paralelo utilice un dll que se llama inpout32.dll con c#, es un ejemplo rápido pero lee un dato desde internet y lo manda al puerto paralelo, verifica cada cierto tiempo.

Código :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Runtime.InteropServices;
namespace WindowsApplication2
{
    public partial class Form1 : Form
    {
        [DllImport("inpout32.dll", EntryPoint = "Out32")]
        public static extern void Output(int adress, int value);
        [DllImport("inpout32.dll", EntryPoint = "Inp32")]
        public static extern int Input(int adress);
        public int tmintervalo;
        public int intervalo;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            timer2.Enabled = true;
            //Output(0x378, tmintervalo);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {

            string strinp = Input(0x378).ToString();
            string binaryText = Convert.ToString(Convert.ToInt32(strinp), 2);
            label1.Text = strinp + ", " + binaryText;


        }

        

  
        private void button2_Click(object sender, EventArgs e)
        {

        }
        private string LeerPagina(string pagina) {
            HttpWebRequest webRequest;
            string cadena = "";
            webRequest = (HttpWebRequest)WebRequest.Create(pagina);
            webRequest.Timeout = 20000;
            webRequest.KeepAlive = false;
            webRequest.Method = "GET";
            webRequest.Headers.Add("Cache-Control", "no-cache");
            webRequest.Headers.Add("Pragma", "no-cache");
            webRequest.Credentials = CredentialCache.DefaultCredentials;
            
            using (HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse())
            {
                Stream rs = response.GetResponseStream();

                StreamReader reader = new StreamReader(rs);
                cadena = reader.ReadToEnd();
                response.Close();
                webRequest.Abort();

            }
            return cadena;
        }
        private void timer2_Tick(object sender, EventArgs e)
        {
            string strCadena = LeerPagina("http://127.0.0.1:4001/salida.php");
            strCadena = Regex.Replace(strCadena, "[^0-9]*", "", RegexOptions.IgnoreCase);
            strCadena = strCadena.Trim();

            Console.WriteLine(strCadena);
            int binNum = Convert.ToInt32(strCadena);
            Output(0x378, binNum);
        }
        

    }
}



EN EL CASO ANTERIOR leo el dato que mando al puerto paralelo desde internet, en caso de que sea de flash necesito comunicar flash con c#, en un post anterior publique esto:

jacobocho escribió:

Hola, 3 años tarde pero bueno, siempre es útil saber como integrar proyectos de Flash con c# .net ya que no siempre se tiene disponible un webserver o bien si queremos que flash pueda guardar archivos, base de datos etc. solo hay que integrarlo a un WINFORM y el se encargará de todo esto (ejemplo un elearning que se distribuye por CD)

Crea un nuevo proyecto en VStudio.NET, depués donde esta la barra de herramientas (textbox, Radiobutton, etc), selecciona "Add/Remove Items", después selecciona "COM Components", buscas "Shockwave Flash Object".

Español - en el "Cuadro de Herramientas" haz click derecho y haz click en "Agregar o Quitar Elementos". Luego de eso ve a la solapa que dice Objetos COM y selecciona el que dice Shockwave Flash Object, una ves que se importe lo arrastras a tu forma de c#

Aparecera el "Shockwave Flash object" en tu barra de herramientas y arrastralo a tu WinForm como cualquier otro componente

NOTA: En las versiones nuevas de visualStudio puede haber un problema al hacer este proceso, "The type or namespace name 'AxShockwaveFlashObjects' could not be
found (are you missing a using directive or an assembly reference?)", creo que la solucion está en copiar DLL anteriores en la carpeta "obj\Debug" del proyecto (Interop.ShockwaveFlashObjects.dll y AxInterop.ShockwaveFlashObjects.dll, así como en la de "bin\Debug" reemplazando la que generó el pryecto al intentar hacer los pasos anteriores

si tu componente se llama "axShockwaveFlash1" en el evento Load del form ponemos lo siguiente:
EN C#

Código :


private void Form1_Load(object sender, EventArgs e)
        {
            this.axShockwaveFlash1.Movie = "Path_Completo_de_tu_swf.swf";
            this.axShockwaveFlash1.FSCommand += new AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEventHandler(this.axShockwaveFlash1_FSCommand);
        }

//Agregamos el evento que se ejecuta en el FSCommand
//Este evento se dispara cada que hacemos Fscommand
private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
        {
            switch (e.command)
            {
                    case "accion1:"
                        MessageBox.Show("Argumento: " + e.args);
                         //ACCIONES A EJECUTAR CON C#
                        break;
            }

     }



EN CASO DE FLASH

Código :


on (release) {

      fscommand("accion1","Cualquier texto a enviar");
}


--

Código :


on (release) {

      fscommand("enviardatoaparalelo","101101011111");
}


Espero que le sirva a alguien.


SIMULADOR DE PUERTO PARALELO:
http://r-luis.xbot.es/puerto/port02.html

Saludos.

Por jacobocho

6 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.