3 commsmemfree(3) – Campbell Scientific CR1000 Measurement and Control System User Manual
Page 434

Section 10. Troubleshooting
434
CommsMemFree(2) number will be. A PakBusNodes setting of 50 is normally
enough, and can probably be reduced in small networks to free memory, if
needed. Reducing PakBusNodes by one frees 224 bytes. If
CommsMemFree(2) drops and stays down for no apparent reason (a very rare
occurrence), please contact a Campbell Scientific applications engineer since the
CR1000 operating system may need adjustment.
10.4.3.3 CommsMemFree(3)
CommsMemFree(3) Specifies three two-digit fields, from right (least
significant) to left (most significant):
• lilfreeq = "little" IP packets available
• bigfreeq = "big" IP packets available
• rcvdq = IP packets in the received queue (not yet processed)
At start up, with no TCP/IP communication occurring, this field will read 1530,
which is interpreted as 30 lilfreeq and 15 bigfreeq available, with no packets in
rcvdq. The Ethernet and/or the PPP interface feed rcvdq. If
CommsMemFree(3) has a reading of 21428, then two packets are in the received
queue, 14 bigfreeq packets are free (one in use), and 28 lilfreeq are free (two in
use). These three pieces of information are also reported in the IP trace
(p. 457)
information every 30 seconds as lilfreeq, bigfreeq, and recvdq. If lilfreeq or
bigfreeq free packets drop and stay near zero, or if the number in rcvdq climbs
and stays high (all are rare occurrences), please contact a Campbell Scientific
application engineer as the operating system may need adjustment.
CommsMemFree(3) is encoded as follows:
CommsMemFree(3) = lilfreeq + bigfreeq*100 + rcvdq*10000 +
sendq*1000000
where,
lilfreeq = number of small TCP packets available
bigfreeq = number of large TCP packets
rcvdq = number of input packets currently waiting to be serviced
sendq = number of output packets waiting to be sent
The following expressions can be used to pick the values out of the
CommsMemFree(3) variable:
lilfreeq = CommsMemFree(3) % 100
bigfreeq = (CommsMemFree(3) / 100) % 100
rcvdq = (CommsMemFree(3) / 10000) % 100
sendq = (CommsmemFree(3) / 1000000) % 100