ANY-maze Help > The ANY-maze reference > The Protocol page > The elements of a protocol > Analysis > Analysis options > Extending ANY-maze using plug-ins

Extending ANY-maze using plug-ins

Plug-ins are only available in licensed copies of ANY-maze.

Introduction

ANY-maze plug-ins are small pieces of software that can be used to extend the abilities of ANY-maze. For example, a plug-in might read data from a heart rate monitor and feed this data into ANY-maze, thus you would be able to see information about the animal's heart rate during the test. But, better still, this information would become part of ANY-maze, meaning that you'd be able to see how the heart rate differed when the animal was in different zones and/or how it differed across the duration of the test - and you'd be able to use ANY-maze's statistical reports to analysis these results.

Another use for a plug-in might be to simply add some analysis that ANY-maze doesn't provide. For example, you might be interested in determining abrupt changes in the animal's speed - such as would be seen in a 'darting' type of behaviour. ANY-maze doesn't (at least, currently) perform any analysis that would quantify this behaviour, but a plug-in could be written which would detect such 'darts'. Again, you could then use the existing facilities of ANY-maze to analyse 'darts' in different areas of the apparatus, to see how 'darts' vary during the duration of the test, etc.

An important thing to understand about plug-ins is that they're designed to be written by third-parties. Thus, the manufacturer of the heart-rate monitor (in the above example) might write a plug-in to provide the heart rate data to ANY-maze; or a student might write a plug-in to detect the 'darting' behaviour.

Clearly then, if someone wishes to write a plug-in, they'll need detailed information about how to do this and this documentation is provided in the ANY-maze plug-ins topic. But, in brief, a plug-in is a Windows DLL (dynamic link library), which will usually be written in C/C++. The DLL needs to export just one routine through which ANY-maze and the plug-in will communicate. The code required to actually make the DLL into a plug-in is very simple and even quite an inexperienced programmer shouldn't have any difficultly writing it. Of course, the code that performs the actual function of the plug-in (monitoring heart-rate, detecting darts, or whatever) may be far more complex!

Details

As mentioned above, a plug-in is just a 'DLL' file. What this means isn't very important, but what is important is that to install a plug-in you simply need to copy the 'DLL' file into the same folder as the ANY-maze program file (ANY-maze.exe) By default, this is C:\Program Files\ANY-maze.

When ANY-maze starts up, it automatically checks all DLLs in this folder to see whether any of them are plug-ins and if any of them are, it adds a Plug-ins entry to the Analysis and results element of the protocol - see figure 1.

  

  

Figure 1. When ANY-maze detects a plug-in, it automatically includes the Plug-ins item in the Analysis and results element of the protocol.

Selecting the plug-ins item will show a list of the plug-ins that were detected, together with links to view the plug-ins' help and to alter the plug-ins' settings - see figure 2.

  

  

Figure 2. The plug-ins detected by ANY-maze are listed, and you can simply choose which of them you would like to use in your protocol. The links below the list access the Help and Settings for the selected plug-in.

Viewing a plug-in's help

A plug-in author can optionally include help with the plug-in, which you can view by selecting the plug-in in the list and then clicking the appropriate link. The help message should describe what the plug-in is designed to do, what the results it generates mean (assuming it does generate some results), and what settings, if any, it includes.

Altering a plug-in's settings

A plug-in can optionally include a window where the user can alter the plug-in's settings. For example, the demo plug-in provided with ANY-maze determines when the animal is in the centre of the apparatus. In this case, the plug-in includes one setting, which is the maximum distance the animal can be from the centre for it to be considered to be 'in the centre'.

In the heart-rate monitor example given above, the settings might be used to set which channel of a heart rate monitor the plug-in should capture data from.

Activating a plug-in

By default a plug-in, even if installed on your computer, won't be used by a protocol. If you want to use the plug-in in a protocol, you simply need to check the box next to the plug-in's name - see figure 2, above.

It's very important to understand that a plug-in analyses data during a test. This means that you can't activate a plug-in after a test has been performed and expect to see the result of the plug-in's analysis in your results. This is unlike almost every other protocol element.

See also:

 ANY-maze plug-ins 
 Writing a plug-in 
 Plug-in API reference 

© Copyright 2003-2026 Stoelting Co. All rights reserved

ANY-maze help topic T0658