예제 #1
0
파일: MainForm.cs 프로젝트: Ankitvaibs/SM
        private void cmbDevices_SelectedIndexChanged(object sender, EventArgs e)
        {
            if ((SelectedDevice == null) || (Devices.ContainsKey(SelectedHubDeviceId) && SelectedDevice.Id != SelectedHubDeviceId))
            {
                if (DeviceInstance.Connected)
                {
                    if (DeviceInstance.Disconnect())
                    {
                        buttonSend.Enabled = false;
                    }
                }

                // Initialize IoT Hub client
                DeviceInstance = new DeviceSimulator();

                // Attach receive callback for alerts
                DeviceInstance.ReceivedMessageEventHandler += DeviceInstanceReceivedMessage;
                DeviceInstance.SentMessageEventHandler     += DeviceInstance_SentMessageEventHandlerBacNet;

                SelectedDevice = Devices[SelectedHubDeviceId];
                Connect(SelectedDevice.ConnectionString);
            }
            else
            {
                buttonSend.Enabled = true;
            }
        }
예제 #2
0
        private void toolStripButton_Remove_Click(object sender, EventArgs e)
        {
            if (simulator_DataGridView.SelectedRows.Count == 1)
            {
                DeviceSimulator simulator = simulator_DataGridView.SelectedRows[0].DataBoundItem as DeviceSimulator;

                var dialogResult = MessageBox.Show
                                   (
                    $"Removing Device Simulator '{simulator.AssetId}'.  Do you want to continue?",
                    "Delete Device Simulator",
                    MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question

                                   );

                if (dialogResult == DialogResult.Yes)
                {
                    using (AssetInventoryContext context = DbConnect.AssetInventoryContext())
                    {
                        Asset asset = context.Assets.FirstOrDefault(n => n.AssetId == simulator.AssetId);
                        context.Assets.Remove(asset);
                        context.SaveChanges();
                    }
                    RefreshData();
                }
            }
        }
        public DeviceSimulatorTests()
        {
            moqSerialConnection = new Mock <ISerialConnection>();

            serialConfig = new SerialDeviceConfig
            {
                CommPortName = "COM9"
            };

            deviceInformation = new DeviceInformation()
            {
                ComPort               = "COM9",
                Manufacturer          = "Simulator",
                Model                 = "SimCity",
                SerialNumber          = "CEEEDEADBEEF",
                ProductIdentification = "SIMULATOR",
                VendorIdentifier      = "BADDCACA"
            };

            subject = new DeviceSimulator();

            using (IKernel kernel = new StandardKernel())
            {
                kernel.Settings.InjectNonPublic = true;
                kernel.Settings.InjectParentPrivateProperties = true;

                kernel.Bind <ISerialConnection>().ToConstant(moqSerialConnection.Object).WithConstructorArgument(deviceInformation);
                kernel.Inject(subject);
            }
        }
예제 #4
0
 public Example(IProjectionContext projectionContext, MeasurementReadByDeviceTypePartitionerProjection projection, EventReader eventReader, DeviceSimulator deviceSimulator, IConsole console)
 {
     _projectionContext = projectionContext;
     _projection        = projection;
     _eventReader       = eventReader;
     _deviceSimulator   = deviceSimulator;
     _console           = console;
 }
예제 #5
0
 public Example(MeasurementReadCounterProjection projection, MeasurementReadCounterQuery counterQuery, EventReader eventReader, DeviceSimulator deviceSimulator, IConsole console)
 {
     _projection      = projection;
     _counterQuery    = counterQuery;
     _eventReader     = eventReader;
     _deviceSimulator = deviceSimulator;
     _console         = console;
 }
예제 #6
0
 public Example(IProjectionContext projectionContext, MeasurementReadAveragePerDayProjection projection, EventReader eventReader, DeviceSimulator deviceSimulator, IConsole console, MeasurementReadAveragePerDayQuery query)
 {
     _projectionContext = projectionContext;
     _projection        = projection;
     _eventReader       = eventReader;
     _deviceSimulator   = deviceSimulator;
     _console           = console;
     _query             = query;
 }
예제 #7
0
        private void toolStripButton_Reservation_Click(object sender, EventArgs e)
        {
            if (simulator_DataGridView.SelectedRows.Count == 1)
            {
                DeviceSimulator simulator = simulator_DataGridView.SelectedRows[0].DataBoundItem as DeviceSimulator;

                using (var form = new AssetReservationListForm <DeviceSimulator>(simulator))
                {
                    form.ShowDialog();
                }
            }
        }
예제 #8
0
        private static AssetDetail CreateAssetDetail(Asset asset, AssetReservationResult testAsset)
        {
            Printer printer = asset as Printer;

            if (printer != null)
            {
                return(CreatePrintDeviceDetail(testAsset, printer));
            }

            VirtualPrinter virtualPrinter = asset as VirtualPrinter;

            if (virtualPrinter != null)
            {
                return(CreatePrintDeviceDetail(testAsset, virtualPrinter));
            }

            Camera camera = asset as Camera;

            if (camera != null)
            {
                return(CreateCameraDetail(testAsset, camera));
            }

            DeviceSimulator simulator = asset as DeviceSimulator;

            if (simulator != null)
            {
                if (simulator.SimulatorType.Equals("Jedi", StringComparison.InvariantCultureIgnoreCase))
                {
                    return(CreateJediSimulatorDetail(testAsset, simulator));
                }
                else
                {
                    return(CreateSiriusSimulatorDetail(testAsset, simulator));
                }
            }

            MobileDevice mobileDevice = asset as MobileDevice;

            if (mobileDevice != null)
            {
                return(CreateMobileDeviceDetail(testAsset, mobileDevice));
            }

            // If we get to this point, just create a plain old asset
            return(new AssetDetail(testAsset.AssetId, testAsset.AvailabilityStart, testAsset.AvailabilityEnd));
        }
예제 #9
0
        private void toolStripButton_Edit_Click(object sender, EventArgs e)
        {
            if (simulator_DataGridView.SelectedRows.Count == 1)
            {
                DeviceSimulator simulator = simulator_DataGridView.SelectedRows[0].DataBoundItem as DeviceSimulator;

                //Display the Simulator for editing.
                using (SimulatorEditForm form = new SimulatorEditForm(simulator.AssetId))
                {
                    DialogResult result = form.ShowDialog();
                    if (result == DialogResult.OK)
                    {
                        RefreshData();
                    }
                }
            }
        }
예제 #10
0
 private void CleanupAssetHostsHandler(DeviceSimulator simulatorMachine)
 {
     using (var machine = new ManagedMachine(simulatorMachine.VirtualMachine, ManagedMachineType.WindowsVirtual))
     {
         try
         {
             MachineStop.Run(machine.Name, () =>
             {
                 if (machine.IsPoweredOn())
                 {
                     machine.Shutdown(wait: true);
                 }
             });
         }
         catch (Exception ex)
         {
             TraceFactory.Logger.Error(ex.Message);
         }
     }
 }
예제 #11
0
        private void toolStripButton_New_Click(object sender, EventArgs e)
        {
            //Create a new Simulator
            DeviceSimulator simulator = new DeviceSimulator()
            {
                AssetId         = string.Empty,
                AssetType       = "DeviceSimulator",
                Capability      = 0, //Default to no capabilities selected
                Address         = string.Empty,
                VirtualMachine  = string.Empty,
                FirmwareVersion = string.Empty,
                SimulatorType   = string.Empty
            };

            //Display the new Simulator for editing.
            using (SimulatorEditForm form = new SimulatorEditForm(simulator))
            {
                DialogResult result = form.ShowDialog();
                if (result == DialogResult.OK)
                {
                    RefreshData();
                }
            }
        }
예제 #12
0
 public void DiscoverDevice_ShouldReturnTrue_WhenSimulatorDeviceProviderReturnsSimulatorDevice()
 {
     Devices.Common.Interfaces.ICardDevice device = new DeviceSimulator();
     mockDeviceProvider.Setup(e => e.GetDevice(It.IsAny <string>())).Returns(device);
     Assert.True(subject.DiscoverDevices(StringValueAttribute.GetStringValue(DeviceType.Simulator)));
 }
예제 #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SimulatorEditForm"/> class.
 /// Retrieves the <see cref="DeviceSimulator"/> from the database.
 /// </summary>
 /// <param name="simulatorId">The ID of the DeviceSimulator to retrieve and display.</param>
 public SimulatorEditForm(string simulatorId)
 {
     Initialize();
     _simulator = _context.Assets.FirstOrDefault(x => x.AssetId == simulatorId) as DeviceSimulator;
 }
예제 #14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SimulatorEditForm"/> class.
 /// Launches form with specified <see cref="DeviceSimulator"/>.
 /// Treats the printer as new.
 /// </summary>
 /// <param name="simulator">The simulator to display.</param>
 public SimulatorEditForm(DeviceSimulator simulator)
 {
     Initialize();
     _simulator = simulator;
 }
예제 #15
0
 private static SiriusSimulatorDetail CreateSiriusSimulatorDetail(AssetReservationResult asset, DeviceSimulator simulator)
 {
     return(new SiriusSimulatorDetail(asset.AssetId, asset.AvailabilityStart, asset.AvailabilityEnd)
     {
         Address = simulator.Address,
         Product = simulator.Product,
         AdminPassword = simulator.Password,
         Availability = asset.Availability
     });
 }
예제 #16
0
 private static JediSimulatorDetail CreateJediSimulatorDetail(AssetReservationResult asset, DeviceSimulator simulator)
 {
     return(new JediSimulatorDetail(asset.AssetId, asset.AvailabilityStart, asset.AvailabilityEnd)
     {
         Address = simulator.Address,
         Product = simulator.Product,
         MachineName = simulator.VirtualMachine,
         AdminPassword = simulator.Password,
         Availability = asset.Availability
     });
 }