Для добавления новой команды в протокол необходимо:
-  Добавить код её запроса и ответа в виде констант (используйте префикс сt и постфикс Request или Answer в зависимости от того запрос это или ответ); 
-  Добавить в класс протокола новую функцию, которая будет реализовывать данную команду (название команды следует сформировать из названия функции в протоколе. Если функция что-то записывает в устройство, то предпочтительно использовать Write в названии, если читает, то Read. Но это не обязательно) - 
-  Если команда возвращает несколько значений, что надо создать соответствующую структуру и возвращать её. Возвращать объекты не рекомендуется.  
-  Иногда команды, описанные в протоколе, возвращают то что было передано. Это сделано для отладки. Правильно сравнивать переданное и принятое и если они не совпадают — поднимать эксепшен. 
-  Для того, что бы передать какие-нибудь параметры их надо превратить в массив байт. Для конвертации можно воспользоваться функциями из модуля  KArrayRoutines- . Полученный массив надо поместить в переменную RequestArray, для того, чтобы сравнить запрос и полученный ответ, если это предусмотрено семантикой команды. 
-  Создать экземпляр пакета нужного типа (например TFreGrafPackage), в который записать код запроса и массив созданный на предыдущем шаге; 
-  С помощью передатчика пакетов передать созданный пакет используя метод RequestDevice; 
-  Пакет который вернул метод RequestDevice проверить на наличие ошибок с помощью метода DoPackageCheck; 
-  Данные из полученного пакета преобразовать к необходимому типу из типа Byte; 
-  Вернуть результат работы функции. 
 
Пример функции реализующей команду:
function TDeviceProtocolSingleton.WriteData(InputData: Word): Boolean;
var
  Answer: TFreGrafPackage;
  Temp: TByteArray;
begin
  AddArrays(Temp, ConvertWordToBytes(InputData), Temp);
 
  Answer := TDeviceSingleton.GetInstance.RequestDevice(
    CreatePackage(mtWriteDataRequest, Temp));
  try
    DoPackageCheck(Answer, 6, mtWriteDataAnswer);
 
    // Обработка результата
 
  finally
    Answer.Free;
  end;
end;