code: def setCompleteRedYellowGreenDefinition(self, tlsID, tls):
          
          length = 1 + 4 + 1 + 4 + \
              len(tls._subID) + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 4  # tls parameter
          itemNo = 1 + 1 + 1 + 1 + 1
          for p in tls._phases:
              length += 1 + 4 + 1 + 4 + 1 + 4 + 1 + 4 + len(p._phaseDef)
              itemNo += 4
          self._connection._beginMessage(
              tc.CMD_SET_TL_VARIABLE, tc.TL_COMPLETE_PROGRAM_RYG, tlsID, length)
          self._connection._string += struct.pack("!Bi",
                                                  tc.TYPE_COMPOUND, itemNo)
          # programID
          self._connection._packString(tls._subID)
          # type
          self._connection._string += struct.pack("!Bi", tc.TYPE_INTEGER, 0)
          # subitems
          self._connection._string += struct.pack("!Bi", tc.TYPE_COMPOUND, 0)
          # index
          self._connection._string += struct.pack("!Bi",
                                                  tc.TYPE_INTEGER, tls._currentPhaseIndex)
          # phaseNo
          self._connection._string += struct.pack("!Bi",
                                                  tc.TYPE_INTEGER, len(tls._phases))
          for p in tls._phases:
              self._connection._string += struct.pack("!BiBiBi", tc.TYPE_INTEGER,
                                                      p._duration, tc.TYPE_INTEGER, p._duration1, tc.TYPE_INTEGER, p._duration2)
              self._connection._packString(p._phaseDef)
          self._connection._sendExact()
docs: setCompleteRedYellowGreenDefinition(string, ) -> None
  
          .