public void WriteMultipCoils_MakeSureWeDoNotWriteRemainder() { // 0, false initialized data store var dataStore = DataStoreFactory.CreateDefaultDataStore(); var request = new WriteMultipleCoilsRequest(1, 0, new DiscreteCollection(Enumerable.Repeat(true, 8).ToArray())) { NumberOfPoints = 2 }; ModbusSlave.WriteMultipleCoils(request, dataStore, dataStore.CoilDiscretes); Assert.AreEqual(dataStore.CoilDiscretes.Slice(1, 8).ToArray(), new [] { true, true, false, false, false, false, false, false }); }
public IDatastore GetDatastoreB() { IDatastore store = DataStoreFactory.GetDatastore(); store.AddColumn(new ColumnMetadata("TableBColA")); store.AddColumn(new ColumnMetadata("TableBColB")); store.AddColumn(new ColumnMetadata("TableBFull")); store.AddData(new object[] { "A", "B", "A_B" }); store.AddData(new object[] { "A", null, "A_Null" }); store.AddData(new object[] { "A", "B", "A_B_2" }); return(store); }
public void TestReadMapping() { DataStore dataStore = DataStoreFactory.CreateDefaultDataStore(); dataStore.HoldingRegisters.Insert(1, 45); dataStore.HoldingRegisters.Insert(2, 42); Assert.Equal(45, DataStore.ReadData <RegisterCollection, ushort>(dataStore, dataStore.HoldingRegisters, 0, 1, new object()) [0]); Assert.Equal(42, DataStore.ReadData <RegisterCollection, ushort>(dataStore, dataStore.HoldingRegisters, 1, 1, new object()) [0]); }
public void DataStoreAddSubjectTestSuccess() { this.CreateDataFile(); DataStoreFactory target = new DataStoreFactory(); // TODO: Initialize to an appropriate value target.DataStore.AddSubject(new TestSubject() { FirstName = "m.", LastName = "mathers", Email = "test@test", Password = "******" }); int newCount = target.DataStore.GetData(new PageOptions()).Total; Assert.IsTrue(newCount > 1); }
public void TestInit() { SQLitePCL.Batteries_V2.Init(); var loggerFactory = new Microsoft.Extensions.Logging.LoggerFactory(); var logger = loggerFactory.CreateLogger(nameof(KeyValueLite)); //Clear db //var dbPath = dsFactory.GetDataStorePathName(nameof(KeyValueLite)); //File.Delete(dbPath); var dsFactory = new DataStoreFactory(new GenericPlatformService()); cacheService = new KeyValueLite(dsFactory, new KeyValueItemSytemTextJsonSerializer(), logger); }
private IDatastore GetContactsDatastore() { IDatastore dataObject = DataStoreFactory.GetDatastore(); dataObject.AddColumn(new ColumnMetadata("FirstName")); dataObject.AddColumn(new ColumnMetadata("LastName")); dataObject.AddColumn(new ColumnMetadata("City")); dataObject.AddColumn(new ColumnMetadata("ID")); dataObject.AddData(new object[] { "Peter", "Widmer", "Wettingen", 1001 }); dataObject.AddData(new object[] { "Joachim", "Suter", "Dättwil", 1002 }); return(dataObject); }
public void CreateDataStoreNotImplementedTypeTest() { var Logger = new LoggerMock(); DataStoreType[] types = new DataStoreType[] { DataStoreType.EXCEL, DataStoreType.SQL }; foreach (DataStoreType type in types) { Config.StoreType = type; Assert.ThrowsException <NotImplementedException>( () => DataStoreFactory.CreateDataStore(Config, Logger) ); } }
private IDatastore GetPersonDatastore() { IDatastore store = DataStoreFactory.GetDatastore(); store.AddColumn(new ColumnMetadata("PersonId")); store.AddColumn(new ColumnMetadata("Firstname")); store.AddColumn(new ColumnMetadata("Lastname")); store.AddData(new object[] { 1, "Simon", "Miller" }); store.AddData(new object[] { 2, "Frank", "Houston" }); store.AddData(new object[] { 3, "Jill", "Smith" }); store.AddData(new object[] { 4, "Gregory", "Thomson" }); return(store); }
private void Run_MCU_server_thread() { byte slaveId = 1; // create and start the TCP slave MCU_Modbusserver = ModbusTcpSlave.CreateTcp(slaveId, MCU_TCPListener); //coils, inputs, holdingRegisters, inputRegisters MCU_Modbusserver.DataStore = DataStoreFactory.CreateDefaultDataStore(0, 0, 1054, 0); // PLC_Modbusserver.DataStore.SyncRoot.ToString(); //MCU_Modbusserver.ModbusSlaveRequestReceived += new EventHandler<ModbusSlaveRequestEventArgs>(Server_Read_handler); //MCU_Modbusserver.DataStore.DataStoreWrittenTo += new EventHandler<DataStoreEventArgs>(Server_Written_to_handler); MCU_Modbusserver.Listen(); // prevent the main thread from exiting ushort[] previos_out, current_out; previos_out = Copy_modbus_registers(1025, 20); while (runsimulator) { current_out = Copy_modbus_registers(1025, 20); if (!current_out.SequenceEqual(previos_out)) { handleCMD(current_out); //Console.WriteLine("data changed"); } if (mooving) { if (distAZ != 0 || distEL != 0) { int travAZ = (distAZ < -AZ_speed) ? -AZ_speed : (distAZ > AZ_speed) ? AZ_speed : distAZ; int travEL = (distEL < -EL_speed) ? -EL_speed : (distEL > EL_speed) ? EL_speed : distEL; move(travAZ, travEL); } else { mooving = false; MCU_Modbusserver.DataStore.HoldingRegisters[1] = (ushort)(MCU_Modbusserver.DataStore.HoldingRegisters[1] | 0x0080); } } if (jogging) { move(AZ_speed, EL_speed); } previos_out = current_out; Thread.Sleep(50); } }
public void ModbusUdpSlave_MultiThreaded() { DataStore?dataStore = DataStoreFactory.CreateDefaultDataStore(); dataStore.CoilDiscretes.Add(false); using UdpClient? slave = CreateAndStartUdpSlave(502, dataStore); Thread?workerThread1 = new(ReadThread); Thread?workerThread2 = new(ReadThread); workerThread1.Start(); workerThread2.Start(); workerThread1.Join(); workerThread2.Join(); }
public Node(int id, int port, string typeStr) { _id = id; _port = port; _typeStr = typeStr; _name = id.ToString() + "#设备"; _dataStore = DataStoreFactory.CreateDefaultDataStore(); _status = "服务未启动"; string errStr = ""; if (!initNodeData(ref errStr)) { string outStr = "[" + _name + "]" + "CSV数据解析失败! \n请检查" + typeStr + ".CSV \n"; outStr += errStr; MessageBox.Show(outStr, "出错了", MessageBoxButtons.OK, MessageBoxIcon.Error); //用风机类型初始化数据 } }
public void ModbusUdpSlave_MultiThreaded() { var dataStore = DataStoreFactory.CreateDefaultDataStore(); dataStore.CoilDiscretes.Add(false); using (var slave = CreateAndStartUdpSlave(502, dataStore)) { var workerThread1 = new Thread(ReadThread); var workerThread2 = new Thread(ReadThread); workerThread1.Start(); workerThread2.Start(); workerThread1.Join(); workerThread2.Join(); } }
public void GeneralLoadTestSharepoint() { var configuration = new LoadFromSharepointConfiguration() { ListName = "My Test List", CamlQueryViewXml = "<View><Query><Where><Geq><FieldRef Name='ID'/><Value Type='Number'>1</Value></Geq></Where></Query><RowLimit>100</RowLimit></View>" }; IDataSource loadFromDynamicsCrm = new LoadFromSharepoint() { Configuration = configuration }; IDatastore dataObject = DataStoreFactory.GetDatastore(); loadFromDynamicsCrm.LoadData(connection, dataObject, ReportProgressMethod); }
public void GeneralLoadTestExcel() { ConnectToExcelConfiguration configuration = new ConnectToExcelConfiguration(); configuration.FilePath = @"TestData\LoadFromExcel\TestData.xlsx"; configuration.SheetName = "Contacts"; IConnection excelConnection = new ConnectToExcel() { Configuration = configuration }; IDataSource loadFromExcel = new LoadFromExcel(); IDatastore dataObject = DataStoreFactory.GetDatastore(); loadFromExcel.LoadData(excelConnection, dataObject, ReportProgressMethod); }
public IDatastore TransformData(IConnection connection, IDatabaseInterface databaseInterface, IDatastore datastore1, IDatastore datastore2, ReportProgressMethod reportProgress) { IDatastore resultDatastore = DataStoreFactory.GetDatastore(); InitializeOutputColumnsConfiguration(); InitializeResultDatastore(resultDatastore); AnalyzeDatastores(datastore1, datastore2); BuildDatastoreKeys(); JoinDatastoreRecords(resultDatastore); if (mappingHasBeenReversed) { ReverseMapping(); // Reverse it back mappingHasBeenReversed = false; } return(resultDatastore); }
private void ConfigureSensors() { mDataStore = DataStoreFactory.CreateDefaultDataStore(0, 0, 1200, 1200); mSensors = new List <Sensor> { new Sensor(SensorName.Filter(SignalName.Pressure), mSignals), new Sensor(SensorName.Steering(SignalName.Pressure), mSignals), new Sensor(SensorName.Cabel(SignalName.Pressure), mSignals), new Sensor(SensorName.Brake(SignalName.Pressure), mSignals), new Sensor(SensorName.Tank(SignalName.Level), mSignals), new Sensor(SensorName.Tank(SignalName.Temperature), mSignals) }; mKeyboard = mSignals.GetSignal(SensorName.Keyboard()); //mSignals.GetSignal(SensorName.Tank(SignalName.Level)).OnUpdate += signal => Console.WriteLine("Level: {0}", signal.Value); Keyboard.Init(mKeyboard); }
private void startButton_Click(object sender, EventArgs e) { if (logoDriver.status == LogoStatus.Offline) { IPAddress address; if (onlyLocal_checkBox1.Checked) { address = new IPAddress(new byte[] { 127, 0, 0, 1 }); } else { try { address = IPAddress.Parse((String)addressBox.SelectedItem); } catch (ArgumentNullException ex) { address = new IPAddress(new byte[] { 127, 0, 0, 1 }); } } if (!logoDriver.start()) { MessageBox.Show("Der Ausgewählte Com-Port ist belegt."); } else { slaveTcpListener = new TcpListener(address, int.Parse(portBox.Text)); modbusSlave = ModbusTcpSlave.CreateTcp(1, slaveTcpListener); // Datenspeicher/Prozessabbild initalisieren. modbusSlave.DataStore = DataStoreFactory.CreateDefaultDataStore(); logoDriver.modbusSlave = modbusSlave; slaveThread = new Thread(modbusSlave.Listen); slaveThread.Start(); startButton.Text = "Trennen"; } } else { logoDriver.stop(); startButton.Text = "Verbinden"; modbusSlave.Dispose(); slaveTcpListener.Stop(); } }
/// <summary> /// Simple Modbus TCP slave example. /// </summary> public static void StartModbusTcpSlave() { byte slaveId = 1; int port = 502; IPAddress address = new IPAddress(new byte[] { 127, 0, 0, 1 }); // create and start the TCP slave TcpListener slaveTcpListener = new TcpListener(address, port); slaveTcpListener.Start(); ModbusSlave slave = ModbusTcpSlave.CreateTcp(slaveId, slaveTcpListener); slave.DataStore = DataStoreFactory.CreateDefaultDataStore(); slave.Listen(); // prevent the main thread from exiting Thread.Sleep(Timeout.Infinite); }
/// <summary> /// Simple Modbus serial RTU slave example. /// </summary> public static void StartModbusSerialRtuSlave() { using (SerialPort slavePort = new SerialPort("COM2")) { // configure serial port slavePort.BaudRate = 9600; slavePort.DataBits = 8; slavePort.Parity = Parity.None; slavePort.StopBits = StopBits.One; slavePort.Open(); byte unitId = 1; // create modbus slave ModbusSlave slave = ModbusSerialSlave.CreateRtu(unitId, slavePort); slave.DataStore = DataStoreFactory.CreateDefaultDataStore(); slave.Listen(); } }
public ModbusTCPSlaveDevice(Project theProject) { mProject = theProject; // TODO: make ID and port properties and "start" object after fully initialized (register as needing "start" after config fully processed? add a method to all objects which gets called after object is fully config'ed? byte slaveID = 1; int port = 502; //IPAddress address = new IPAddress(new byte[] { 127, 0, 0, 1 }); // create and start the TCP slave TcpListener slaveTcpListener = new TcpListener(port); slaveTcpListener.Start(); mSlave = ModbusTcpSlave.CreateTcp(slaveID, slaveTcpListener); mSlave.DataStore = DataStoreFactory.CreateDefaultDataStore(); Thread slaveThread = new Thread(mSlave.Listen); slaveThread.Start(); theProject.globalModbusSlave = this; }
public static IDatastore LoadExcelsheet(string sheetPath, string sheetName) { ConnectToExcelConfiguration configuration = new ConnectToExcelConfiguration(); configuration.FilePath = sheetPath; configuration.SheetName = sheetName; IConnection excelConnection = new ConnectToExcel() { Configuration = configuration }; IDataSource loadFromExcel = new LoadFromExcel(); IDatastore dataStore = DataStoreFactory.GetDatastore(); loadFromExcel.LoadData(excelConnection, dataStore, ReportProgressMethod); return(dataStore); }
public void DataStoreReadFromEvent_ReadHoldingRegisters() { DataStore dataStore = DataStoreFactory.CreateTestDataStore(); bool readFromEventFired = false; bool writtenToEventFired = false; dataStore.DataStoreReadFrom += (obj, e) => { readFromEventFired = true; Assert.AreEqual(3, e.StartAddress); Assert.AreEqual(new ushort[] { 4, 5, 6 }, e.Data.B.ToArray()); Assert.AreEqual(ModbusDataType.HoldingRegister, e.ModbusDataType); }; dataStore.DataStoreWrittenTo += (obj, e) => writtenToEventFired = true; DataStore.ReadData <RegisterCollection, ushort>(dataStore, dataStore.HoldingRegisters, 3, 3, new object()); Assert.IsTrue(readFromEventFired); Assert.IsFalse(writtenToEventFired); }
public void DataStoreReadFromEvent_ReadInputs() { DataStore dataStore = DataStoreFactory.CreateTestDataStore(); bool readFromEventFired = false; bool writtenToEventFired = false; dataStore.DataStoreReadFrom += (obj, e) => { readFromEventFired = true; Assert.AreEqual(4, e.StartAddress); Assert.AreEqual(new bool[] { false }, e.Data.A.ToArray()); Assert.AreEqual(ModbusDataType.Input, e.ModbusDataType); }; dataStore.DataStoreWrittenTo += (obj, e) => writtenToEventFired = true; DataStore.ReadData <DiscreteCollection, bool>(dataStore, dataStore.InputDiscretes, 4, 1, new object()); Assert.IsTrue(readFromEventFired); Assert.IsFalse(writtenToEventFired); }
public void DataStoreReadFromEvent_ReadInputRegisters() { DataStore dataStore = DataStoreFactory.CreateTestDataStore(); bool readFromEventFired = false; bool writtenToEventFired = false; dataStore.DataStoreReadFrom += (obj, e) => { readFromEventFired = true; Assert.Equal(4, e.StartAddress); Assert.Equal(new ushort[] {}, e.Data.B.ToArray()); Assert.Equal(ModbusDataType.InputRegister, e.ModbusDataType); }; dataStore.DataStoreWrittenTo += (obj, e) => writtenToEventFired = true; dataStore.ReadData <RegisterCollection, ushort>(dataStore.InputRegisters, 4, 0, new object()); Assert.True(readFromEventFired); Assert.False(writtenToEventFired); }
static void Initialization(Configuration config) { Logger = new Logger.Logger(config.LogPath, new TimeProvider()); Logger.Log("Logger initialized"); Reader = InputProviderFactory.CreateInputReader(config); Logger.Log("Reader of type " + Reader.GetType().Name + " initialized"); Driver = new InternetExplorerDriver("Resources/"); Logger.Log("InternetExplorerDriver initialized"); Parsers = new List <IAbstractSiteParser>() { //new Auto911Parser("http://911auto.com.ua/search/", Driver, Logger), //new AutoKlad("SiteParser/IE Driver/", Logger) }; Logger.Log("Site parsers initialized"); Store = DataStoreFactory.CreateDataStore(config, Logger); Logger.Log("DataStore of type " + Store.GetType() + "Initialized"); }
/// <summary> /// Simple Modbus serial ASCII slave example. /// </summary> public static void StartModbusSerialAsciiSlave() { using (SerialPort slavePort = new SerialPort("COM2")) { // configure serial port slavePort.BaudRate = 9600; slavePort.DataBits = 8; slavePort.Parity = Parity.None; slavePort.StopBits = StopBits.One; slavePort.Open(); byte unitId = 1; var adapter = new SerialPortAdapter(slavePort); // create modbus slave ModbusSlave slave = ModbusSerialSlave.CreateAscii(unitId, adapter); slave.DataStore = DataStoreFactory.CreateDefaultDataStore(); slave.ListenAsync().GetAwaiter().GetResult(); } }
public void Test_RelateContactsWithInvoice() { Entity contact = Test_Helpers.CreateDummyContact(); Guid contactId = organizationService.Create(contact); Entity invoice = Test_Helpers.CreateDummyInvoice(); Guid invoiceId = organizationService.Create(invoice); WriteToDynamicsCrmN2NConfiguration writeToDynamicsCrmN2NConfig = new WriteToDynamicsCrmN2NConfiguration(); writeToDynamicsCrmN2NConfig.MultipleFoundMode = N2NMultipleFoundMode.None; writeToDynamicsCrmN2NConfig.Entity1Name = "contact"; writeToDynamicsCrmN2NConfig.Entity1Mapping = new List <DataMapping>() { new DataMapping("FirstName", "firstname") }; writeToDynamicsCrmN2NConfig.Entity2Name = "invoice;contactinvoices_association"; writeToDynamicsCrmN2NConfig.Entity2Mapping = new List <DataMapping>() { new DataMapping("InvoiceNo", "invoicenumber") }; writeToDynamicsCrmN2NConfig.ConfigurationId = Guid.NewGuid(); writeToDynamicsCrmN2NConfig.SelectedConnectionConfigurationId = Test_Helpers.CRMCONNECTIONID; IDatastore dataObject = DataStoreFactory.GetDatastore(); dataObject.AddColumn(new ColumnMetadata("FirstName")); dataObject.AddColumn(new ColumnMetadata("InvoiceNo")); dataObject.AddData(new object[] { contact["firstname"], invoice["invoicenumber"] }); IModule module = Activator.CreateInstance(typeof(WriteToDynamicsCrmN2N)) as IModule; module.SetConfiguration(writeToDynamicsCrmN2NConfig); ((IDataTarget)module).WriteData(connection, new DummyDatabaseInterface(), dataObject, Test_Helpers.ReportProgressMethod); organizationService.Delete("contact", contactId); organizationService.Delete("invoice", invoiceId); }
public void DataStoreWrittenToEvent_WriteHoldingRegisters() { DataStore dataStore = DataStoreFactory.CreateTestDataStore(); bool readFromEventFired = false; bool writtenToEventFired = false; dataStore.DataStoreWrittenTo += (obj, e) => { writtenToEventFired = true; Assert.AreEqual(3, e.Data.B.Count); Assert.AreEqual(0, e.StartAddress); Assert.AreEqual(new ushort[] { 5, 6, 7 }, e.Data.B.ToArray()); Assert.AreEqual(ModbusDataType.HoldingRegister, e.ModbusDataType); }; dataStore.DataStoreReadFrom += (obj, e) => readFromEventFired = true; DataStore.WriteData(dataStore, new RegisterCollection(5, 6, 7), dataStore.HoldingRegisters, 0, new object()); Assert.IsFalse(readFromEventFired); Assert.IsTrue(writtenToEventFired); }
public void DataStoreWrittenToEvent_WriteCoils() { DataStore dataStore = DataStoreFactory.CreateTestDataStore(); bool readFromEventFired = false; bool writtenToEventFired = false; dataStore.DataStoreWrittenTo += (obj, e) => { writtenToEventFired = true; Assert.AreEqual(3, e.Data.A.Count); Assert.AreEqual(4, e.StartAddress); Assert.AreEqual(new [] { true, false, true }, e.Data.A.ToArray()); Assert.AreEqual(ModbusDataType.Coil, e.ModbusDataType); }; dataStore.DataStoreReadFrom += (obj, e) => readFromEventFired = true; DataStore.WriteData(dataStore, new DiscreteCollection(true, false, true), dataStore.CoilDiscretes, 4, new object()); Assert.IsFalse(readFromEventFired); Assert.IsTrue(writtenToEventFired); }
/// <summary> /// Simple Modbus TCP slave example. /// </summary> public void StartModbusTcpSlave() { byte slaveId = 1; int port = 502; IPAddress address = new IPAddress(new byte[] { 127, 0, 0, 1 }); // create and start the TCP slave TcpListener slaveTcpListener = new TcpListener(address, port); slaveTcpListener.Start(); ModbusSlave slave = ModbusTcpSlave.CreateTcp(slaveId, slaveTcpListener); slave.DataStore = DataStoreFactory.CreateDefaultDataStore(); slave.ListenAsync().GetAwaiter().GetResult(); }