public MainWindow(Core _core, Program.Logger _logger, Program.ProgramSettings _psettings, Program.ProgramStatus _pstatus, string _appname, string _version, string _appnameWithVersion, string _lisenceTextFilename, Assembly _entryAssembly, AssemblyName _entryAssemblyName, string _basepath, Process _currentProcess, Action<Exception, Program.ExceptionKind> __OnException, Func<byte[], Version, bool> __UpVersion, List<UnhandledExceptionEventHandler> _unhandledExceptionEventHandlers, List<DispatcherUnhandledExceptionEventHandler> _dispatcherUnhandledExceptionEventHandlers) { core = _core; logger = _logger; psettings = _psettings; pstatus = _pstatus; appname = _appname; version = _version; appnameWithVersion = _appnameWithVersion; lisenceTextFilePath = Path.Combine(_basepath, _lisenceTextFilename); entryAssembly = _entryAssembly; _OnException = __OnException; _UpVersion = __UpVersion; unhandledExceptionEventHandlers = _unhandledExceptionEventHandlers; dispatcherUnhandledExceptionEventHandlers = _dispatcherUnhandledExceptionEventHandlers; InitializeComponent(); Title = _appnameWithVersion; miFile.Header = "ファイル".Multilanguage(19) + "(_F)"; miClose.Header = "終了".Multilanguage(20) + "(_X)"; miTool.Header = "ツール".Multilanguage(48) + "(_T)"; miSettings.Header = "設定".Multilanguage(49) + "(_S)..."; miMining.Header = "採掘開始".Multilanguage(135) + "(_M)..."; miDebug.Header = "状況監視".Multilanguage(216) + "(_K)..."; miHelp.Header = "ヘルプ".Multilanguage(21) + "(_H)"; miAbout.Header = "CREAについて".Multilanguage(22) + "(_A)..."; core.iCreaNodeTest.ConnectionKeeped += (sender, e) => this.ExecuteInUIThread(() => tbKeepConnection.Text = "常時接続確立(同期未完了)".Multilanguage(277)); core.iCreaNodeTest.Syncronized += (sender, e) => this.ExecuteInUIThread(() => tbKeepConnection.Text = "常時接続確立(同期完了)".Multilanguage(278)); core.iCreaNodeTest.NewVersionDetected += (sender, e) => { }; core.iCreaNodeTest.NumOfConnectingNodesChanged += (sender, e) => this.ExecuteInUIThread(() => tbNumOfConnectingNodes.Text = "接続数:".Multilanguage(219) + core.iCreaNodeTest.NumOfConnectingNodes.ToString()); core.iCreaNodeTest.NumOfNodesChanged += (sender, e) => this.ExecuteInUIThread(() => tbNumOfNodes.Text = "ノード数:".Multilanguage(220) + core.iCreaNodeTest.NumOfNodes.ToString()); tbKeepConnection.Text = core.iCreaNodeTest.isKeepConnection ? "常時接続確立".Multilanguage(217) : "常時接続未確立".Multilanguage(218); tbNumOfConnectingNodes.Text = "接続数:".Multilanguage(219) + core.iCreaNodeTest.NumOfConnectingNodes.ToString(); tbNumOfNodes.Text = "ノード数:".Multilanguage(220) + core.iCreaNodeTest.NumOfNodes.ToString(); Action _UpdateserverStatus = () => { this.ExecuteInUIThread(() => { if (core.iCreaNodeTest.serverStatus == P2PNODE.ServerStatus.NotRunning) { rServerStatus.Fill = System.Windows.Media.Brushes.Red; rServerStatus.ToolTip = "他ノードからの接続を受け入れることができません。".Multilanguage(221); } else if (core.iCreaNodeTest.serverStatus == P2PNODE.ServerStatus.RunningButHaventAccepting) { rServerStatus.Fill = System.Windows.Media.Brushes.YellowGreen; rServerStatus.ToolTip = "他ノードからの接続がありません。".Multilanguage(222); } else if (core.iCreaNodeTest.serverStatus == P2PNODE.ServerStatus.HaveAccepting) { rServerStatus.Fill = System.Windows.Media.Brushes.Blue; rServerStatus.ToolTip = "他ノードからの接続を確認しました。".Multilanguage(223); } }); }; core.iCreaNodeTest.ServerStatusChanged += (sender, e) => _UpdateserverStatus(); _UpdateserverStatus(); string instanceName = null; PerformanceCounter bytesSentPC = null; PerformanceCounter bytesReceivedPC = null; float bytesSent1 = 0.0F; float bytesReceived1 = 0.0F; int timeCounter = 0; string pidString = _currentProcess.Id.ToString(); timer = new Timer((obj) => { try { if (instanceName == null) instanceName = new PerformanceCounterCategory(".NET CLR Networking 4.0.0.0").GetInstanceNames().Where((elem) => elem.Contains(pidString)).FirstOrDefault(); if (instanceName == null) return; if (bytesSentPC == null) bytesSentPC = new PerformanceCounter(".NET CLR Networking 4.0.0.0", "Bytes Sent", instanceName, true); if (bytesReceivedPC == null) bytesReceivedPC = new PerformanceCounter(".NET CLR Networking 4.0.0.0", "Bytes Received", instanceName, true); timeCounter++; float bytesSent2 = bytesSentPC.NextValue(); float up = bytesSent2 / 1000; float upSpeed = (bytesSent2 - bytesSent1) / 1000; float upSpeedAverage = (bytesSent2 / timeCounter) / 1000; bytesSent1 = bytesSent2; float bytesReceived2 = bytesReceivedPC.NextValue(); float down = bytesReceived2 / 1000; float downSpeed = (bytesReceived2 - bytesReceived1) / 1000; float downSpeedAverage = (bytesReceived2 / timeCounter) / 1000; bytesReceived1 = bytesReceived2; this.ExecuteInUIThread(() => { tbCommunication.Text = string.Format("送速:{0:0.000}KB/s, 送量:{1:0.000}KB, 受速:{2:0.000}KB/s, 受量:{3:0.000}KB".Multilanguage(224), upSpeed, up, downSpeed, down); tbCommunication.ToolTip = string.Format("送信速度:{0:0.000}KB/s, 平均送信速度:{1:0.000}KB/s, 送信量:{2:0.000}KB, 受信速度:{3:0.000}KB/s, 平均受信速度:{4:0.000}KB/s, 受信量:{5:0.000}KB".Multilanguage(225), upSpeed, upSpeedAverage, up, downSpeed, downSpeedAverage, down); }); } catch (Exception) { //<未実装> } }, null, 0, 1000); }
public CreaNetworkLocalTestApplication(Program.Logger _logger) : base(_logger) { }
public TestWindow(Program.Logger _logger) { StackPanel sp1 = null; StackPanel sp2 = null; EventHandler <Program.LogData> _LoggerLogAdded = (sender, e) => ((Action)(() => { TextBlock tb = new TextBlock(); tb.Text = e.Text; tb.Foreground = e.Kind == Program.LogData.LogKind.error ? Brushes.Red : Brushes.White; tb.Margin = new Thickness(0.0, 10.0, 0.0, 10.0); sp2.Children.Add(tb); })).BeginExecuteInUIThread(); Loaded += (sender, e) => { Grid grid = new Grid(); grid.RowDefinitions.Add(new RowDefinition()); grid.RowDefinitions.Add(new RowDefinition()); grid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); grid.ColumnDefinitions.Add(new ColumnDefinition()); ScrollViewer sv1 = new ScrollViewer(); sv1.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; sv1.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; sv1.SetValue(Grid.RowProperty, 0); sv1.SetValue(Grid.ColumnProperty, 0); sp1 = new StackPanel(); sp1.Background = Brushes.Black; ScrollViewer sv2 = new ScrollViewer(); sv2.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; sv2.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; sv2.SetValue(Grid.RowProperty, 1); sv2.SetValue(Grid.ColumnProperty, 0); sp2 = new StackPanel(); sp2.Background = Brushes.Black; sv1.Content = sp1; sv2.Content = sp2; TextBox tb = new TextBox(); tb.SetValue(Grid.RowProperty, 2); tb.SetValue(Grid.ColumnProperty, 0); grid.Children.Add(sv1); grid.Children.Add(sv2); grid.Children.Add(tb); Content = grid; Console.SetOut(new TextBlockStreamWriter(sp1)); _logger.LogAdded += _LoggerLogAdded; //SimulationWindow sw = new SimulationWindow(); //sw.ShowDialog(); this.StartTask(string.Empty, string.Empty, () => { //string testPrivateRsaParameters; //using (RSACryptoServiceProvider rsacsp = new RSACryptoServiceProvider(2048)) // testPrivateRsaParameters = rsacsp.ToXmlString(true); //RealInboundChennel ric = new RealInboundChennel(7777, RsaKeySize.rsa2048, 100); //ric.Accepted += (sender2, e2) => //{ // this.StartTask("", "", () => // { // e2.WriteBytes(BitConverter.GetBytes(true)); // bool b = BitConverter.ToBoolean(e2.ReadBytes(), 0); // SessionChannel sc = e2.NewSession(); // sc.WriteBytes(BitConverter.GetBytes(true)); // sc.Close(); // //e2.Close(); // }); // //e2.Close(); // //Console.WriteLine(""); //}; //ric.RequestAcceptanceStart(); //AutoResetEvent are = new AutoResetEvent(false); //SocketChannel socketc = null; //RealOutboundChannel roc = new RealOutboundChannel(IPAddress.Loopback, 7777, RsaKeySize.rsa2048, testPrivateRsaParameters); //roc.Connected += (sender2, e2) => //{ // socketc = e2; // socketc.Sessioned += (sender3, e3) => // { // bool b3 = BitConverter.ToBoolean(e3.ReadBytes(), 0); // Console.WriteLine(""); // }; // are.Set(); // //e2.Close(); // //Console.WriteLine("connected"); //}; //roc.RequestConnection(); //are.WaitOne(); //bool b2 = BitConverter.ToBoolean(socketc.ReadBytes(), 0); //socketc.WriteBytes(BitConverter.GetBytes(true)); //socketc.Close(); //CirculatedInteger ci = new CirculatedInteger(5); //Console.WriteLine(ci.GetForward(0)); //Console.WriteLine(ci.GetForward(1)); //Console.WriteLine(ci.GetForward(2)); //Console.WriteLine(ci.GetForward(3)); //Console.WriteLine(ci.GetForward(4)); //Console.WriteLine(ci.GetForward(5)); //Console.WriteLine(ci.GetForward(6)); //Console.WriteLine(ci.GetBackward(0)); //Console.WriteLine(ci.GetBackward(1)); //Console.WriteLine(ci.GetBackward(2)); //Console.WriteLine(ci.GetBackward(3)); //Console.WriteLine(ci.GetBackward(4)); //Console.WriteLine(ci.GetBackward(5)); //Console.WriteLine(ci.GetBackward(6)); Secp256k1KeyPair <Sha256Hash> secp256k1KeyPair = new Secp256k1KeyPair <Sha256Hash>(true); Sha256Ripemd160Hash address = new Sha256Ripemd160Hash(secp256k1KeyPair.pubKey.pubKey); TransactionInput ti1 = new TransactionInput(); ti1.LoadVersion1(0, 0, 0); TransactionOutput to1 = new TransactionOutput(); to1.LoadVersion0(address, new Creacoin(50m)); CoinbaseTransaction ct1 = new CoinbaseTransaction(); ct1.LoadVersion0(new TransactionOutput[] { to1 }); byte[] ctBytes1 = ct1.ToBinary(); CoinbaseTransaction ct2 = SHAREDDATA.FromBinary <CoinbaseTransaction>(ctBytes1); TransferTransaction tt1 = new TransferTransaction(); tt1.LoadVersion1(new TransactionInput[] { ti1 }, new TransactionOutput[] { to1 }); tt1.Sign(new TransactionOutput[] { to1 }, new DSAPRIVKEYBASE[] { secp256k1KeyPair.privKey }); byte[] ttBytes1 = tt1.ToBinary(); TransferTransaction tt2 = SHAREDDATA.FromBinary <TransferTransaction>(ttBytes1); ResTransactions rt1 = new ResTransactions(new Transaction[] { ct1, tt1 }); byte[] rtBytes1 = rt1.ToBinary(); ResTransactions rt2 = SHAREDDATA.FromBinary <ResTransactions>(rtBytes1); byte[] test1 = SHAREDDATA.ToBinary <Transaction>(ct2); CoinbaseTransaction ct3 = SHAREDDATA.FromBinary <Transaction>(test1) as CoinbaseTransaction; byte[] test2 = SHAREDDATA.ToBinary <Transaction>(tt2); TransferTransaction tt3 = SHAREDDATA.FromBinary <Transaction>(test2) as TransferTransaction; //string pathBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); //New.BlockManagerDB bmdb = new New.BlockManagerDB(pathBase); //New.BlockDB blkdb = new New.BlockDB(pathBase); //New.BlockFilePointersDB bfpdb = new New.BlockFilePointersDB(pathBase); //New.BlockManager bm = new New.BlockManager(bmdb, blkdb, bfpdb); //New.TestBlock block1 = new New.TestBlock(1); //bm.AddMainBlock(block1); //bm.AddMainBlock(block1); //Test10NodesInv(); //TestDHT(); //bool isFirst = true; //int portNumber = 0; //CreaNode cnlt = null; //tb.KeyDown += (sender2, e2) => //{ // if (e2.Key != Key.Enter) // return; // if (isFirst) // { // portNumber = int.Parse(tb.Text); // FirstNodeInfosDatabase fnidb = new FirstNodeInfosDatabase(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); // cnlt = new CreaNode((ushort)portNumber, 0, "test", fnidb); // cnlt.Start(); // cnlt.ReceivedNewChat += (sender3, e3) => // { // this.ConsoleWriteLine(e3.Message); // }; // isFirst = false; // return; // } // Chat chat = new Chat(); // chat.LoadVersion0(portNumber.ToString(), tb.Text); // chat.Sign(secp256k1KeyPair.privKey); // cnlt.DiffuseNewChat(chat); //}; }); }; Closed += (sender, e) => { _logger.LogAdded -= _LoggerLogAdded; string fileText = string.Empty; foreach (var child in sp1.Children) { fileText += (child as TextBlock).Text + Environment.NewLine; } File.AppendAllText(Path.Combine(new FileInfo(Assembly.GetEntryAssembly().Location).DirectoryName, "LogTest.txt"), fileText); }; }
public TestApplication(Program.Logger _logger) { logger = _logger; }