Communication functions
CServer package package includes Modelica functions encapsulating external C-functions.
The goal of these external C-functions is to communicate the simulation of the model and 
the graphic user interface (C++ program automatically generated during the initialization process).
The communication is based on a client-server architecture.
The C++ view and the simulation of the model are the client and the server respectively.
The communication is performed using TCP sockets.
The external C-functions perform the following communication tasks:
        
| Name | Description | 
|---|---|
|  startCserver | Start the C server | 
|  shutdownConnection | Shutdown connection | 
|  getVarValues | Function that gets information from the view | 
|  sendOutput | Function that sends information to the view | 
|  startNClientCserver | Start the server for nClients | 
|  sendChalk | The client receives the chalk that allows to perform changes | 
Start the C server
| Name | Description | 
|---|---|
| nPort | Port number | 
| Name | Description | 
|---|---|
| fd | Socket descriptor | 
Shutdown connection
| Name | Description | 
|---|---|
| fd | Socket descriptor | 
| Name | Description | 
|---|---|
| sdStatus | Status of the connection | 
Function that gets information from the view
| Name | Description | 
|---|---|
| fd | Socket descriptor | 
| lenCKI | Lenght of the arrays CK/I | 
| Name | Description | 
|---|---|
| out | |
| CK[lenCKI] | CK[i]=1 implies that the variable associated to the interactive control identified by the number i has changed its value | 
| I[lenCKI] | Vector with the new values of the interactive variables modified due to a user action | 
Function that sends information to the view
| Name | Description | 
|---|---|
| fd | Socket descriptor | 
| len | Length of array O | 
| O[len] | Array containing the value of the interactive graphic properties sent to the view | 
| intLen | Length of the array intO | 
| intO[intLen] | Array containing the value of the interactive colors sent to the view | 
| num | Number that identifies the component sending the values | 
| Name | Description | 
|---|---|
| out | =1 if the main window of the view has been closed | 
Start the server for nClients
| Name | Description | 
|---|---|
| nPort | Port number | 
| nClients | Number of clients to be connected | 
| launchView | 0/1 not/yes launch the view | 
| Name | Description | 
|---|---|
| nC | Number of clients actually connected | 
| fd[nClients] | Socket descriptor | 
The client receives the chalk that allows to perform changes
| Name | Description | 
|---|---|
| fd | Socket descriptor | 
| chalk | Deliver or not (1/0) then chalk | 
| Name | Description | 
|---|---|
| out | =1 if the main window of the view has been closed |