示例#1
0
    public OptimizationParam OptimizationGetParam()
    {
        OptimizationParam optimizationParam = new OptimizationParam();

        EmoEngine.errorHandler(EdkDll.EE_OptimizationGetParam(optimizationParam.GetHandle()));
        return(optimizationParam);
    }
示例#2
0
 public void OptimizationEnable(OptimizationParam param)
 {
     if (param == null)
     {
         throw new NullReferenceException();
     }
     EmoEngine.errorHandler(EdkDll.EE_OptimizationEnable(param.GetHandle()));
 }
示例#3
0
        static void keyHandler(ConsoleKey key)
        {
            switch (key)
            {
            case ConsoleKey.F1:
                EmoEngine.Instance.CognitivSetTrainingAction(0, EdkDll.EE_CognitivAction_t.COG_PUSH);
                EmoEngine.Instance.CognitivSetTrainingControl(0, EdkDll.EE_CognitivTrainingControl_t.COG_START);
                break;

            case ConsoleKey.F2:
                EmoEngine.Instance.ExpressivSetTrainingAction(0, EdkDll.EE_ExpressivAlgo_t.EXP_CLENCH);
                EmoEngine.Instance.ExpressivSetTrainingControl(0, EdkDll.EE_ExpressivTrainingControl_t.EXP_START);
                break;

            case ConsoleKey.F3:
                profile = EmoEngine.Instance.GetUserProfile(0);
                Console.WriteLine("Get profile");
                break;

            case ConsoleKey.F4:
                EmoEngine.Instance.SetUserProfile(0, profile);
                Console.WriteLine("Set profile");
                break;

            case ConsoleKey.F5:
                EmoEngine.Instance.CognitivSetActivationLevel(0, 2);
                Console.WriteLine("Cog Activateion level set to {0}", EmoEngine.Instance.CognitivGetActivationLevel(0));
                break;

            case ConsoleKey.F6:
                Console.WriteLine("Cog Activateion level is {0}", EmoEngine.Instance.CognitivGetActivationLevel(0));
                break;

            case ConsoleKey.F7:
                OptimizationParam oParam = new OptimizationParam();
                oParam.SetVitalAlgorithm(EdkDll.EE_EmotivSuite_t.EE_AFFECTIV, 0);
                oParam.SetVitalAlgorithm(EdkDll.EE_EmotivSuite_t.EE_COGNITIV, 0);
                oParam.SetVitalAlgorithm(EdkDll.EE_EmotivSuite_t.EE_EXPRESSIV, 0);
                EmoEngine.Instance.OptimizationEnable(oParam);
                Console.WriteLine("Optimization is On");
                break;

            case ConsoleKey.F8:
                EmoEngine.Instance.OptimizationDisable();
                Console.WriteLine("Optimization is Off");
                break;

            case ConsoleKey.F9:
                String version;
                UInt32 buildNum;
                EmoEngine.Instance.SoftwareGetVersion(out version, out buildNum);
                Console.WriteLine("Software Version: {0}, {1}", version, buildNum);
                break;
            }
        }
示例#4
0
        private async Task <AdjacencyGraph <NavigationPoint, WeightedEdge <NavigationPoint> > > GenerateCosts(
            AdjacencyGraph <NavigationPoint, TransportEdge <NavigationPoint> > segmentedGraph, OptimizationParam optimizer)
        {
            var weightedGraph  = new AdjacencyGraph <NavigationPoint, WeightedEdge <NavigationPoint> >();
            var weightingTasks = new List <Task <WeightedEdge <NavigationPoint> > >(
                segmentedGraph.Edges.Select((async edge =>
            {
                var segment = new RoutingSegment(edge.Source,
                                                 edge.Target,
                                                 edge.NavigationMode);
                var costedRoute = await _navigationCostGeneratorService.GetCostForSegment(segment, optimizer);
                _internalCache.Add(segment, costedRoute);
                return(new WeightedEdge <NavigationPoint>(edge.Source, edge.Target, edge.NavigationMode, costedRoute.cost));
            })));

            weightedGraph.AddVerticesAndEdgeRange(await Task.WhenAll(weightingTasks));
            return(weightedGraph);
        }
示例#5
0
 public double GetCostFromRouteSummary(RouteDirectionsSummary routeDirectionsSummary, OptimizationParam optimizer)
 {
     return EstimateMonetaryCost(routeDirectionsSummary) *
            (OptimizationParam.MaxValue - optimizer.OptimizerValue) +
            EstimateTimeCost(routeDirectionsSummary) * optimizer.OptimizerValue;
 }
示例#6
0
        public async Task<RoutingSegmentResult> GetCost(NavigationPoint start, NavigationPoint end, OptimizationParam optimizer)
        {
            // Call API from start to end to figure how much time it'll take 
            var routingResult = await _mapsService.GetRouteDirections(start, end, NavigationMode);
            var routingCost = GetCostFromRouteSummary(routingResult.Summary, optimizer);

            return new RoutingSegmentResult(NavigationMode.ToString(), GetNavigationPointsFromLegs(routingResult.Legs), routingCost);
        }
示例#7
0
 public OptimizationParam OptimizationGetParam()
 {
     OptimizationParam optimizationParam = new OptimizationParam();
     EmoEngine.errorHandler(EdkDll.EE_OptimizationGetParam(optimizationParam.GetHandle()));
     return optimizationParam;
 }
示例#8
0
 public void OptimizationEnable(OptimizationParam param)
 {
     if (param == null)
     {
         throw new NullReferenceException();
     }
     EmoEngine.errorHandler(EdkDll.EE_OptimizationEnable(param.GetHandle()));
 }
示例#9
0
 public double ApplyCost(OptimizationParam optimizer)
 {
     return(optimizer.OptimizerValue * TimeCost + (OptimizationParam.MaxValue - optimizer.OptimizerValue) * MonetaryCost);
 }
示例#10
0
	/// <summary>
	/// Gets optimization parameter.  If optimization is not enabled (this can be checked with EE_OptimmizationIsEnabled) then the results attached to the returned parameter are undefined.
	/// </summary>
	/// <returns></returns>
	public OptimizationParam OptimizationGetParam()
	{
		OptimizationParam param = new OptimizationParam();
		errorHandler(EdkDll.EE_OptimizationGetParam(param.GetHandle()));
		return param;
	}
示例#11
0
        public Task <RoutingSegmentResult> GetCostForSegment(RoutingSegment segment, OptimizationParam optimizer)
        {
            var costFunction = _costFunctionFactory.GetCostFunctionByType(segment.SegmentNavigationMode);

            return(costFunction.GetCost(segment.SegmentStart, segment.SegmentEnd, optimizer));
        }