/// <summary> /// Processus background qui traite les messages à l'infini /// </summary> private void BackgroundThradProcess() { while (true) { if (this.terminate) { break; } this.mre.Reset(); if (this.elementsDiffusion.Count >= 0) { ElementDiffusion ed = null; if (this.elementsDiffusion.TryDequeue(out ed)) { this.DiffuserMessage(ed); } } else if (this.elementsFTP.Count >= 0) { ElementFTP element = null; if (this.elementsFTP.TryDequeue(out element)) { this.DiffuserFTP(element); } } else { this.mre.WaitOne(300000); } } }
// empile un message afin de l'envoyer vers FTP via bluetooth public void SendMessageBluetoothVersFTP(string pathFTP, string contenuFTP) { ElementFTP e = new ElementFTP(); e.CheminFTP = pathFTP; e.Message = contenuFTP; e.SiteFTP = ParamCommuns.Instance.SiteFTP; e.UsagerFTP = ParamCommuns.Instance.UsagerFTP; e.MotPasseFTP = ParamCommuns.Instance.MotPasse; this.elementsFTP.Enqueue(e); this.mre.Set(); //Messenger.Default.Send<ElementFTP>(e); }
//private BluetoothEndPoint bep = null; private void DiffuserFTP(ElementFTP ed) { //lock (this.boquant) //{ try { //this.globalClient.Client.Close(); using (BluetoothClient bluetoothClient = new BluetoothClient()) { var ep = new BluetoothEndPoint(this.dev.DeviceInfo.DeviceAddress, _serviceClassId); bluetoothClient.Connect(ep); using (var bluetoothStream = bluetoothClient.GetStream()) { using (MemoryStream ms = new MemoryStream()) { this.ser1.WriteObject(ms, ed); int longueur = (int)ms.Length; byte[] bx = BitConverter.GetBytes(longueur); int longueurTest = bx.Length; bluetoothStream.Write(bx, 0, 4); byte[] sender = ms.GetBuffer(); int depart = 0; while (longueur > 0) { if (longueur >= 1024) { bluetoothStream.Write(sender, depart, 1024); bluetoothStream.Flush(); depart += 1024; longueur -= 1024; } else { bluetoothStream.Write(sender, depart, longueur); bluetoothStream.Flush(); longueur = 0; } } } } } ////////////this.globalClient.Dispose(); ////////////this.globalClient = null; ////////////if (this.globalClient == null) ////////////{ //////////// this.globalClient = new BluetoothClient(); //////////// var ep = new BluetoothEndPoint(this.dev.DeviceInfo.DeviceAddress, _serviceClassId); //////////// this.globalClient.Connect(ep); //////////// this.globalStream = this.globalClient.GetStream(); ////////////} //////////////this.globalStream.Close(); //////////////this.globalStream = this.globalClient.GetStream(); ////////////using (MemoryStream ms = new MemoryStream()) ////////////{ //////////// this.ser1.WriteObject(ms, ed); //////////// int longueur = (int)ms.Length; //////////// byte[] bx = BitConverter.GetBytes(longueur); //////////// int longueurTest = bx.Length; //////////// globalStream.Write(bx, 0, 4); //////////// byte[] sender = ms.GetBuffer(); //////////// int depart = 0; //////////// while (longueur > 0) //////////// { //////////// if (longueur >= 1024) //////////// { //////////// globalStream.Write(sender, depart, 1024); //////////// globalStream.Flush(); //////////// depart += 1024; //////////// longueur -= 1024; //////////// } //////////// else //////////// { //////////// globalStream.Write(sender, depart, longueur); //////////// globalStream.Flush(); //////////// longueur = 0; //////////// } //////////// } ////////////} //using (BluetoothClient bluetoothClient = new BluetoothClient()) //{ // var bep = new BluetoothEndPoint(this.dev.DeviceInfo.DeviceAddress, _serviceClassId); // // connecting // bluetoothClient.Connect(bep); // using (var bluetoothStream = bluetoothClient.GetStream()) // { // using (MemoryStream ms = new MemoryStream()) // { // this.ser1.WriteObject(ms, ed); // var buffer = ms.GetBuffer(); // bluetoothStream.Write(buffer, 0, buffer.Length); // bluetoothStream.Flush(); // bluetoothStream.Close(); // } // } //} } catch (Exception e) { Console.WriteLine("Erreur de messagerie" + e.ToString()); } //} }