01-19-2009 12:12 PM
01-20-2009 05:37 PM
tfer1226--
I know the NI and CO variables refer to Network Interface and CAN Object, respectively. For instance, here's is an example break down for the acronyms:
[INTERNAL_CHANNEL_QUEUES]
NI_RQL=20
NI_WQL=5
CO_RQL=0
CO_WQL=5
The acronyms are defined by:
NI = Network Interface
CO = CAN Object
R = Read
W = Write
QL= QueueLength
Whenever you make changes, you may have to close and reopen the development environment or reboot your computer in order for changes to take affect. I am not aware of a faster way than that.
Cheers!
--
Tyler C
01-23-2009 06:40 AM
01-23-2009 09:23 AM
First of all, the nicanopt.ini file has defaults that should work for 95 % of the use cases. That means, you should only modify the numbers if you have experienced errors caused by memory limitations in the first place. Said that here some background information about the numbers.
The NI-CAN channel api uses the frame api in the background and therefore has the same memory limitations. The numbers from the file are referring to write and read queues used by the channel api tasks. The driver can roughly configure 300 messages for queues within the shared memory.
Whenever you have tasks that are not periodically (sample rate 0), the NI_RQL and NI_WQL numbers are used to set up the queues for write and read tasks, but only one per port used with your tasks.
For tasks that have a sample rate assigned the CO_RQL and CO_WQL numbers are used to set up the queues for write and read tasks, one queue for every message contained in your task.
In the end if you add all the queue numbers together and you reach over 300, the error informs you about the limitation.
There are exceptions from this rule, which makes it difficult to always get it right but at least you can try, or better leave it with the default values.
DirkW