diff --git a/README.md b/README.md index 0dd3ad6..de43b89 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ functions, or build simple utilities based on them, with a flexible sets of parameters. The primary parameter file is `src/cwtest/cfg/main.cfg`. -# MIDI +# MIDI - MIDI Device Manager CLI Label | Source File | Function ------------------|----------------------|-------------- @@ -52,77 +52,112 @@ latency of the device by comparing the time between MIDI events as generated by the device to the actual time between the events in the MIDI file. -## Serial +CLI Label | Source File | Function +------------------|----------------------|-------------- +midifile | cwMidiFile.cpp | test() + +MIDI file utility parameters: + +Convert a MIDI file to a CSV file. +``` +csv: { midiFn: csvFn: } +``` + +Print the first MIDI messages from a file. +``` +rpt_beg_end: { midi_fname:, msgCnt:, note_on_only_fl: } +``` + +Print the entire contents of the MIDI file. +``` +rpt : { midiFn: } +``` + +Convert all the MIDI files in the folder: `//take/'record_%i'` to CSV files +``` +batch_convert: { io_dir:, session_dir:, take_begin:, take_end: print_warnings_flag: } +``` + + + + + +## Serial - Serial Port Manager CLI Label | Source File | Function ------------------|----------------------|--------------------- -serialSrv | cwSerialPortSrv.cpp | esrialPortSrvTest() +serialSrv | cwSerialPortSrv.cpp | sesrialPortSrvTest() This is an interactive test of the serial port send/receive functions. -The function continuously transmits ASCII values '0' through 'z' to external devices `/dev/ttyACM0` and '/dev/ttyACM1`. +The function continuously transmits ASCII values '0' through 'z' to external devices `/dev/ttyACM0` and `/dev/ttyACM1`. Those devices should increment the received value and send it back, where it is receieved and printed to the console. Firmware to run on ATMEGA328 based devices, like the Arduino Uno, is provided in `study/serial/arduino_xmt_recv/main.c`. -## wesockSrv +## wesockSrv - Web Sockets Server -``` -cwtest ~/src/cwtest/src/cwtest/cfg/main.cfg websockSrv -``` +CLI Label | Source File | Function +------------------|----------------------|--------------------- +websockSrv | cwWebSockSvr.cpp | websockSrvTest() -See `websockSrvTest()` in `cwWebSockSvr.cpp`. Interactive websocket server testing application. Run the app and navigate in a web browser to `localhost:5687` to run the application. -## nbmpscQueue +## nbmpscQueue - Non-Blocking Multiple Producer Single Consumer Queue -``` -cwtest ~/src/cwtest/src/cwtest/cfg/main.cfg nbmpscQueue -``` - -See `test()` in cwNbMpScQueue.cpp. +CLI Label | Source File | Function +------------------|----------------------|--------------------- +nbmpscQueue | nbmpscQueue.cpp | test() Run the non-blocking, multiple producer, single consumer queue for 'testDurMs' millisecdons and write the result into 'out_fname'. This is the queue used by the websocket implementation -(See cwWebSock) to support incoming calls form multiple threads without blocking the calling threads. +(See cwWebSock.h/cpp) to support incoming calls form multiple threads without blocking the calling threads. -## audioDevAlsa +# Audio -``` -cwtest ~/src/cwtest/src/cwtest/cfg/main.cfg audioDevAlsa -``` - -See `report()` in `cwAudioDeviceAlsa.cpp`. +CLI Label | Source File | Function +------------------|-----------------------|--------------------- +audioDevAlsa | cwAudioDeviceAlsa.cpp | report() Generate a list of devices and device attributes directly from the ALSA sub-system. -## audioDevRpt -``` -cwtest ~/src/cwtest/src/cwtest/cfg/main.cfg audioDevRpt -``` - -See `report()` in `cwAudioDevice.cpp`. +CLI Label | Source File | Function +------------------|----------------------|--------------------- +audioDevRpt | cwAudioDevice.cpp | report Generate a list of devices and device attributes from libcw. This will include audio file based devices. +# Socket -## socketUdp +CLI Label | Source File | Function +---------------------|----------------------|--------------------- +socketMgrSrvTest | cwSocket | mainTest() +socketMgrClientTest | cwSocket | mainTest() -See test_udp() in `cwTcpSocketTest.cpp`. +Interactive socket based client/server application. +Start `socketMgrSrvTest` in one process, then `socketMgrClientTest` +in a second processor. -Interactive send/recv tester for UDP based sockets. This tester can work across machines or -on a single machine specifying '127.0.0.1' (localhost) as the remote address and choosing different -port numbers for the remote and local address. +CLI Label | Source File | Function +------------------|----------------------|--------------------- +dirEntry | cwFileSys.cpp | dirEntryTest() -## socketUdp +Exercise the directory reader. -See test_udp() in `cwTcpSocketTest.cpp`. -Interactive send/recv tester for TCP based sockets. This tester can work across machines or -on a single machine specifying '127.0.0.1' (localhost) as the remote address and choosing different -port numbers for the remote and local address. +# IO Interface + +CLI Label | Source File | Function +------------------|----------------------|--------------------- +io_minimal | cwIoMinTest.cpp | min_test() + +cwIoMinTest.cpp gives minimal template for an interactive application based on cwIo.h/cpp. + +CLI Label | Source File | Function +------------------|----------------------|--------------------- +io | cwIoTest.cpp | test()