====== Crestron Integration ======
CommandFusion iViewer can communicate with Crestron processors in a variety of ways:
* Using the SIMPL CrestronMobile symbol and the [[https://github.com/CommandFusion/CrestronMobile|iViewer CrestronMobile module]] ([[https://github.com/CommandFusion/CrestronMobile/wiki|documentation]]).
* Using the SIMPL XPanel symbol and the [[https://github.com/CommandFusion/CIP|iViewer CIP module]] ([[https://github.com/CommandFusion/CIP/wiki|documentation]]).
* [[https://github.com/CommandFusion/CrestronModule|iViewer Server SIMPL+ module]], using the [[http://cmdf.us/controlprotocol|Control System protocol]] built into iViewer.
Documentation for each method is available on their respective GitHub repositories.
===== Comparison of Methods =====
Each method has pros and cons, which have been discussed quite frequently on the [[https://groups.google.com/forum/?fromgroups#!forum/commandfusion|CommandFusion Software Google Group]].
In Summary:
==== CrestronMobile Module ====
**For first time integration with Crestron, we recommend this approach.**
* **Pros**
* Uses the native CrestronMobile SIMPL symbol - familiar symbol to connect to your SIMPL programs.
* Allows for flexible communication routing (filtering join ranges, multiple processors)
* Supports the use of different text encodings via system properties for language character sets such as cyrillic via UTF-8 encoding.
* **Cons**
* Relies in the CrestronMobile symbol protocol - if this was ever changed by Crestron, the module may stop working until it is updated to support any changes.
* More complicated to setup
==== CIP Module ====
* **Pros**
* Uses the native XPanel SIMPL symbol - familiar symbol to connect to your SIMPL programs.
* Allows for flexible communication routing (filtering join ranges)
* **Cons**
* Relies in the XPanel symbol protocol (CIP) - if this was ever changed by Crestron (unlikely), the module may stop working until it is updated to support any changes.
* More complicated to setup
==== iViewer SIMPL+ Module ====
Not recommended for 3 series products. Choose the Crestron Mobile method above if you are using 3 series processors.
* **Pros**
* Communication protocol natively built into iViewer, less overhead (No JavaScript required).
* Very easy to integrate in guiDesigner - just define the connection properties in project properties and join changes propagate automatically.
* **Cons**
* Relies on the TCP Server functionality in SIMPL+, which has been found to not be as reliable as the lower level access that native Crestron symbols provide.
* Less flexibility in communications - Can only talk to a single processor at once, all joins will propagate (no way to limit join ranges).
* All join types are cluttered into the SIMPL+ module, and you must edit the SIMPL+ code to increase/decrease the number of joins that can be used.
* No text encoding support
===== Common Problems =====
==== iViewer wont connect to my Crestron system ====
Firstly, make sure you are using the latest version of iViewer 4 (not CF iViewer). If the problem persists - contact us via one of the options on our [[http://www.commandfusion.com/support|support page.]]