WorkerUpdateBroadcast(Int32, Int32, PcanMessage) Method

Adjusts the configuration of a periodic CAN message from the list of registered Broadcast objects.

Definition

Namespace: Peak.Can.Basic
Assembly: PCANBasic.NET (in PCANBasic.NET.dll) Version: 4.9.0
C#
public bool UpdateBroadcast(
	int index,
	int interval,
	PcanMessage message
)

Parameters

index  Int32
Represents the zero-based index associated to a Broadcast object.
interval  Int32
The desired interval at which the periodic CAN message should be written.
message  PcanMessage
The CAN message to be periodically written.

Return Value

Boolean
true if the Broadcast object was modified; false otherwise.

Example

The following example shows how to update a Broadcast object.

In case of failure, an error messages is written to the console output using English as output language.

C#
// Create the object using the default configuration
//
Worker myWorker = new Worker();

// Create the CAN message to broadcast
//
PcanMessage message = new PcanMessage(0x100, MessageType.Standard, 3, new byte[] { 1, 2, 3 }, false);

// Add the new broadcast using a CAN message and its interval
//
int index = myWorker.AddBroadcast(message, 100);
if (index < 0)
{
    Console.WriteLine("The broadcast couldn't be configured.");
}
else
{
    Console.WriteLine($"The broadcast object with index '{index}' was configured successfully.");

    try
    { 
        // Activate the worker object
        //
        myWorker.Start();
        Console.WriteLine("The Worker object was activated successfully.");

        // Wait sometime for the message to be sent several times
        //
        Console.WriteLine("Broadcast is working....");
        System.Threading.Thread.Sleep(5000);

        // Update the CAN message being sent and its interval
        //
        message.ID = 0x200;
        message.DLC = 8;
        message.Data = new byte[] { 8, 7, 6, 5, 4, 3, 2, 1 };
        if (myWorker.UpdateBroadcast(index, 1000, message))
        {
            Console.WriteLine($"The broadcast object with index '{index}' was successfully updated.");

            // Wait sometime for the message to be sent several times
            //
            Console.WriteLine("Broadcast is working....");
            System.Threading.Thread.Sleep(5000);
        }
        else
        {
            Console.WriteLine($"The broadcast object with index '{index}' couldn't be updated.");
        }

        // Deactivate the worker object, when it is no longer needed
        //
        myWorker.Stop();
        Console.WriteLine("The Worker object was deactivated.");
    }
    catch(Exception ex)
    {
        Console.WriteLine($"An exception occurred by activating the Worker object. {ex.Message}");
    }
}

Exceptions

IndexOutOfRangeExceptionThe index parameter value is out of range. This must be in the range [0...MaximumBroadcastCount-1].
ArgumentOutOfRangeExceptionThe interval parameter value is out of range. This must be in the range [1...MaxValue].

See Also