> For the complete documentation index, see [llms.txt](https://help.security.gallagher.com/knowledge-hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.security.gallagher.com/knowledge-hub/products/cc-software/configure/interface-options/api/ascii-interface-crps.md).

# ASCII interface

Compare ASCII interface options for Command Centre and third-party systems.

Many systems are capable of receiving ASCII text commands to trigger actions, or to notify them of external events. Common systems using this type of interface are matrix switches, fire panels, DVR systems, and paging systems.

**Part number:** `C12669`

## The three options

Gallagher provides three options for an ASCII text interface.

1. **Middleware plugin.** The plugin interface mechanism allows the Gallagher Controller to send out ASCII text strings to a third-party system in response to Gallagher events. A separate middleware PC is required to host the plugin.
2. **Controller-Resident RS232 ASCII Text Plugin.** Enables Command Centre to send and receive ASCII strings to and from a third-party system on another network, from the Gallagher Controller RS232 port.
3. **Controller-Resident TCP ASCII Text Plugin.** The same, from the Gallagher Controller TCP port.

Options 2 and 3 are hosted on the Gallagher Controller 6000, deploying the Controller Resident Plugin Support customization, so no separate middleware PC is required.

> ⚠️ The controller-resident plugins can manage a connection to another device, and can both send and receive ASCII data on that connection. They **cannot accept an incoming TCP connection initiated by another device**, and the connection must be persistent.

## Choosing between them

The older ASCII Text plugin needs Middleware plus the ASCII Text Plugin, often over RS232 through a **MOXA** converter. The Controller-Resident Plugin removes the Middleware entirely, and usually the MOXA with it: a Controller 6000 sends ASCII straight out its TCP or RS232 port.

**Versions supported:** Command Centre **v8.20 through v9.40** (Controller Resident Plugin Support customization). The Controller-Resident Plugin is available from **v7.20** onwards.

> 🧭 **Where to start**
>
> * **Setting up incoming or outgoing strings?** → [Controller Resident Plugin (CRPS)](/knowledge-hub/products/cc-software/configure/interface-options/api/crps-basic-configuration.md)
> * **Need the wider middleware picture?** → [Controller API (FTCAPI) and Middleware Framework (FMF)](/knowledge-hub/products/cc-software/configure/interface-options/api/controller-api-ftcapi-and-middleware-f.md)

**Documentation:** Release Note Controller Resident Plugin Support, published for each version from v8.20 through v9.40.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.security.gallagher.com/knowledge-hub/products/cc-software/configure/interface-options/api/ascii-interface-crps.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
