Enviar Texto a un DVR

161 views
Skip to first unread message

Wehs Vulcano

unread,
Mar 15, 2021, 7:54:40 PM3/15/21
to publice...@googlegroups.com
Estimados

Estaba revisando un la configuración de un DVR y estos tiene lo que se
conoce como Over Text. Descargue una aplicación que se llama
Packetsender y pude enviar Texto a una de las cámaras conectada al DVR,
usando protocolo TCP por el puerto 38800.

la pregunta : como hacerlo desde código VFP aun un IP de la red local
(la del DVR).  En el DVR pues ya logre configurar lo para que reciba el
texto.

¿alguna idea?

saludos

jorgeg...@gmail.com

unread,
Mar 16, 2021, 10:45:48 AM3/16/21
to Comunidad de Visual Foxpro en Español

Wehs Vulcano

unread,
Mar 23, 2021, 11:30:24 AM3/23/21
to publice...@googlegroups.com

Estimados

Probé con  Winsock y no encontré la manara que hacerlo funcionar ... al parece nunca se establecía la comunicación ya que la app quedaba colgada.

Así que me decidí experimentar en C# (es mi primera vez) , y con ejemplo de acá y de allá logre hacer funcionar tal como quería.

Tuve que instalar todo el ambiente de trabajo para poder compilar y ejecutar c sharp desde Linux pero me funciono. Ahora viene la otra parte como hacer una DLL de c# que VFP pueda consumir.

Si me pueden enviar link sobre ellos se lo agradecería.

saludos

El 16-03-21 a las 11:45, jorgeg...@gmail.com escribió:
--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/189db194-cbd2-4bec-a60d-c3ae9d25c93en%40googlegroups.com.

Edwin Duran

unread,
Mar 23, 2021, 12:44:45 PM3/23/21
to Comunidad de Visual Foxpro en Español

Wehs Vulcano

unread,
Mar 23, 2021, 4:40:24 PM3/23/21
to publice...@googlegroups.com

Me pare muy interesante ,  intente probar con mi código de c# compilado desde Linux con Visual Studio Code donde me funciona muy bien.

Luego use el mismo código en el kodnet tratando de seguir el ejemplo pero ahí me da errores.

el exe creado en linux ningún problema en correrlo en Windows.

seguiré tratando

gracias

El 23-03-21 a las 13:44, Edwin Duran escribió:

Edwin Duran

unread,
Mar 23, 2021, 8:31:38 PM3/23/21
to Comunidad de Visual Foxpro en Español
no se si esto corre en linux .NET Framework 4.0 or superior para Kodnet funcione

Wehs Vulcano

unread,
Mar 24, 2021, 9:58:15 AM3/24/21
to publice...@googlegroups.com

Estimados

Estoy intentando ejecutar este codigo de C# con kodnet , el ejemplo que trae funcionasin problema pero cuando uso codigo propio ahi ya me da problema. Este codigo me funciona bien ejecutándolo nativamente desde C#

saludos

TEXT TO m.code noshow

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

namespace SendMsg
{
    class TCPClient
    {
        static void Main()
        {
            string line;
            try
            {
                string ip = "192.168.0.10";
                IPAddress ipAd = IPAddress.Parse(ip);
                TcpClient tcpclnt = new TcpClient();
                Console.WriteLine("Connecting...");
                tcpclnt.Connect(ipAd, 8800);
                Console.WriteLine("Connected");
                /*
                Console.Write("Enter the string to be transmitted : ");
                */
                System.IO.StreamReader file = new System.IO.StreamReader("c:\test\test.txt"); 
                while((line = file.ReadLine()) != null) 
                    { 
                        System.Console.WriteLine(line); 
                        String str = line + "\n\r";
                        Stream stm = tcpclnt.GetStream();
                        ASCIIEncoding asen = new ASCIIEncoding();
                        byte[] ba = asen.GetBytes(str);
                        Console.WriteLine("Transmitting...");
                        stm.Write(ba, 0, ba.Length);
                    }
                file.Close();
                tcpclnt.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.StackTrace);
                Console.Read();
            }
        }
    }
}
ENDTEXT

LOCAL engine

* COMPILE C# CODE
Local asem, test

engine= _screen.kodnet.getStaticWrapper("jxshell.csharplanguage").construct()

m.engine.Runscript(m.code)   <<<<  --------- EL ERROR SE DA ACA (OLE IDispactch code 0 cttk1 xx: Referencia a objeto no establecida como instancia de un objeto)

asem = m.engine.getCompiledAssembly()
_Screen.kodnet.loadAssembly(m.asem)


* now you can use the type compiled
test= _screen.kodnet.getStaticWrapper("Compiled.Main").construct()
= test.Main()

El 23-03-21 a las 21:31, Edwin Duran escribió:

Dsan

unread,
Mar 24, 2021, 2:17:15 PM3/24/21
to publice...@googlegroups.com
Seria mas facil hacer una dll y la llamas desde vfp..

ZeRoberto

unread,
Mar 24, 2021, 10:16:18 PM3/24/21
to publicesvfoxpro

James Suárez

unread,
Mar 25, 2021, 10:24:14 AM3/25/21
to publice...@googlegroups.com
Discrepo con los otros compañeros, es más fácil usar kodnet que ponerte a crear una dll y llamarla.

En unos minutos te diré el motivo del error. 

James Suárez

unread,
Mar 25, 2021, 10:32:50 AM3/25/21
to publice...@googlegroups.com
Este es el problema. Antes de namespace debe ir esta porción:

image.png

Lo que pasa es que ese método RunScript siempre espera que haya un método program.main()
Prueba el cambio y ya deberá funcionar. Saludos

HernanCano

unread,
Mar 25, 2021, 2:37:41 PM3/25/21
to Comunidad de Visual Foxpro en Español
Bien, James. Gracias por compartir.

De todas formas es interesante saber que en C# funciona normal, pero en KodNet necesita algo más.

Qué maluco es no saber programar en .Net: yo sí estoy viendo algo de main() en el código que expone vulcano:

   class TCPClient
    {
        static void Main()
        {
            string line;
            try
            {

Pero bueno: mi lenguaje no es .Net. 
Chao.

Wehs Vulcano

unread,
Mar 25, 2021, 9:27:36 PM3/25/21
to publice...@googlegroups.com

Estimados

Ya casi me estaba dando por vencido, hasta cuando revise que en el bloque de TEXT ...  ENDTEXT ....  faltaba este ultimo .... y wala el codigo de C# me funciono de maravilla en VFP sin necesidad de instanciar una DLL , ni mucho menos tomarme la tarea de crear un DLL desde cero en C#  (cosa que ya me entro el entusiasmo de aprender)

Kodnet funciona de maravilla, solo hay que que crear eso si código en c# en forma de Funciones (como las veces de procedimientos)

gracias a Edwin Duran por hacerme descubrir Kodnet .... larga vida al zorro

saludos


El 25-03-21 a las 15:37, HernanCano escribió:
--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages