// ********************************************************************************************************** // CoeComm.cs // 6/21/2022 // NGI - Next Generation Interceptor // // Contract No. HQ0856-21-C-0003/1022000209 // // THIS DOCUMENT DOES NOT CONTAIN TECHNOLOGY OR TECHNICAL DATA CONTROLLED UNDER EITHER THE U.S. // INTERNATIONAL TRAFFIC IN ARMS REGULATIONS OR THE U.S. EXPORT ADMINISTRATION REGULATIONS. // // RAYTHEON PROPRIETARY: THIS DOCUMENT CONTAINS DATA OR INFORMATION PROPRIETARY TO RAYTHEON // COMPANY AND IS RESTRICTED TO USE ONLY BY PERSONS AUTHORIZED BY RAYTHEON COMPANY IN WRITING TO USE IT. // DISCLOSURE TO UNAUTHORIZED PERSONS WOULD LIKELY CAUSE SUBSTANTIAL COMPETITIVE HARM TO RAYTHEON // COMPANY'S BUSINESS POSITION. NEITHER SAID DOCUMENT NOR ITS CONTENTS SHALL BE FURNISHED OR DISCLOSED // TO OR COPIED OR USED BY PERSONS OUTSIDE RAYTHEON COMPANY WITHOUT THE EXPRESS WRITTEN APPROVAL OF // RAYTHEON COMPANY. // // UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY. // // DESTRUCTION NOTICE: FOR CLASSIFIED DOCUMENTS FOLLOW THE PROCEDURES IN DOD 5220.22-M, // NATIONAL INDUSTRIAL SECURITY PROGRAM OPERATING MANUAL, FEBRUARY 2006, // INCORPORATING CHANGE 1, MARCH 28, 2013, CHAPTER 5, SECTION 7, OR DODM 5200.01-VOLUME 3, // DOD INFORMATION SECURITY PROGRAM: PROTECTION OF CLASSIFIED INFORMATION, ENCLOSURE 3, // SECTION 17. FOR CONTROLLED UNCLASSIFIED INFORMATION FOLLOW THE PROCEDURES IN DODM 5200.01-VOLUME 4, // INFORMATION SECURITY PROGRAM: CONTROLLED UNCLASSIFIED INFORMATION. // // CONTROLLED BY: MISSILE DEFENSE AGENCY // CONTROLLED BY: GROUND-BASED MIDCOURSE DEFENSE PROGRAM OFFICE // CUI CATEGORY: CTI // DISTRIBUTION/DISSEMINATION CONTROL: F // POC: Alex Kravchenko (1118268) // ********************************************************************************************************** using System.Collections.Generic; using Raytheon.Communication; namespace Raytheon.Instruments { [UmsContract] public interface CoeComm : IInstrument { /// /// Open the communication interface /// [UmsCommand("CoeComm.Open")] void Open(); /// /// Close the communication interface /// [UmsCommand("CoeComm.Close")] void Close(); /// /// Send a message /// /// could be either a label or message name /// /// [UmsCommand("CoeComm.SendMessage")] bool SendMessage(string messageId, IEnumerable> messageParams); /// /// Get next response in FIFO Qeueu, meaning we are getting the oldest response /// /// could be either a label or message name /// [UmsCommand("CoeComm.GetNextResponseInQueue")] CoeResponseMsgData GetNextResponseInQueue(string messageId); /// /// Clear the queue for a particular response message. /// This is useful if we have a large size queue and we don't want to dequeue each item to get /// to the newest item. So we clear the queue first, before trying to get the newest item in the queue /// /// could be either a label or message name /// [UmsCommand("CoeComm.ClearResponseMessageQeue")] void ClearResponseMessageQueue(string messageId); /// /// Get XML Documents /// /// [UmsCommand("CoeComm.GetXmlDocs")] object GetXmlDocs(); /// /// Determine if we should log this message /// /// [UmsCommand("CoeComm.ShallLogMessage")] bool ShallLogMessage(string messageName); } }