//private static void Log (string message) //{ // var dt = DateTime.Now.ToString ("yyyy-MM-dd hh:mm:ss"); // Console.WriteLine (" {0} [INFO] {1}", dt, message); //} //private static void Log (Network.LoggingEventArgs logArgs) //{ // string level = string.Empty; // var dt = DateTime.Now.ToString ("yyyy-MM-dd hh:mm:ss"); // var message = string.Format (" {0} [{1}] {2}", dt, level, logArgs.Message); // switch (logArgs.LoggingType) { // case LoggingType.Info: // level = "INFO"; // break; // case LoggingType.Warning: // level = "WARN"; // break; // case LoggingType.Error: // level = "ERR"; // break; // default: // level = "INFO"; // break; // } // Trace.TraceInformation ("Hello TraceInformation"); // Trace.TraceWarning ("Hello TraceWarning"); // Trace.TraceError ("Hello TraceError"); //} //private static void Log (Exception ex) //{ // while (ex.InnerException != null) { // ex = ex.InnerException; // } // var level = "WARN"; // var dt = DateTime.Now.ToString ("yyyy-MM-dd hh:mm:ss"); // Console.WriteLine (" {0} {1} {2}", dt, level, ex.Message); //} public static void OnEvaluationComplete(object sender, GAF.Network.RemoteEvaluationEventArgs e) { //this event fires each time an evaluation is undertaken by the server var ellapsedMilliseconds = _stopwatch.ElapsedMilliseconds; Log.Debug(string.Format("Evaluated solution {0}, Fitness={1}, Elapsed Time:{2}ms", e.Solution.Id, e.Solution.Fitness, ellapsedMilliseconds)); _stopwatch.Restart(); }
private void listener_OnPacketReceived(object sender, PacketEventArgs e) { try { Log.Debug(string.Format("Packet Received, PacketId:{0} ObjectId:{1} Data Bytes:{2}", e.Packet.Header.PacketId, e.Packet.Header.ObjectId, e.Packet.Data.Length)); switch ((PacketId)e.Packet.Header.PacketId) { case PacketId.Data: { if (e.Packet.Header.DataLength > 0) { //deserialise to get the genes, create a new chromosome from these //this saves having to send the whole chromosome var genes = Binary.DeSerialize <List <Gene> > (e.Packet.Data, _fitnessAssembly.KnownTypes); var chromosome = new Chromosome(genes); e.Result = chromosome.Evaluate(_fitnessAssembly.FitnessFunction); if (OnEvaluationComplete != null) { var eventArgs = new RemoteEvaluationEventArgs(chromosome); this.OnEvaluationComplete(this, eventArgs); } } break; } case PacketId.Init: { Log.Info("Initialisation initiated."); if (e.Packet.Header.DataLength > 0) { Log.Info("Writing Fitness Assembly to filesystem."); File.WriteAllBytes(_fitnessAssemblyName, e.Packet.Data); //check for fitness file if (File.Exists(_fitnessAssemblyName)) { Log.Info("Loading the Fitness Assembly."); _fitnessAssembly = new FitnessAssembly(_fitnessAssemblyName); } else { Log.Error("Fitness Assembly not accesible or missing."); } } break; } case PacketId.Status: { var result = 0x0; //check for fitness file if (File.Exists(_fitnessAssemblyName)) { result = result | (int)ServerStatusFlags.Initialised; } if (_serverDefinedFitness) { result = result | (int)ServerStatusFlags.ServerDefinedFitness; } e.Result = (double)result; break; } } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } Log.Error(ex); } }