Example #1
0
 /// <summary>
 /// Initialises a ProductCatalogue
 /// </summary>
 /// <param name="prodId">The ID of the product.</param>
 /// <param name="prodVersion">The current version of the product.</param>
 public ProductCatalogue(CANClient can, byte prodId, byte prodVersion, DeviceCatalogueInfo.EquipmentFlages mask, DeviceCatalogueInfo.EquipmentFlages state)
 {
     mMask           = mask;
     mStatus         = state;
     mCatalogueFrame = CNXCANMsgHelper.PackProductId(prodId, prodVersion, (uint)mask, (uint)state);
     _ProductCatalogue(can);
 }
Example #2
0
 /// <summary>
 /// Initialises a ProductCatalogue from a file.
 /// </summary>
 /// <param name="path">Path to product file.</param>
 /// <remarks>
 /// The file should be a text file with seperate lines containing the product Id and the version.
 /// The lines should be space seperated key value pairs as below.
 /// PRODUCT_ID 2
 /// VERSION 4
 /// </remarks>
 public ProductCatalogue(CANClient can, string path, DeviceCatalogueInfo.EquipmentFlages mask, DeviceCatalogueInfo.EquipmentFlages state)
 {
     mMask           = mask;
     mStatus         = state;
     mCatalogueFrame = PopulateProductFrameFromFile(path, mask, state);
     _ProductCatalogue(can);
 }
Example #3
0
        /// <summary>
        /// Create a Resource message
        /// </summary>
        /// <param name="catalogue">Device catalogue.</param>
        /// <returns>Resource message</returns>
        public static RTTMesg CreateEquipmentMessage(DeviceCatalogueInfo.EquipmentFlages mask, DeviceCatalogueInfo.EquipmentFlages state)
        {
            RTTMesg mesg = new RTTMesg()
            {
                mMesgId         = RTTOutMsgIds.EquipmentStatus,
                mEquipmentMask  = mask,
                mEquipmentState = state
            };

            return(mesg);
        }
Example #4
0
        /// <summary>
        /// Reads product information from a file.
        /// </summary>
        /// <param name="path">Path to product file.</param>
        /// <param name="mask">The device mask to set.</param>
        /// <param name="state">The device states for the masked devices.</param>
        /// <remarks>
        /// The file should be a text file with seperate lines containing the product Id and the version.
        /// The lines should be space seperated key value pairs as below.
        /// PRODUCT_ID 2
        /// VERSION 4
        /// </remarks>
        public static CANFrame PopulateProductFrameFromFile(string path, DeviceCatalogueInfo.EquipmentFlages mask, DeviceCatalogueInfo.EquipmentFlages state)
        {
            byte prodId;
            byte ver;

            ProductInfoFromFile(path, out prodId, out ver);
            CANFrame frame = CNXCANMsgHelper.PackProductId(prodId, ver, (uint)mask, (uint)state);

            CNXLog.WarnFormat("Product Frame {0}", frame.ToString());
            return(frame);
        }
Example #5
0
 public void OnEquipmentChangedEventHandler(object o, EquipmentChangedEventArgs catalogeEvent)
 {
     CNXLog.WarnFormat("TrackingState Equipment event {0} <{1}> ", catalogeEvent.Mask, catalogeEvent.Status, ((CANCommsServer)o).DeviceCatalogue.ToString());
     try
     {
         mDeviceMask   = catalogeEvent.Mask;
         mDeviceStatus = catalogeEvent.Status;
         CANCommsServer canServer = (CANCommsServer)o;
         mCatalogue = canServer.DeviceCatalogue.Catalogue;
         StateMachine(TrackingEvent.CATALOGUE);
     }
     catch (Exception ex)
     {
         CNXLog.Error("TrackerState Equipment error.", ex);
     }
 }
        public bool RefreshEquipmentFlags()
        {
            DeviceCatalogueInfo.EquipmentFlages mask   = DeviceCatalogueInfo.EquipmentFlages.None;
            DeviceCatalogueInfo.EquipmentFlages status = DeviceCatalogueInfo.EquipmentFlages.None;

            foreach (DeviceCatalogueInfo dev in mDeviceCatalogue)
            {
                mask   |= dev.Mask;
                status |= dev.Status;
            }

            bool changed = (mEquipmentMask != mask || mEquipmentStatus != status);

            mEquipmentMask   = mask;
            mEquipmentStatus = status;

            return(changed);
        }
Example #7
0
 public EquipmentChangedEventArgs(DeviceCatalogueInfo.EquipmentFlages mask, DeviceCatalogueInfo.EquipmentFlages status)
 {
     mMask   = mask;
     mStatus = status;
 }