Пример #1
0
 public void AssignBaseMessageData(IMessage baseMessage)
 {
     MainOperationId   = baseMessage.MainOperationId;
     ParentOperationId = baseMessage.OperationId;
     ReplyQueue        = baseMessage.ReplyQueue;
     foreach (var p in baseMessage.CustomParams)
     {
         CustomParams.Add(p.Key, p.Value);
     }
 }
Пример #2
0
 public MLPASACustomPlayMethodParameters(AudioObject audioObject, int channel, bool followPosition, Vector3 position, Transform transform, int blendTreeMotionIndex, AnimatorStateInfo animatorStateInfo, float playTime, CustomParams userParameters)
 {
     this.audioObject          = audioObject;
     this.channel              = channel;
     this.followPosition       = followPosition;
     this.position             = position;
     this.transform            = transform;
     this.blendTreeMotionIndex = blendTreeMotionIndex;
     this.animatorStateInfo    = animatorStateInfo;
     this.playTime             = playTime;
     this.customParameters     = userParameters;
 }
Пример #3
0
        /// <summary>
        /// Выполнить действия после добавления КП на линию связи
        /// </summary>
        public override void OnAddedToCommLine()
        {
            // получение или загрузка шаблона устройства
            string fileName = ReqParams.CmdLine.Trim();

            PrepareTemplate(fileName);

            // инициализация тегов КП на основе шаблона устройства
            floatSignals = new HashSet <int>();
            int             tagInd    = 0;
            List <TagGroup> tagGroups = CreateTagGroups(deviceTemplate, ref tagInd);

            InitKPTags(tagGroups);

            // определение режима передачи данных
            transMode = CustomParams.GetEnumParam("TransMode", false, TransMode.RTU);

            if (deviceTemplate == null)
            {
                elemGroups   = null;
                elemGroupCnt = 0;
            }
            else
            {
                // получение активных групп элементов
                elemGroups   = deviceTemplate.GetActiveElemGroups();
                elemGroupCnt = elemGroups.Count;

                // формирование PDU и ADU
                devAddr = (byte)Address;
                foreach (ElemGroup elemGroup in elemGroups)
                {
                    elemGroup.InitReqPDU();
                    elemGroup.InitReqADU(devAddr, transMode);
                }

                foreach (ModbusCmd cmd in deviceTemplate.Cmds)
                {
                    cmd.InitReqPDU();
                    cmd.InitReqADU(devAddr, transMode);
                }
            }

            // определение возможности отправки команд
            CanSendCmd = deviceTemplate != null && deviceTemplate.Cmds.Count > 0;
        }
Пример #4
0
    public void SetParam(string key, string value)
    {
        for (int k = 0; k < m_CustomParams.Count; k++)
        {
            if (m_CustomParams [k].key == key && m_CustomParams [k].val != value)
            {
                this.BeginChange();
                var obj = m_CustomParams [k];
                obj.val            = value;
                m_CustomParams [k] = obj;
                this.EndChange();
                return;
            }
        }
        var newObj = new CustomParams();

        newObj.key = key;
        newObj.val = value;
        m_CustomParams.Add(newObj);
    }
Пример #5
0
        /// <summary>
        /// Выполнить действия после добавления КП на линию связи
        /// </summary>
        public override void OnAddedToCommLine()
        {
            // получение или загрузка шаблона устройства
            string fileName = ReqParams.CmdLine.Trim();

            PrepareTemplate(fileName);

            // инициализация тегов КП на основе шаблона устройства
            floatSignals = new HashSet <int>();
            int             tagInd    = 0;
            List <TagGroup> tagGroups = CreateTagGroups(deviceTemplate, ref tagInd);

            InitKPTags(tagGroups);

            // определение режима передачи данных
            transMode = CustomParams.GetEnumParam("TransMode", false, TransMode.RTU);

            // определение возможности отправки команд
            CanSendCmd = deviceTemplate != null && deviceTemplate.Cmds.Count > 0;
        }
Пример #6
0
        /// <summary>
        /// Выполнить действия при запуске линии связи
        /// </summary>
        public override void OnCommLineStart()
        {
            // получение режима передачи данных
            transMode = CustomParams.GetEnumParam("TransMode", false, TransModes.RTU);

            // настройка библиотеки в зависимости от режима передачи данных
            switch (transMode)
            {
            case TransModes.RTU:
                request += modbusPoll.RtuRequest;
                break;

            case TransModes.ASCII:
                request += modbusPoll.AsciiRequest;
                break;

            default:     // TransModes.TCP
                request += modbusPoll.TcpRequest;
                break;
            }

            SetNewLine();

            // настройка объекта, реализующего протокол Modbus
            modbusPoll.Timeout    = ReqParams.Timeout;
            modbusPoll.WriteToLog = WriteToLog;

            // формирование PDU и ADU
            if (deviceTemplate != null)
            {
                devAddr = (byte)Address;

                foreach (ElemGroup elemGroup in deviceTemplate.ElemGroups)
                {
                    elemGroup.InitReqPDU();
                    elemGroup.InitReqADU(devAddr, transMode);
                }
            }
        }
Пример #7
0
        public static void Run()
        {
            string    interactionFile = "serialized.txt";
            MwtLogger logger          = new MwtLogger(interactionFile);

            MwtExplorer mwt = new MwtExplorer("test", logger);

            uint numActions = 10;

            float epsilon = 0.2f;
            uint  tau     = 0;
            uint  bags    = 2;
            float lambda  = 0.5f;

            int          policyParams = 1003;
            CustomParams customParams = new CustomParams()
            {
                Value1 = policyParams, Value2 = policyParams + 1
            };

            /*** Initialize Epsilon-Greedy explore algorithm using a default policy function that accepts parameters ***/
            mwt.InitializeEpsilonGreedy <int>(epsilon, new StatefulPolicyDelegate <int>(SampleStatefulPolicyFunc), policyParams, numActions);

            /*** Initialize Epsilon-Greedy explore algorithm using a stateless default policy function ***/
            //mwt.InitializeEpsilonGreedy(epsilon, new StatelessPolicyDelegate(SampleStatelessPolicyFunc), numActions);

            /*** Initialize Tau-First explore algorithm using a default policy function that accepts parameters ***/
            //mwt.InitializeTauFirst<CustomParams>(tau, new StatefulPolicyDelegate<CustomParams>(SampleStatefulPolicyFunc), customParams, numActions);

            /*** Initialize Tau-First explore algorithm using a stateless default policy function ***/
            //mwt.InitializeTauFirst(tau, new StatelessPolicyDelegate(SampleStatelessPolicyFunc), numActions);

            /*** Initialize Bagging explore algorithm using a default policy function that accepts parameters ***/
            //StatefulPolicyDelegate<int>[] funcs =
            //{
            //    new StatefulPolicyDelegate<int>(SampleStatefulPolicyFunc),
            //    new StatefulPolicyDelegate<int>(SampleStatefulPolicyFunc2)
            //};
            //int[] parameters = { policyParams, policyParams };
            //mwt.InitializeBagging<int>(bags, funcs, parameters, numActions);

            /*** Initialize Bagging explore algorithm using a stateless default policy function ***/
            //StatelessPolicyDelegate[] funcs =
            //{
            //    new StatelessPolicyDelegate(SampleStatelessPolicyFunc),
            //    new StatelessPolicyDelegate(SampleStatelessPolicyFunc2)
            //};
            //mwt.InitializeBagging(bags, funcs, numActions);

            /*** Initialize Softmax explore algorithm using a default policy function that accepts parameters ***/
            //mwt.InitializeSoftmax<int>(lambda, new StatefulScorerDelegate<int>(SampleStatefulScorerFunc), policyParams, numActions);

            /*** Initialize Softmax explore algorithm using a stateless default policy function ***/
            //mwt.InitializeSoftmax(lambda, new StatelessScorerDelegate(SampleStatelessScorerFunc), numActions);

            FEATURE[] f = new FEATURE[2];
            f[0].X     = 0.5f;
            f[0].Index = 1;
            f[1].X     = 0.9f;
            f[1].Index = 2;

            string  otherContext = "Some other context data that might be helpful to log";
            CONTEXT context      = new CONTEXT(f, otherContext);

            UInt32 chosenAction = mwt.ChooseAction(context, "myId");

            INTERACTION[] interactions = mwt.GetAllInteractions();

            mwt.Unintialize();

            MwtRewardReporter mrr = new MwtRewardReporter(interactions);

            string joinKey = "myId";
            float  reward  = 0.5f;

            if (!mrr.ReportReward(joinKey, reward))
            {
                throw new Exception();
            }

            MwtOptimizer mot = new MwtOptimizer(interactions, numActions);

            float eval1 = mot.EvaluatePolicy(new StatefulPolicyDelegate <int>(SampleStatefulPolicyFunc), policyParams);

            mot.OptimizePolicyVWCSOAA("model_file");
            float eval2 = mot.EvaluatePolicyVWCSOAA("model_file");

            Console.WriteLine(chosenAction);
            Console.WriteLine(interactions);

            logger.Flush();

            // Create a new logger to read back interaction data
            logger = new MwtLogger(interactionFile);
            INTERACTION[] inters = logger.GetAllInteractions();

            // Load and save reward data to file
            string      rewardFile  = "rewards.txt";
            RewardStore rewardStore = new RewardStore(rewardFile);

            rewardStore.Add(new float[2] {
                1.0f, 0.4f
            });
            rewardStore.Flush();

            // Read back reward data
            rewardStore = new RewardStore(rewardFile);
            float[] rewards = rewardStore.GetAllRewards();
        }
Пример #8
0
 private static UInt32 SampleStatefulPolicyFunc(CustomParams parameters, CONTEXT context)
 {
     return((uint)((parameters.Value1 + parameters.Value2 + context.Features.Length) % 10 + 1));
 }