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); } }
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; }
/// <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; }
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); }
/// <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; }
/// <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); } } }
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(); }
private static UInt32 SampleStatefulPolicyFunc(CustomParams parameters, CONTEXT context) { return((uint)((parameters.Value1 + parameters.Value2 + context.Features.Length) % 10 + 1)); }