Change Log - 260824 

Some important changes in this update: 

  • Removed a bug from TISM_SoftwareTimer that prevented proper functioning once the last scheduled event was released from the queue. Furthermore improved the wake/sleep behavior. 
  • Changed the message format coming from TISM_SoftwareTimer so that Payload0 contains the user's Parameter and Payload1 the timer's SequenceNumber (see the documentation). 
  • Simplified the task wake/sleep setting in TISM_Scheduler

Change log - 260708 

  • Added 'address-less' mode to TISM_UartMX, which allows clients to listen to broadcasts without being able send packets. Can be useful if you have multiple devices listening for remote commands without providing feedback. 
  • Added feature to TISM_SoftwareTimer to allow timed messages to other hosts or tasks. - Small improvement to handling of PING and ECHO packets. 

Change log - 260321 

  • Resolved a nasty bug that prevented tasks from going to sleep in single-core mode. 
  • Clarified sleep/wake behavior; when tasks go to sleep they can only be woken up by incoming messages or incoming timers. Delayed task execution can be set using the TaskWakeUpTimer attribute while keeping the TaskSleep attribute to false.

Change log - 260313

  • Made some small changes to the source files to prevent compilation errors. 
  • Made some small changes to the message routing functionality. 
  • Added the capability for 'addressless' messaging; when HostID is 0, still being able to receive broadcasts only.

Change log - 260301

  • Removed some nasty bugs from the scheduler, added a couple of mutexes and critical code segments.
  • Improved management of task attributes, improving handling of task property changes.
  • Added a "network" feature! TISM is now able to communicate with other Pi Picos via the UART (e.g. nullmodem or DT-09).
  • Added a network management task to build a 'network neighborhood' list, to resolve hostnames and tasknames.
  • Added a (simple) console to look 'under the hood' of TISM, using the USB/serial interface.
  • Unsubscribing from IRQs now fully work.

Change log - 251024

  • Major rewrite and cleanup of the code.
  • Improved task switching and removed a bug where a task could run on both cores simultanously under low-load conditions.
  • Extended the buffersize of the eventlogger to prevent missing messages when debuglevels are set to high.
  • Tuned the priority settings in TISM.h.
  • Added several options to alter the behavior of TISM (see above).
  • Added option to cancel a software timer via an ID.
  • Introduced step-by-step execution to facilitate debugging (see RUN_STEP_BY_STEP in TISM.h).
  • Laid some groundwork for multi-host operation.

Want to know what you can to with TISM? Check out our first animatronic!

Wish list

  • Support for RS485 and 433Mhz devices in TISM_UartMX.c.
  • Support for Pico W and Wifi networking.
  • Rewrite of the EventLogger to switch from dynamic to static allocated memory for messages, to prevent memory fragmentation after (very) long runs.
  • Extend the TISM-messaging protocol to support the exchange of system related data (e.g. system time, unique ID etc.)
  • Adding 'promiscuous mode' to TISM_UartMX to debug message exchange between hosts.
  • The ability to turn 'network neighborhood' collection off.

The source code is distributed under the GPLv3 license.