/*
 OOI CI Release 1 Product Description, ver 1.5:
 (18) Command An Instrument
*/

import Id, List, Data;

protocol OOI_Command_Instrument {
 role User, CI_Authority, Instrument;
 role Instrument_Registry, Instrument_Agent;

 interfaceReq(Id) from User to Instrument_Registry;
 interfaceData(Id) from Instrument_Registry to User;

 stdAccess() from User to Instrument_Agent; 
 choice from Agent to User {
   accept() {
     X: {
       choice from User to Instrument_Agent {
	       more_commands() {
             commands(List) from User to Instrument_Agent;
             commands(List) from Instrument_Agent to Instrument;
             response(Data) from Instrument to Instrument_Agent;
             response(Data) from Instrument_Agent to User;
             #X;
         quit() {
         }
       }
    }
   reject() {
   }
 }
}