Installation Instructions
The OPC com layer requires the following packages
  - OPC Client library release 0.4 (http://sourceforge.net/projects/opcclient/)
  - Boost Lexical Cast (http://www.boost.org)

Before OPC Client is compiled the function init() in OPCClient.cpp must be changed from:
void COPCClient::init()
{  
  HRESULT  result = CoInitialize(NULL);
  if (FAILED(result))
  {
    throw OPCException("CoInitialize failed");
  }

  CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL);

  result = CoGetMalloc(MEMCTX_TASK, &iMalloc);
  if (FAILED(result))
  {
    throw OPCException("CoGetMalloc failed");
  }
}

to:
void COPCClient::init()
{  
  CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_NONE, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL);

  HRESULT  result = CoGetMalloc(MEMCTX_TASK, &iMalloc);
  if (FAILED(result))
  {
    throw OPCException("CoGetMalloc failed");
  }
}
  
  
Once the OPC Client library is compiled performe the steps below:
1. Place OPC Client library in the following folder structure:
  <opcclientroot>/include - all headers should be placed here
  <opcclientroot>/lib - OPCClientToolkit.lib
2. Choose <opcclientroot> for FORTE_COM_OPC_LIB_ROOT in CMake
3. Choose Boost root folder <boostroot> for FORTE_COM_OPC_BOOST_ROOT
   (the lexical_cast.hpp header must be available in <boostroot>/boost)

Parameter Documentation (all values are required)
OPC Client
opc[host:serverName:updateRate:deadBand:fbInputItems:fbOutputItems]
  - host: 127.0.0.1 etc
  - serverName: e.g. Matrikon.OPC.Simulation
  - updateRate: update frequency in milliseconds
  - deadBand: dead band used for update (same unit as value)
  - fbInputItems/fbOutputItems: items to be added, items should be separated with a comma i.e.
                  Random.Int2,Bucket Brigade.Int4

example: opc[127.0.0.1:Matrikon.OPC.Simulation:2000:0.01:Bucket Brigade.Int4:Random.Int2,Bucket Brigade.Int4]
