Parser Problems =============== .. contents:: Table of Contents :local: The parser is used to stream multicasted data packets from the board into KST-readable "dir" files. The parser lives at ``pydfmux/firmware/mcgill/x86_64/parser`` The syntax is: :: $ ./parser -d /path/to/desired/dirfile/directory .. note:: Although useful as a light-weight and self-contained tool to stream data, this tool has now been superseded by the ``SPT3G_software`` tools at https://github.com/SouthPoleTelescope/spt3g_software . An example of how to use the "3G"-type streamer to create KST-readable files may be found: https://github.com/SouthPoleTelescope/spt3g_software/blob/master/examples/ledgerman.py File is missing from git, or is only a symlink ---------------------------------------------- The actual parser file is a binary, and so we do not store it in git directly. To pull down the actual file you need git-annex. To install and enable git-annex do the following from within the pydfmux directory: :: $ sudo apt-get install git-annex $ export AWS_ACCESS_KEY_ID=AKIAJEZIY2BA3HPBJBWQ $ export AWS_SECRET_ACCESS_KEY=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 $ git annex enableremote cloud To pull down binary files stored in git-annex do the following: :: $ git-annex get pydfmux/firmware/mcgill/x86_64/parser Be sure to change the permissions to be executible with ``sudo chmod +x parser`` DIR files are made, but are empty --------------------------------- You may need to teach your control computer where to find the multicast streams: :: $ sudo route add -net 224.0.0.0 netmask 240.0.0.0 eth1 Where eth1 should be whichever network adaptor is plugged into the network shared by the iceboards. .. warning:: This configuration should be present by default if you have correctly set your "option routers" in the dhcp config file of your host computer. Doing this temporarily erases the default multicasting route and will interrupt data transfer before the new one is enabled. If you are using NetBoot this shouldn't be necessary, and may screw things up. "Too many open files" --------------------- If you try and run the parser but get many, many, of the following errors: :: GetData: Error accessing 192_168_1_228_m8/192_168_1_228_m8_irig_sbs: Too many open files You need to change the file-descriptor or open-file limit on your machine. You will need at least one open stream per i and q 'channel', including additional streams for IRIG and such. Ballpark 1,100 per IceBoard. You can see your limits using: :: $ ulimit -a To temporarily change the limits: :: $ ulimit -n 65536 There are various ways simple ways to make this a permanent change, depending on your OS. Relevant buzz-sentence is "increase file descriptor limits". Frequencies and Sampling Rates ------------------------------ The Sampling rate of the multicasted packets (which are grabbed by the parser) is given by: .. math:: \frac{ 20^{6}}{2048} \times \frac{ 1 }{ 2^{FIR}} Where FIR is the FIR stage. We typically run at FIR 6, which corresponds to approximately 152 Hz.