(08-10-2022, 08:02 PM)josefu escribió: Si lo que te molesta es la verbosidad del protocolo, para eso hay soluciones como protobuf.
En electrónica marina a día de hoy el estándar para los fabricantes es nmea 2000 (canbus), pero ya todos o casi todos los plotters y otros equipos tiene wifi o ethernet. Un chip wifi o ethernet es más barato que uno de canbus simplemente por la escala de fabricación.
Tienes una tecnología de conexión barata (ethernet), en la que no vas a tener problemas de ancho de banda y a la que se pueden conectar también nuestros queridos móviles directamente. Estoy seguro que en el futuro no muy lejano no habrá canbus y habrá ethernet, esto propiciará un nuevo protocolo de conexión diferente a nmea 2000, sólo falta ver qué eligen los fabricantes y cuál será su interoperabilidad.
No he hablado de usuarios, he hablado de desarrolladores.
Un protocolo abierto y fácil de entender hace que proliferen aplicaciones sobre un estándar abierto y no controlado por los fabricantes, esto siempre será beneficioso para el usuario.
El día que los fabricantes cambien de nmea 2000 a otra cosa y firmen los mensajes y sólo acepten mensajes firmados por fabricantes de electrónica marina (raymarine, simrad/b&g y furuno) entonces se acabó la historia. Si hay un protocolo abierto con una aceptación considerable y con apps que ya lo usan, los fabricantes pueden considerar darle soporte por obligación.
Hablo de signalk porque es el que hay ahora mismo.
Supongo que te refieres a Javascript no ha Java, Signalk esta hecho con Javascript. Cada lenguaje de programación tiene un ámbito de uso y lo que es incorrecto es usar uno en concreto para todo.
Ya lo he comentado en otros mensajes, Signalk usa NodeJS, que es un servidor de aplicaciones que te permite usar Javascript para programar. Las apps hechas con este servidor de aplicaciones normalmente usan Javascript cómo "lenguaje pegamento", pero el trabajo "duro" se suele hacer con bindings a bibliotecas en C, no creo que nadie discuta el rendimiento de C. Si SignalK hace esto, pues no lo sé, seguro que las operaciones de red si.
Estoy de acuerdo que el DIY en algunos escenarios no es lo más apropiado, de hecho, yo te he comprado un gateway precisamente por eso. Tus equipos tienen un ámbito y cumplen perfectamente en su ámbito.
De todas formas, tampoco soy yo el abogado de SignalK, cada uno que use lo que quiera o le venga mejor. Lo que tengo claro es que entre SignalK y "SignalK" que sacará seguro la industria, me quedo con el abierto.
Volviendo a la temática del hilo, mi recomendación es que hoy en día lo mejor es usar un gateway para "mezclar" protocolos y equipos viejos con nuevos y un PC para el resto de cosas si no tienes un plotter moderno y chulo.
Te propongo una conversación en privado para tratar todos esos temas. Así el señor Magallanesxix no se quejará...
En cuanto a las conexiones Seatalk, NMEA2000, NMEA0183 y WiFi, puede ser buen momento para explicar un poco las características de los procesadores que utilizo y por qué son tan eficientes, con muy bajo consumo y con la potencia de procesado suficiente:
1- Son procesadores ARM de 32 bits y se potencia al máximo sus recursos hardware (DMA, interrupciones, timers, etc). El consumo total, incluyendo el módulo WiFi y de radio no supera los 90 mA a 12v (1 Watio), por eso pueden alimentarse directamente desde la red Seatalk o NMEA2000. A ese bajo consumo contribuye también la fuente conmutada de estos equipos.
2- Estos microcontroladores tienen integrados (embebidos según la moda actual) los siguientes periféricos:
-
2 controladores de bus CAN (NMEA2000) por lo que prescindo del MCP2515. (Josefu, sólo encontrarás un MCP2551 que es el adaptador de señales de línea o "transceiver"). Toda la gestión del bus CAN y NMEA2000 corre íntegramente con software "de la casa". Sin librerías externas.
-
Controlador USB 2.0 (Sin chip FTDI o Prolific). La gestión directa del USB también es software "de la casa".
-
4 (Rem072), 5 (ATM105/115) o 6 (ATM200) USARTS programables con capacidad para trabajar con 9 bits de datos, óptimas para Seatalk entre otras cosas.
Estas USARTS se emplean para lo siguiente:
- Una para la comunicación bidireccional con el ESP12F (Módulo WiFi).
- Una para las comunicaciones bidireccionales con Seatalk.
- 2 (Rem072) o 3 (ATM105/115) para canales NMEA0183 por cable. 2 de ellos bidireccionales.
- 1 (ATM200) para conexión al GPS/GNSS interno.
- ATM105/115/200:
2 canales I2c que ya manejan a los BMP180 y BME280 (Temperatura, presión y humedad), y BNO055: giróscopo de 9 ejes. Toda esa información sale por NMEA0183 y NMEA2000. El procesador del Rem072 también tiene I2c, pero no se ha cableado en placa.
- ATM105/115/200:
Varios canales SPI. Uno es para la radio del control remoto, otro para una posible expansión Ethernet, otro para lector / grabador de tarjetas SD. El Rem072 tampoco los tiene cableados en placa.
3- Todo el software, desde el control del hardware hasta la propia aplicación ha sido escrito "en casa". No hay parches ni software de terceros. Claro, eso ha supuesto unos cuantos miles de horas de trabajo...
4- No usan sistema operativo. No necesitan cargar software desde ningún dispositivo externo, y el arranque es instantáneo (milisegundos). Utilizan watchdog para reiniciar ante cualquier tipo de cuelgue.
5- El hecho de controlar la flash de programa permite actualizaciones "in situ".