Mobile-C: a Multi-Agent Platform for Mobile C/C++ Agents
Mobile-C is an IEEE FIPA (Foundation for Intelligent Physical Agents) standard compliant multi-agent platform for supporting C/C++ mobile agents in networked intelligent mechatronic and embedded systems. Although it is a general-purpose multi-agent platform, Mobile-C is specifically designed for real-time and resource constrained applications with interface to hardware. Mobile agents are software components that are able to move between different execution environments. Mobile agents in a multi-agent system communicate and work collaboratively with other agents to achieve a global goal. It allows a mechatronic or embedded system to adapt to a dynamically changing environment.
Sample Applications


MobileC powered Robotics for IoT, Autonomous Robots, Swarm Robots 2019-3-31  

MobileC for Raspberry Pi and ARM based Computers 2017-3-22  

  • MobileC has been ported to Raspberry Pi and ARM based Computers. It is bundled in C-STEMbian.

MobileC hosted in public git repository 2015-11-14  

  • MobileC is now hosted in public git repository

MobileC v2.1.5 Released 2014-8-12  

  • Converted build system to use CMake
  • Fixed some memory leaks
  • Added function mc_AgentDataShareRetrieve()

MobileC v2.1.4 Released 2011-6-17  

  • Modified internal linked list structure to be simpler, more responsive, and more stable.
  • Fixed some bugs related to deletion of agents
  • Added Mobile-C queue locking functions. These functions may be used to ensure that agents residing in a queue remain there as long as the queue is locked.
  • Added a convenience function called MC_AgentProcessingBegin() and MC_AgentProcessingEnd(), which should be called before and after user-space agent processing functions.

MobileC v2.1.3 Released 2011-4-20  

  • Added missing makefile for Windows
  • Fixed some Windows syntax errors
  • Fixed some memory leaks
  • Fixed some segfaults related to buffer initialization, message structure initialization.

MobileC v2.1.2 Released 2011-2-16  

  • Fixed some include files and preprocessor logic that caused a syntax error in Windows
  • MC_DeleteAgent now flushes an agent from the agency after terminating it.
  • Added API functions to allow agents to carry files with them as they migrate. The new API functions are MC_AgentAttachFile(), MC_AgentListFiles(), MC_AgentRetrieveFile(), and their "mc_" counterparts.

MobileC v2.1.1 Released 2011-2-4  

  • Fixed a preprocessing bug that caused a syntax error on Linux systems w/out the readline library
  • Modified the MC_Initialize() function to detect uninitialized MC_options
  • Fixed several bugs w/ the Windows Bluetooth operation of Mobile-C
  • Updated the persistent agent demo

MobileC v2.1.0 Released 2011-1-4  

  • Modified persistent agents so that the agent thread does not terminate if the agent is persistent. This allows thread specific resources to be maintained, which is especially uselful in some Win32 applications.

MobileC v2.0.7 Released 2010-12-28  

  • Added API function MC_AddAgentInitCallback()
  • Fixed numerous compiler warnings

MobileC v2.0.6 Released 2010-12-22  

  • Fixed numerous memory leaks related to the Mobile-C data structures
  • Fixed bugs in MC_End() including:
    • MC_End() now deallocates the Ch interpreters properly
    • MC_End() now closes the listening socket properly
  • Fixed bind() errors.

MobileC v2.0.5 Released 2010-12-09  

  • Fixed some bugs related to the Mobile-C command line
  • Updated some old demo code that was still using deprecated functions
  • Added experimental testing script to automatically test demos

MobileC v2.0.4 Released 2010-12-01  

  • Fixed a bug where mc_ComposeAgent calls a deprecated function.
  • Fixed the mc_compose_agent_example demo.

MobileC v2.0.3 Released 2010-09-16  

  • Fixed configuration files to allow Mobile-C to build on machines that do not have Bluetooth support.

MobileC v2.0.2 Released 2010-08-31  

  • Added experimental Bluetooth support for Mobile-C agencies.

MobileC v2.0.1 Released 2010-08-06  

  • Fixed bug in function MC_SendAgent() where the agents would not be sent to the correct destination.
  • Updated some demos and documentation to use MC_SendAgent*() instead of MC_SendAgentMigrationMessage*(), which is now deprecated.

MobileC v2.0.0 Released 2010-06-22  

  • Major changes to the organization and presentation of the User's guide
  • Added new API function to append tasks onto existing agents, called MC_AgentAddTask()
  • Deprecated the MC_SendAgentMigrationMessage*() functions. All demos have been changed to use MC_SendAgentFile() instead.
  • Reorganized the "demos" directory, and modified the entire project to use Windows Makefiles instead of "vcproj" files.
  • Numerous fixed bugs and memory leaks.

MobileC v1.10.12 Released 2010-05-17  

  • Added a new command to the Mobile-C command line called "compose_send". The new command composes a function out of a C file and sends it to a Mobile-C agency.
  • Fixed a memory error regarding the storage of the local hostname. This would sometimes cause instability or crashes when using functions such as the 'compose_send' command from the Mobile-C command line.
  • Fixed memory read error in Mobile-C command line.

MobileC v1.10.11 Released 2010-05-12  

  • Changed order of function arguments for secure ComposeAgent functions
  • Added demo and documentation for MC_AddStationaryAgent() for treating binary space functions as Agents with full access to the Mobile-C agent api
  • Fixed bugs regarding intepreter initializations and the api function MC_GetAllAgents

MobileC User's Guide Updated 2010-03-29  

  • The Mobile-C User's guide has been updated to reflect changes in version 1.10.10. The new documentation has also been updated with more information regarding setting up custom build environments for building Mobile-C.

MobileC v1.10.10 Released 2010-03-16  

  • Renamed the 'ComposeAgent' family of functions to 'ComposeAgentS'. Reverted the API functions argument list to old form, without workgroup codes. This was done to preserve backward compatability with Mobile-C versions 1.10.8 and prior.

MobileC v1.10.9 Released 2010-01-07  

  • Improved performance of the Mobile-C Networking code. Agent migrations now occur at an improved rate.
  • Improved performance of running a large number of agents at a time.
  • Added conceptual agent "workgroups" where each agent may store a secret "workgroup code". Only agents that share a certain workgroup code may perform certain operations on each other, such as agent deletion and data retrieval. This prevents random, malicious agents from interacting with workgroup-enabled agents in a bad way.
  • Mobile-C now pre-initialized a number of interpreters for increased performance. Number of preloaded interpreters may be adjusted in the Mobile-C Options structure passed into MC_Initialize().
  • Numerous bugfixes.

MobileC v1.10.8 Released 2009-4-29  

  • Added new Security Module written by Najmus Malik. Use the "--enable-security=yes" option during the configure step to enable the security module. See the demos in demos/hello_world_secure and demos/multi_task_example_secure , as well as Chapter 9 in the User's guide.
  • Added MC_MigrateAgent() and mc_MigrateAgent(). These functions allow an agent to dynamically choose where and when it wants to migrate from within the agent code space.
  • Fixed bug where if an agent has multiple tasks on the same host (in succession), the agent will be renamed due to a spurious name collision.

MobileC v1.10.7 Released 2009-1-9  

  • Changed the way agent migration message files are parsed and sent. Before, the files were not parsed at all before being sent. Now, agent xml files are fully parsed before being sent. This means that the syntax checking for the agent xml files will be more strict. Some agent xml files in the demos have been updated to reflect this.
  • Added more documentation regarding persistent agents and the Ch Mobile-C Package, which is required for agent FIPA ACL communication.

MobileC v1.10.6 Released 2008-12-12  

  • Changed the way agent migration message files are sent. The XML files are now fully parsed into agents before being sent.
  • Fixed a number of memory leaks.

MobileC v1.10.5 Released 2008-11-12  

  • Fixed MC_RetrieveAgent() : The function no longer returns a shallow copy of the retrieved agent, but a pointer to the actual agent.
  • Added a new demo example at "demos/multi_data_retrieval"

MobileC v1.10.4 Released 2008-10-24  

  • Added function MC_CallAgentFunc which takes a variable number of arguments.

MobileC v1.10.3 Released 2008-07-31  

  • Added documentation about Mobile-C and 64 bit architecture machines.
  • Added example for MC_ComposeAgent API function at demos/mc_compose_agent_example/

MobileC v1.10.2 Released 2008-07-11  

  • Fixed a bug regarding large agents and http/tcp protocol causing EOF errors, particularly on Gumstix systems.
  • Added FIPA enumerations to libmc.h so that they may be accessed by including only libmc.h.
  • Updated documentation to reflect previous change.
  • Upgraded included xyssl package from version 0.7 to 0.9. This fixes a Mac compile-time error regarding xyssl.

More News...