Proyectos de código abierto

Además de Truke KF desarrollamos software que publicamos en abierto, con licencia MIT. Cada proyecto tiene su propio sitio, donde están el código, la documentación y el gestor de incidencias. Esta página cuenta para qué sirve cada uno y en qué punto está.

Truke Ktest

Vuestro banco de pruebas y vuestro bus CAN, en una sola ventana del navegador y en una sola grabación.

MITGo · LinuxEn desarrollo temprano

Ktest convierte un equipo Linux y los instrumentos conectados a él en un rack que se maneja desde el navegador. Las herramientas de bus no ven el banco y el software del banco no ve el bus, así que un transitorio de la fuente y el tráfico CAN que provocó suelen tener que cuadrarse a mano. Ktest pone ambos en la misma línea de tiempo.

  • El bus. Monitorización, decodificación, transmisión y reproducción de CAN y CAN FD sobre SocketCAN.
  • El banco. Fuentes de alimentación programables y osciloscopios por SCPI.
  • La grabación. Todo va a un único formato abierto, Logb.
  • Seguro por defecto. No se acciona nada hasta que un cliente toma el control y arma el rack, y cada acción se comprueba contra unos límites que quedan escritos en la grabación.

Pretende ser una alternativa abierta a los entornos de prueba propietarios, y guarda vuestros datos de ensayo en un formato que se puede leer sin él.

Estado. Están construidos los tres primeros hitos del diseño. LIN, ISO-TP, J1939, multímetros, cargas electrónicas y generadores de funciones están previstos. Las interfaces, la estructura de ficheros y las opciones aún pueden cambiar.

 
El rack de Ktest controlando una fuente de laboratorio: indicadores, consignas y una gráfica en vivo de tensión y corriente

Truke Folio

Maquetación de páginas impresas en el navegador, sin servidor y sin pasar por PDF.

MITTypeScriptNuevo

Folio toma un documento HTML con estilos de CSS Paged Media y lo compone en páginas: tamaños y márgenes de página, cabeceras y números de página, notas al pie, tablas que se parten y repiten su cabecera, referencias cruzadas que saben a qué página apuntan e índices con líneas de puntos. Las matemáticas se componen y se parten entre líneas y páginas como parte del mismo problema.

Sustituye directamente a Paged.js: los 122 documentos del corpus de especificación de Paged.js se paginan sin cambiar nada más que la etiqueta script. Chromium 109, Firefox 115 y Safari 16.4 o posteriores.

Estado. El motor es nuevo. Paged.js tiene detrás años de libros y usuarios reales, y pasar un corpus de pruebas no es lo mismo que haber pasado por eso. Si Paged.js hace lo que vuestro proyecto necesita, seguid con él.

<!-- toda la integración --> <script src="/dist/folio.polyfill.js"></script> <style> @page { size: A5; margin: 18mm 16mm; @bottom-center { content: counter(page) } } h1 { break-before: page } </style>

Logb

Un formato binario abierto para datos de medida, trazas de bus y resultados de simulación.

MITEspecificación · implementación de referencia en GoBorrador v0.1

La industria del automóvil no tiene un estándar abierto para los datos de ensayo. MDF es el de uso común, pero su especificación es de pago, y el BLF de Vector es directamente propietario. La especificación de Logb es pública, con las mismas condiciones que su código, y un lector conforme ocupa unas mil líneas más un descompresor.

  • Resistente a cortes. Nada apunta hacia delante, así que un fichero cortado en cualquier byte conserva todas las tramas completas anteriores al corte. Sin herramientas de reparación ni modos de recuperación.
  • Legible desde el medio. El esquema se repite en cada segmento, así que un lector que recibe solo una parte del fichero se resincroniza y la decodifica entera.
  • Autodescriptivo. Una grabación CAN lleva sus propias definiciones de señales: una herramienta sin DBC puede nombrar y escalar todas las señales.
  • Conserva los valores en bruto. Los valores físicos se obtienen mediante una conversión declarada, así que un ciclo de lectura y escritura es idéntico byte a byte.

Las trazas de bus, las medidas de banco y los resultados de un simulador son el mismo tipo de fichero. Hay importadores para grabaciones MDF4 y ficheros .raw de SPICE, y Ktest graba en Logb.

Estado. Un borrador para discusión. El formato aún no está congelado, y la implementación de referencia y sus herramientas ya funcionan.

 
La estructura de un fichero Logb: una cabecera, uno o más segmentos y tramas opcionales de índice y de fin; cada segmento empieza con una trama de sincronización y sus esquemas

Nomo

Hojas de cálculo de ingeniería que muestran el desarrollo y dan el mismo resultado en cualquier máquina.

MITRust · WebAssemblyv0.6.0

Nomo es una alternativa abierta a SMath Studio, nativa en Linux y basada en web. Una hoja se escribe como texto plano, con unidades en cada valor, y se evalúa en orden de dependencias y se presenta paso a paso: la fórmula, los valores sustituidos en ella y el resultado.

  • Comprueba las unidades. Cada valor lleva sus dimensiones, así que sumar una longitud a una presión es un error, no un número.
  • Reproducible bit a bit. La aritmética, funciones trascendentes incluidas, da los mismos bits en x86-64, en ARM y en el navegador. Las pruebas comparan los resultados byte a byte, sin tolerancia.
  • Funciona en el navegador. El motor está compilado a WebAssembly. No hay servidor de cálculo, funciona sin conexión y ninguna hoja sale de la pestaña.
  • Importa SMath. Las hojas .sm existentes se pueden traer.

Gráficas, tablas, números complejos, matrices, figuras y texto forman parte del lenguaje, y una herramienta de línea de comandos convierte una hoja en texto o en una página HTML autocontenida.

Estado. El plan inicial está completo y hay versiones publicadas, con binarios para Linux y macOS, el módulo WebAssembly y el editor como ficheros estáticos para cualquier servidor web. La composición tipográfica de los resultados aún se está mejorando.

 
' # Volumen de un cilindro r = 5 cm h = 12 cm V = pi*r^2*h V -> dm^3 ' se presenta como V = π·r²·h = π·(5 cm)²·(12 cm) = 0.000942478 m³ V = 0.942478 dm³