public void TestDataToSegment() { DbDacDataProvider p = new DbDacDataProvider(); Dictionary <string, string> args = new Dictionary <string, string>(); args.Add("sqlitedbcongxml", this.path); p.Init_Sqlite(args); var d = new SensorOriginalData { AcqTime = System.DateTime.Now, ModuleNo = 12, ChannelNo = 23, Type = ProtocolType.VibratingWire, Values = new double[] { 1924, 12.340000d, 2.340000d } }; byte[] buff = new byte[39]; int writed = p.DataToSegment(d, buff, 0); Assert.AreEqual(39, writed); Assert.AreEqual(ProtocolType.VibratingWire, (uint)ValueHelper.GetShort(buff, 0)); Assert.AreEqual(1924, ValueHelper.GetDouble(buff, 15)); Assert.AreEqual(12.34f, ValueHelper.GetDouble(buff, 23)); Assert.AreEqual(2.34f, ValueHelper.GetDouble(buff, 31)); Assert.AreEqual(23, p.CalcDataLength(1)); Assert.AreEqual(31, p.CalcDataLength(2)); Assert.AreEqual(39, p.CalcDataLength(3)); Assert.AreEqual(47, p.CalcDataLength(4)); Assert.AreEqual(55, p.CalcDataLength(5)); Console.WriteLine("buff={0}", ValueHelper.BytesToHexStr(buff)); }
public void TestHasMoreData() { DbDacDataProvider p = new DbDacDataProvider(); Dictionary <string, string> args = new Dictionary <string, string>(); args.Add("sqlitedbcongxml", this.path); p.Init_Sqlite(args); // 5. // var cs = connstr.Split(','); LoadDbConfigXml lc = new LoadDbConfigXml(this.path); string[] sonstr = lc.GetSqlConnectionStrings("/config/databases"); ISqlHelper sqlHelper = SqlHelperFactory.Create(DbType.SQLite, sonstr[0]); sqlHelper.Query("update D_OriginalWindData set lastSyncTime = null"); Assert.IsTrue(p.HasMoreData()); Console.WriteLine("TotalReminder: {0} records.", p.Remainder); Assert.IsTrue(p.Remainder > 0); int len = 0; TranMsg[] msgs = p.NextPackages(out len); Assert.IsNotNull(msgs); byte[] buff = msgs[0].Data; Console.WriteLine(ValueHelper.BytesToHexStr(buff, 0, len, "")); // Record 4. Assert.IsTrue(len > 0); // Data Sent p.OnPackageSent(); var ds = sqlHelper.Query("select count(ID) from D_OriginalWindData where lastSyncTime is null"); Assert.AreEqual(0, Convert.ToInt32(ds.Tables[0].Rows[0][0])); }
public void TestSend() { // DAC.Test.Tran.TranDataSenderTester.TestSend Dictionary <string, string> args = new Dictionary <string, string>(); args["PortName"] = "COM1"; //COM6-COM13 args["BaudRate"] = "9600"; args["Parity"] = Convert.ToString((int)Parity.None); args["DataBits"] = "8"; args["StopBits"] = Convert.ToString((int)StopBits.One); args["ReadTimeOut"] = "1"; // 1ms args["sqlitedbcongxml"] = this.path; //SQLite用 args["DataPath"] = "VibData"; //振动用 var provider1 = new DbDacDataProvider(); ITranDataSendDelegator comSender = new ComDataSender { DtuCode = 20120049 }; comSender.Init(args); provider1.Init_Sqlite(args); ITranDataProvider provider2 = new VibFileDataProvider(); provider2.Init(args); TranDataSender sender = new TranDataSender(comSender, provider1, provider2); sender.OnMessageSent += (TranMsg req, TranMsg resp) => { int len = resp.LoadSize; Console.WriteLine("Data received. {0}: {1}", len, ValueHelper.BytesToHexStr(resp.Data)); }; sender.DoWork(); Console.ReadLine(); // SQLiteDataSpliter }
public void TestSpliter() { DbDacDataProvider p = new DbDacDataProvider(); Dictionary <string, string> args = new Dictionary <string, string>(); args.Add("sqlitedbcongxml", this.path); p.Init_Sqlite(args); var d = new SensorOriginalData { AcqTime = System.DateTime.Now, ModuleNo = 12, ChannelNo = 23, Type = ProtocolType.VibratingWire, Values = new double[] { 1924, 12.340000d, 2.340000d } }; byte[] buff = new byte[39]; int writed = p.DataToSegment(d, buff, 0); TranMsg[] msgs = p.Splite(buff, writed); Assert.AreEqual(1, msgs.Length); Console.WriteLine("MSG1={0}", ValueHelper.BytesToHexStr(msgs[0].Marshall())); }