Exemplo n.º 1
0
EIP_STATUS CIP_Identity_Init()
  {
    S_CIP_Class *pClass;
    S_CIP_Instance *pInstance;

    pClass = createCIPClass(CIP_IDENTITY_CLASS_CODE, 0, /* # of non-default class attributes*/
        MASK4(1, 2, 6, 7), /* class getAttributeAll mask		CIP spec 5-2.3.2*/
        0, /* # of class services*/
        7, /* # of instance attributes*/
        MASK7(1, 2, 3, 4, 5, 6, 7), /* instance getAttributeAll mask	CIP spec 5-2.3.2*/
        1, /* # of instance services*/
        1, /* # of instances*/
        "identity", /* class name (for debug)*/
        1); /* class revision*/

    if (pClass == 0)
      return EIP_ERROR;

    pInstance = getCIPInstance(pClass, 1);

    insertAttribute(pInstance, 1, CIP_UINT, &VendorID, CIP_ATTRIB_GETABLE);
    insertAttribute(pInstance, 2, CIP_UINT, &DeviceType, CIP_ATTRIB_GETABLE);
    insertAttribute(pInstance, 3, CIP_UINT, &ProductCode, CIP_ATTRIB_GETABLE);
    insertAttribute(pInstance, 4, CIP_USINT_USINT, &Revison, CIP_ATTRIB_GETABLE);
    insertAttribute(pInstance, 5, CIP_WORD, &ID_Status, CIP_ATTRIB_GETABLE);
    insertAttribute(pInstance, 6, CIP_UDINT, &SerialNumber, CIP_ATTRIB_GETABLE);
    insertAttribute(pInstance, 7, CIP_SHORT_STRING, &ProductName, CIP_ATTRIB_GETABLE);

    insertService(pClass, CIP_RESET, &Reset, "Reset");

    return EIP_OK;
  }
Exemplo n.º 2
0
S_CIP_Class *
createAssemblyClass()
{
  S_CIP_Class * pstAssemblyClass;
  /* create the CIP Assembly object with zero instances */
  pstAssemblyClass = createCIPClass(CIP_ASSEMBLY_CLASS_CODE, 0, /* # class attributes*/
                                    0, /* 0 as the assembly object should not have a get_attribute_all service*/
                                    0, /* # class services*/
                                    1, /* # instance attributes*/
                                    0, /* 0 as the assembly object should not have a get_attribute_all service*/
                                    1, /* # instance services*/
                                    0, /* # instances*/
                                    "assembly", 2 /* Revision, according to the CIP spec currently this has to be 2 */
                                   );
  if(NULL != pstAssemblyClass)
    {
      insertService(pstAssemblyClass, CIP_SET_ATTRIBUTE_SINGLE,
                    &setAssemblyAttributeSingle, "SetAssemblyAttributeSingle");
    }

  return pstAssemblyClass;
}