March 2019 — Commit Summary

March 2019 delivered wide-ranging improvements across LED control, CAN messaging, timeout infrastructure, and platform support. Notably, Bobcat and Excavator platforms saw major architectural upgrades in modular state machines, watchdogs, diagnostics, and CAN resilience.

Highlights

  • 🟢 Modular LED system across local and remote subsystems.
  • 🔁 Introduction of CAN message retry/stall system.
  • 🛠️ Refactored Bobcat state machine logic into modular architecture.
  • 🚜 Massive rollout of Excavator platform codebase for M2 and M16.
  • ⏱️ Timeout framework added for HDLC and application-level watchdogs.

🆕 Features

LED System Overhaul

  • New headers: hls_can_leds.h, statmach_local_leds.h, statmach_remote_leds.h
  • New modules: statmach_local_leds.c, statmach_remote_leds.c, statmach_local_leds_m2aux.c
  • Unified local/remote LED APIs for platforms:
  • BOBCAT/M2, HAUL-TRUCKS/M2, KOMATSU-D575A/M2, TELELHD2/M2

Snapshot: HLS-SRC-20190301.zip, HLS-SRC-20190304.zip


Bobcat M2 Platform

  • Complete modularization of Bobcat S450 state machines:
  • Proximity, Engine, Throttle, Breaker, Fire Suppression, Park Brake, PassThrough
  • Hardware abstraction in d2driver_io.h, watchdog relay control
  • Factory configuration UI support and CAN retry logic
  • Introduced can_send_stalled mechanism for CAN repeat/timeout handling
  • ROM block and configuration structure updates with scaling improvements

Snapshot: HLS-SRC-20190301;1.zip, HLS-SRC-20190307.zip, HLS-SRC-20190308.zip, HLS-SRC-20190313.zip


Excavator Platform (EX5600)

M2

  • Modular state machines:
  • Deadman, Estop, Power Reset, Proximity, Indicators
  • Output monitoring, control freeze, CAN delay logic
  • Expanded configuration and ROM initialization
  • Support for control_bbox.h, d2monitorin_handlers, d2driver_io
  • CAN filters for monitorin and dropout resilience

M16

  • Control and BBOX configuration
  • New board revision headers
  • CAN control and runtime library support

Snapshot: HLS-SRC-20190309.zip, 20190318.zip, 20190323.zip, 20190325.zip


M16-RADIO-115K

  • New HDLC timeout architecture using T45 software timer:
  • Early frame rejection, per-link stats, soft timeouts
  • Timer reset logic and show_link_stats support
  • Added T45_init.s, timeout.h definitions

Snapshot: HLS-SRC-20190326.zip


General Purpose Libraries and Infrastructure

  • Introduced parse_test.c with advanced parse macros
  • Generic parsing: parse_opt_enable.c
  • Timeout system in LIB/timeout: T45 millisecond timer logic
  • Generic control app structure: PIC/Controls
  • pic30 libc and memory I/O simulation support

Snapshot: HLS-SRC-20190314.zip, HLS-SRC-20190328.zip


♻️ Refactors

  • Renamed:
  • statmach_bobcatstatmach_enable
  • statmach_tracksstatmach_travel for clarity
  • Split monolithic statmach.c into modular .c/.h files
  • Removed unused LLx definitions and legacy remote LED macros
  • Unified CAN buffer mask definitions in hls_can_def.h

🛠️ Fixes

  • Corrected:
  • CAN_CTRL_MASK_INIT logic
  • HDLC CPU reset and reject frame windows
  • Timer ISRs, monitorin timeouts, and output updates
  • Fixed address formatting in LED definitions
  • Enabled proximity and PT1/PT2 config parsing with Y/N selector
  • Applied consistent parameter type definitions and value ranges

📈 Version Updates

  • BOBCAT/M2: 1.19.03.1301
  • LIB: parse_test.c, parse_opt_enable.c introduced
  • INCLUDE: added ccsdefs.h, delay_ms, timeout.h updates

📁 Source Snapshots

  • HLS-SRC-20190301.zip
  • HLS-SRC-20190301;1.zip
  • HLS-SRC-20190304.zip
  • HLS-SRC-20190304;1.zip
  • HLS-SRC-20190307.zip
  • HLS-SRC-20190307;1.zip
  • HLS-SRC-20190308.zip
  • HLS-SRC-20190309.zip
  • HLS-SRC-20190311.zip
  • HLS-SRC-20190313.zip
  • HLS-SRC-20190314.zip
  • HLS-SRC-20190318.zip
  • HLS-SRC-20190321.zip
  • HLS-SRC-20190323.zip
  • HLS-SRC-20190325.zip
  • HLS-SRC-20190326.zip
  • HLS-SRC-20190328.zip
  • HLS-SRC-20190329.zip

🧠 Inferred Architecture Notes

  • Strong modular trend: LED control, state machines, CAN filter logic
  • Timeout abstraction through software-managed T45 system
  • Improved resilience to CAN failures via message retries and dropout delay fields
  • Bobcat/Excavator S450 and EX5600 now share configuration paradigms with standard bitfield and ROM block patterns
  • Expected migration path from legacy M2/M16 flat architectures to board-revision-aware modular state machines