} //end get ticket public async Task DetectCoin(CloudCoin coin, int milliSecondsToTimeOut) { //Task.WaitAll(coin.detectTaskList.ToArray(),Config.milliSecondsToTimeOut); //Get data from the detection agents //Task.WaitAll(coin.detectTaskList.ToArray(), milliSecondsToTimeOut); await Task.WhenAll(coin.detectTaskList); for (int i = 0; i < Config.NodeCount; i++) { var resp = coin.response; } //end for each detection agent var counts = coin.response .GroupBy(item => item.outcome == "pass") .Select(grp => new { Number = grp.Key, Count = grp.Count() }); var countsf = coin.response .GroupBy(item => item.outcome == "fail") .Select(grp => new { Number = grp.Key, Count = grp.Count() }); Debug.WriteLine("Pass Count -" + counts.Count()); Debug.WriteLine("Fail Count -" + countsf.Count()); coin.SetAnsToPansIfPassed(); coin.CalculateHP(); coin.CalcExpirationDate(); coin.grade(); coin.SortToFolder(); DetectEventArgs de = new DetectEventArgs(coin); OnCoinDetected(de); } //end detect coin
} //end importJSON // en d json test public String setJSON(CloudCoin cc) { const string quote = "\""; const string tab = "\t"; String json = (tab + tab + "{ " + Environment.NewLine); // { json += tab + tab + quote + "nn" + quote + ":" + quote + cc.nn + quote + ", " + Environment.NewLine; // "nn":"1", json += tab + tab + quote + "sn" + quote + ":" + quote + cc.sn + quote + ", " + Environment.NewLine; // "sn":"367544", json += tab + tab + quote + "an" + quote + ": [" + quote; // "an": [" for (int i = 0; (i < 25); i++) { json += cc.an[i]; // 8551995a45457754aaaa44 if (i == 4 || i == 9 || i == 14 || i == 19) { json += quote + "," + Environment.NewLine + tab + tab + tab + quote; //", } else if (i == 24) { // json += "\""; last one do nothing } else { // end if is line break json += quote + ", " + quote; } // end else } // end for 25 ans json += quote + "]," + Environment.NewLine; //"], // End of ans //CoinUtils cu = new CoinUtils(cc); //cu.calcExpirationDate(); cc.CalcExpirationDate(); json += tab + tab + quote + "ed" + quote + ":" + quote + cc.ed + quote + "," + Environment.NewLine; // "ed":"9-2016", if (string.IsNullOrEmpty(cc.pown)) { cc.pown = "uuuuuuuuuuuuuuuuuuuuuuuuu"; } //Set pown to unknow if it is not set. json += tab + tab + quote + "pown" + quote + ":" + quote + cc.pown + quote + "," + Environment.NewLine; // "pown":"uuupppppffpppppfuuf", json += tab + tab + quote + "aoid" + quote + ": []" + Environment.NewLine; json += tab + tab + "}" + Environment.NewLine; // Keep expiration date when saving (not a truley accurate but good enought ) return(json); }
public override bool WriteCoinToJpeg(CloudCoin cloudCoin, string TemplateFile, string OutputFile, string tag) { OutputFile = OutputFile.Replace("\\\\", "\\"); bool fileSavedSuccessfully = true; /* BUILD THE CLOUDCOIN STRING */ String cloudCoinStr = "01C34A46494600010101006000601D05"; //THUMBNAIL HEADER BYTES for (int i = 0; (i < 25); i++) { cloudCoinStr = cloudCoinStr + cloudCoin.an[i]; } // end for each an //cloudCoinStr += "204f42455920474f4420262044454645415420545952414e545320";// Hex for " OBEY GOD & DEFEAT TYRANTS " //cloudCoinStr += "20466f756e6465727320372d352d3137";// Founders 7-5-17 cloudCoinStr += "4c6976652046726565204f7220446965"; // Live Free or Die cloudCoinStr += "00000000000000000000000000"; //Set to unknown so program does not export user data // for (int i =0; i < 25; i++) { // switch () { }//end switch pown char // }//end for each pown cloudCoinStr += "00"; // HC: Has comments. 00 = No cloudCoin.CalcExpirationDate(); cloudCoinStr += cloudCoin.edHex; // 01;//Expiration date Sep 2016 (one month after zero month) cloudCoinStr += "01"; // cc.nn;//network number String hexSN = cloudCoin.sn.ToString("X6"); String fullHexSN = ""; switch (hexSN.Length) { case 1: fullHexSN = ("00000" + hexSN); break; case 2: fullHexSN = ("0000" + hexSN); break; case 3: fullHexSN = ("000" + hexSN); break; case 4: fullHexSN = ("00" + hexSN); break; case 5: fullHexSN = ("0" + hexSN); break; case 6: fullHexSN = hexSN; break; } cloudCoinStr = (cloudCoinStr + fullHexSN); /* BYTES THAT WILL GO FROM 04 to 454 (Inclusive)*/ byte[] ccArray = this.hexStringToByteArray(cloudCoinStr); /* READ JPEG TEMPLATE*/ byte[] jpegBytes = null; //jpegBytes = readAllBytes(filePath); jpegBytes = File.ReadAllBytes(TemplateFile); /* WRITE THE SERIAL NUMBER ON THE JPEG */ //Bitmap bitmapimage; //jpegBytes = readAllBytes(filePath); jpegBytes = File.ReadAllBytes(TemplateFile); /* WRITE THE SERIAL NUMBER ON THE JPEG */ Bitmap bitmapimage; using (var ms = new MemoryStream(jpegBytes)) { bitmapimage = new Bitmap(ms); } Graphics graphics = Graphics.FromImage(bitmapimage); graphics.SmoothingMode = SmoothingMode.AntiAlias; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; PointF drawPointAddress = new PointF(30.0F, 25.0F); graphics.DrawString(String.Format("{0:N0}", cloudCoin.sn) + " of 16,777,216 on Network: 1", new Font("Arial", 10), Brushes.White, drawPointAddress); ImageConverter converter = new ImageConverter(); byte[] snBytes = (byte[])converter.ConvertTo(bitmapimage, typeof(byte[])); List <byte> b1 = new List <byte>(snBytes); List <byte> b2 = new List <byte>(ccArray); b1.InsertRange(4, b2); if (tag == "random") { Random r = new Random(); int rInt = r.Next(100000, 1000000); //for ints tag = rInt.ToString(); } //string fileName = targetPath; string fileName = ExportFolder + cloudCoin.FileName + ".jpg"; File.WriteAllBytes(OutputFile, b1.ToArray()); //Console.Out.WriteLine("Writing to " + fileName); //CoreLogger.Log("Writing to " + fileName); return(fileSavedSuccessfully); }