Páginas (2): 1 2   
tincho   07-12-2022, 13:14
#1
Hola Amigos.
Hace tiempo que siento curiosidad por las opciones de comunicación disponibles en gambas, y pensando en como establecer un canal de comunicación entre dos programas gambas para lo del tablero de puntaje de TercoIDE no se me ocurre como hacerlo de la forma mas eficiente.

En definitiva, como un programa gambas puede "decir" a otro cierra contacto 4 o "dime" temperatura 1 etc. etc. 

Desde el punto de vista de las comunicaciones hay dos grupos:
  • Gambas<PROTOCOLO>Gambas
  • Gambas<PROTOCOLO>OTRA-COSA
¿Que protocolos se pueden usar? y... ¿Hay ejemplos de estos?

1 Saludo.
Shordi   07-12-2022, 14:17
#2
Ni idea. Fuera de ssh, nfs, html o vnc, que conectan con servidores o PCs nunca he utilizado otro. Para otros programas dentro de la misma máquina tienes dBus, pero no todos los programas son acordes con él.

Saludos

No podemos regresar
vuott   07-12-2022, 15:55
#3
Hace algún tiempo yo hice algunos Confused estudios sobre este tema.

https://www.gambas-it.org/wiki/index.php...mma_Gambas

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
tincho   07-12-2022, 17:45
#4
(07-12-2022, 15:55)vuott escribió: Hace algún tiempo yo hice algunos Confused estudios sobre este tema.

Perfecto, lo estoy estudiando ahora mismo.

Ok, en este se puede enviar texto de un programa a otro.
[Imagen: WaJLLd4.png]
¿Es posible establecer una comunicación bidireccional?
Última modificación: 07-12-2022, 18:05 por tincho.

1 Saludo.
jsbsan   07-12-2022, 19:44
#5
Tincho:
Cita:En definitiva, como un programa gambas puede "decir" a otro cierra contacto 4 o "dime" temperatura 1 etc. etc. 

Puedes usar socket, gambas trae un ejemplo de esto.
Yo hice hace tiempo un programa de chat que funcionaba con socket...

Tambien se puede usar el protocolo de mqtt (mosquito), mirate este enlace:
https://gambas-es.org/showthread.php?tid...light=mqtt

Saludos

Julio

Nota:
El programa chat, tanto para clientes como para el servidor los puedes encontrar en:
https://github.com/jsbsan/Ejemplos-del-C...LETOS/CHAT
Última modificación: 07-12-2022, 19:49 por jsbsan.
tincho   07-12-2022, 21:39
#6
(07-12-2022, 19:44)jsbsan escribió: Puedes usar socket, gambas trae un ejemplo de esto.

Gracias, estoy empezando a leer sobre este tema parece que tiene muchas posibilidades y aplicaciones.

(07-12-2022, 19:44)jsbsan escribió: Yo hice hace tiempo un programa de chat que funcionaba con socket...

Gracias por compartir este código, seguramente me venga muy bien para estudiar como funciona socket.
pd: Intente abrirlo pero no es posible convertirlo a la versión 3 (es gambas2), intentare echar un vistazo de todas maneras.
Última modificación: 07-12-2022, 22:29 por tincho.

1 Saludo.
tincho   07-12-2022, 23:17
#7
(07-12-2022, 19:44)jsbsan escribió: Tambien se puede usar el protocolo de mqtt (mosquito), mirate este enlace:

Si recuerdo que conversamos de este tema, pero yo por lo menos no seguí indagando ¿Tu si?.
El usuario Silex propuso un código pero no intente usarlo.
Código:
' Gambas module file
Private proceso As Process 
 
Public Sub Main()
  Print "Nos suscribimos al Topic Pruebagambas"
  proceso = Shell "mosquitto_sub -h 'test.mosquitto.org' -t 'Pruebagambas'" For Read As "recepcion"
End
 
Public Sub recepcion_read() 
  Dim datos As String
  datos = Read #Last, Lof(Last) 
  Print "Recepción:" & datos
End
Luego en la pagina de MQTT hay un esquema del protocolo.
https://mqtt.org/
[Imagen: mqtt-publish-subscribe.png]
De wikipedia en inglés he traducido al castellano pues no existe.

Visión general
El protocolo MQTT define dos tipos de entidades de red: un corredor de mensajes y una serie de clientes. Un broker MQTT es un servidor que recibe todos los mensajes de los clientes y, a continuación, enruta los mensajes a los clientes de destino apropiados. Un cliente MQTT es cualquier dispositivo (desde un microcontrolador hasta un servidor completo) que ejecuta una biblioteca MQTT y se conecta a un agente MQTT a través de una red.

La información se organiza en una jerarquía de temas. Cuando un editor tiene un nuevo dato que distribuir, envía un mensaje de control con los datos al broker conectado. A continuación, el broker distribuye la información a los clientes que se hayan suscrito a ese tema. El editor no necesita tener ningún dato sobre el número o la ubicación de los suscriptores, y éstos, a su vez, no tienen que estar configurados con ningún dato sobre los editores.

Si un broker recibe un mensaje sobre un tema para el que no hay suscriptores actuales, el broker descarta el mensaje a menos que el publicador del mensaje lo haya designado como mensaje retenido. Un mensaje retenido es un mensaje MQTT normal con el indicador retenido en true. El agente almacena el último mensaje retenido y la QoS correspondiente para el tema seleccionado. Cada cliente que se suscribe a un patrón de tema que coincide con el tema del mensaje retenido recibe el mensaje retenido inmediatamente después de suscribirse. El intermediario sólo almacena un mensaje retenido por tema. Esto permite a los nuevos suscriptores de un tema recibir el valor más reciente en lugar de esperar a la siguiente actualización de un editor.

Cuando un cliente de publicación se conecta por primera vez al broker, puede configurar un mensaje predeterminado que se enviará a los suscriptores si el broker detecta que el cliente de publicación se ha desconectado inesperadamente del broker.

Los clientes sólo interactúan con un corredor, pero un sistema puede contener varios servidores corredores que intercambian datos basados en los temas actuales de sus suscriptores.

Un mensaje de control MQTT mínimo puede tener tan sólo dos bytes de datos. En caso necesario, un mensaje de control puede transportar casi 256 megabytes de datos. Hay catorce tipos de mensajes definidos que se utilizan para conectar y desconectar un cliente de un broker, publicar datos, acusar recibo de datos y supervisar la conexión entre cliente y servidor.

MQTT se basa en el protocolo TCP para la transmisión de datos. Una variante, MQTT-SN, se utiliza sobre otros transportes como UDP o Bluetooth.

MQTT envía las credenciales de conexión en formato de texto plano y no incluye ninguna medida de seguridad o autenticación. Esto se puede proporcionar mediante el uso de TLS para cifrar y proteger la información transferida contra la interceptación, modificación o falsificación.

El puerto MQTT no cifrado por defecto es 1883. El puerto cifrado es 8883

1 Saludo.
tincho   08-12-2022, 00:20
#8
Instalando mosquito brooker en la raspberry pi.
Por cierto no les parece que el nombre Raspberry pi es berreta, ortera, cutre, malo ? no se, Arduino por ejemplo, me parece un buen nombre, pero Raspberry...? y Pi ?

Install Mosquitto MQTT Broker on Raspberry Pi
https://randomnerdtutorials.com/how-to-i...pberry-pi/

Mosquitto SSL Configuration -MQTT TLS Security
http://www.steves-internet-guide.com/mosquitto-tls/
Última modificación: 08-12-2022, 00:34 por tincho.

1 Saludo.
jsbsan   08-12-2022, 11:34
#9
Tincho:
Cita:Si recuerdo que conversamos de este tema, pero yo por lo menos no seguí indagando ¿Tu si?.
No, pero se que es muy potente.
He visto videos usandolo con python:
https://www.albertcoronado.com/2018/07/0...to-python/
Shordi   08-12-2022, 12:51
#10
Cita:pero Raspberry...? y Pi ?
Pi se pronuncia igual que pie, o sea, tarta en inglés. Raspberry Pi=Tarta de Frambuesa
¿Por qué esa horterada digna de mi nieta de 6 años?... ni idea. Al fin y al cabo son ingleses los desarrolladores, si veranean en Magaluz, no se les puede pedir mucho...

Saludos
Última modificación: 08-12-2022, 12:51 por Shordi.

No podemos regresar
Páginas (2): 1 2   
  
Usuarios navegando en este tema: 5 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.