public static VehicleScapeAPI.Result Generate(GenerateParameters parameters, uint daqHandle, uint deviceHandle)
        {
            if (daqHandle == 0 || deviceHandle == 0)
            {
                return(VehicleScapeAPI.Result.ResultInvalidHandle);
            }
            // Set up our DAQ
            VehicleScapeAPI.DAQ daq = GetDAQByHandle(daqHandle);
            VehicleScapeAPI.SetDAQProperties(ref daq);

            // Set up our collection
            List <VehicleScapeAPI.DAQCollection> cols = GetDAQCollections(daqHandle);

            if (cols.Count == 0)
            {
                return(VehicleScapeAPI.Result.ResultUnableToSetupForCompile);
            }
            VehicleScapeAPI.DAQCollection col = cols[0];
            col.fileName = parameters.Name;
            col.stopNumMessages.numMessages = parameters.NumberOfMessagesToCollect;
            col.collectionType = VehicleScapeAPI.CollectionType.StartImmediatelyStopNumMessage;
            VehicleScapeAPI.SetDAQCollectionProperties(ref col);

            List <uint> channelHandles = new List <uint>();

            channelHandles.AddRange(parameters.MessageHandles);
            channelHandles.AddRange(parameters.SignalHandles);
            List <VehicleScapeAPI.DAQChannel> channels = new List <VehicleScapeAPI.DAQChannel>();

            // Set up our channels
            foreach (uint handle in channelHandles)
            {
                VehicleScapeAPI.DAQChannel channel = new VehicleScapeAPI.DAQChannel();
                channel.signalHandle = handle;
                VehicleScapeAPI.AddDAQChannel(daqHandle, handle, ref channel);
                VehicleScapeAPI.SetAlwaysCollectDAQChannel(handle);
                channels.Add(channel);
            }

            VehicleScapeAPI.Result retv = VehicleScapeAPI.GenerateCoreMini(daqHandle, deviceHandle);

            // Clear out the channels
            foreach (VehicleScapeAPI.DAQChannel channel in channels)
            {
                VehicleScapeAPI.RemoveDAQChannel(channel.signalHandle);
            }

            return(retv);
        }
Ejemplo n.º 2
0
        private void GenerateButton_Click(object sender, EventArgs e)
        {
            if (GetSelectedDAQHandle() == 0 || GetSelectedDeviceHandle() == 0)
            {
                MessageBox.Show("You must select a DAQ and a device to generate a CoreMini.");
                return;
            }
            UpdateDAQ();
            List <uint> messageHandles = new List <uint>();
            List <uint> signalHandles  = new List <uint>();

            foreach (ListViewItem item in SelectedChannelsListView.Items)
            {
                TagMetadata metadata = (TagMetadata)item.Tag;
                if (metadata.Type == TagMetadata.MetadataType.Message)
                {
                    messageHandles.Add(metadata.Handle);
                }
                else
                {
                    signalHandles.Add(metadata.Handle);
                }
            }

            GenerateParameters parameters = new GenerateParameters(
                messageHandles,
                signalHandles,
                CollectionNameTextBox.Text,
                int.Parse(MessageCountTextBox.Text),
                SleepMode,
                WakeMode,
                double.Parse(BusActivityThresholdTextBox.Text),
                RemoteWakeupCheckBox.Checked,
                StartNewFileOnWakeupCheckBox.Checked,
                double.Parse(OverallTimeoutTextBox.Text),
                double.Parse(ConnectionTimeoutTextBox.Text),
                double.Parse(VoltageCutoffTextBox.Text));

            Log("Generating CoreMini.");
            VehicleScapeAPI.Result result = VehicleScapeInterface.Generate(parameters, GetSelectedDAQHandle(), GetSelectedDeviceHandle());
            Log("Result: " + VehicleScapeAPI.ResultToString(result));
        }