Commit Graph

289 Commits

Author SHA1 Message Date
Sebastián Mestre 57c7f5f61f Isobuffer refactor - part 2 (#65)
* Split isoBuffer::maybeOutputSampleToFile into two functions

* reorder isoBuffer data members. clean up comments and formatting. clean isoBuffer::writeBuffer

* Remove my name from a comment

* Use type-safe Qt connect. Move comments. change IO column comparison.

* Give isoBuffer the proper ringBuffer behaviour

* Change the behaviour of isoBuffer::readBuffer; Change comments to reflect this.

* Fix a silly mistake in isobuffer.cpp (compiler warnings are awesome)

* Modify isoBuffer::readBuffer

* add destructor to isoBuffer, reorder initializer list. isobuffer.cpp now compiles with no warnings.

* Change isoBuffer::m_buffer to be a unique_ptr

* Change isoBuffer::m_stopDecoding to isoBuffer::m_isDecoding

* Refactor isoBuffer::readBuffer to use unique_ptr. Currently a memory leak

* Change signature of isoBuffer::readBuffer to return unique_ptr. adapt isoDriver acordingly.

* Clean up comments on isobuffer .h and .cpp

* Incorporate review comments: formatting, explicit unique_ptr, spelling
2019-01-28 11:14:04 +11:00
Chris Esposito 31f68faf4e
Update isobuffer.h 2019-01-23 16:14:24 +11:00
Sebastián Mestre 015d41624d Isobuffer refactor (#64)
* make isobuffer.cpp follow the common bracket style

* Add a few utility functions to isoBuffer, and reorganize and comment isobuffer.h

* refactor a few functions in isoBuffer using the newly added functions

* Clean up isoBuffer::readBuffer. Requires particular attention during review

* remove unused variable isoBuffer::firstTime

* Fix formatting and add a comment to isoBuffer::maybeOutputSampleToFile

* move invariant out of loop in isoBuffer::writeBuffer_short

* Substantially refactor isoBuffer::readBuffer

* change spaces to tabs on isoBuffer.h

* spaces to tabs on isobuffer.cpp and isobuffer.h, but properly

* Enforce const correctness on some methods of isoBuffer

* Add some comments to isobuffer.cpp

* Remove duplication in isoBuffer::cap_xnfromxxx functions by extracting common functionality to a free function

* Format isobuffer.h and isobuffer.cpp

* add inserted count to isoBuffer

* further modification to isoBuffer::readBuffer

* Correct a comment in isoBuffer::readBuffer

* add an anonymous namespace with file-wide constants

* remove isoBuffer::openFile, and move initialization isoBuffer to initializer list

* add lines between if statements in isoBuffer::insertIntoBuffer

* add spaces after // to some comments

* extract common functionality from writeBuffer_xxx functions to function template

* update header file to reflect previous commits

* make isoBuffer::return nullptr in a troublesome case

* add space after // to some other comments

* Make capSample a member function of isoBuffer, delete a macro in isobuffer.cpp

* clean up various comments and declarations in isobuffer.cpp

* make isoBuffer::gainBuffer work for any gain value

* make enableFileIO use the constant definitions made in a recent commit

* Remove type argument from isoBuffer::serialManage

* make isoBuffer::readBuffer return a zero-filled buffer instead of null

* Remove isoBuffer::glitchInsert

* Add a bunch of TODOs to isobuffer.cpp and isobuffer.h

* Rename member variables of isoBuffer to have an m_ prefix

* Move isoBuffer::capSample comparison functors to anonymous namespace

* Make CONSOLE_UPDATE_TIMER_PERIOD on isobuffer.h a constexpr intead of a macro
2019-01-23 16:13:40 +11:00
Sebastián Mestre 4499db10bf Isobufferbuffer integration (#62)
* Update all code to use the new isoBufferBuffer interface, and remove the old one; also rename isoBufferBuffer::add(uint8_t) to insert_hex

* remove unnecessary include directive from isobuffer.h

* Remove 'Legacy Interface' comment from isoBufferBuffer header and implementation, move insert_hex closer to other insert functions in the header and implementation

* Remove TODO comment of a finished task
2018-12-31 10:02:04 +11:00
Sebastián Mestre 607734c60d isoBufferBuffer refactor (#61)
* Reimplements isoBufferBuffer and fixes a potential memory leak due to lack of a destructor
2018-12-28 09:51:10 +11:00
Chris Esposito 14a5ab67ff
Added C++14 support to qmake file 2018-12-27 11:49:11 +11:00
Chris Esposito 2b5ce2ecc4 Supports odd and even parity 2018-12-11 20:25:14 +11:00
Chris Esposito f2c7427f2c
std::abs() => abs in espoSpinbox 2018-11-07 20:22:02 +11:00
Chris Esposito b0f5e98bff Single Shot consistent with other pause methods 2018-11-06 14:11:21 +11:00
Chris Esposito 76154a6f7f Trigger count thresh no longer has bad offset 2018-11-06 14:04:53 +11:00
Chris Esposito 086c6634fc changing window size does not affect trigger position 2018-11-06 13:49:53 +11:00
Chris Esposito 108bfdb3c6 Pausing while triggered does not affect trigger delay 2018-11-06 13:45:34 +11:00
Chris Esposito d23831868e espoSpinBox no longer shows float precision errors near zero 2018-11-06 12:53:37 +11:00
Chris Esposito 2158a6f58b Reset twoWire on error rather than crash 2018-11-06 12:06:28 +11:00
Chris Esposito 1d9f2398bb Nicer looking textEdits 2018-11-06 11:50:26 +11:00
Chris Esposito 672cf414d1 isobufferbuffer can take uint8_t 2018-11-06 10:55:45 +11:00
Chris Esposito effeb8ed4a Data decode _should_ work (untested) 2018-11-06 10:46:47 +11:00
Chris Esposito b5069f1264 Address gets sent to console along with r/w and ACK 2018-11-06 10:36:04 +11:00
Chris Esposito b19900e9a0 IsoBufferBuffer cleaned 2018-11-06 10:15:48 +11:00
Chris Esposito bdf1055157 Decodes address bytes 2018-11-06 09:50:36 +11:00
EspoTek 5df3e30780 FIrmware version 0006: Fixes issue with logic analyzer channels being 2.6us out of sync 2018-11-06 09:14:13 +11:00
Chris Esposito e63a97e23a I2C start condition does not get detected as stop 2018-11-04 11:46:17 +11:00
Chris Esposito 124bcd3a61 Timings approximately correct for i2c 2018-11-04 11:31:48 +11:00
Chris Esposito e5bfb2e748 i2c state invalidation fix 2018-11-04 10:49:10 +11:00
Chris Esposito 2772fee1cd i2c state invalidation 2018-11-04 10:47:25 +11:00
Chris Esposito 0f00af0c08 i2c decoder no longer tries to read invalid buffer region 2018-11-04 10:36:11 +11:00
Chris Esposito d65b647ab4 Fixed some I2C edge detection issues 2018-11-04 10:07:15 +11:00
Chris Esposito 23832f1b13
No longer uses std::abs() on a double!! 2018-10-29 20:16:42 +11:00
Chris Esposito c126590a74 Fixed espoSpinBox issues 2018-09-22 06:04:52 +10:00
Chris Esposito fa3d680c55 espoSpinBox fixed behaviour when entering negative values 2018-09-18 08:24:13 +10:00
Chris Esposito 56468e9917 espospinbox does not change value until enter is pressed. scoperangeenterdialog supports changeStepping() 2018-09-17 19:12:07 +10:00
Chris Esposito 50515b545c espoSpinBox handles negative values 2018-09-17 18:56:33 +10:00
Chris Esposito 2593bfc0c6 scopeRangeEnterDialog spinboxes promoted to espoSpinBox 2018-09-17 18:51:58 +10:00
Chris Esposito 0b7f1218f9 EspoSpinBox has better input algorithm 2018-09-17 12:01:17 +10:00
EspoTek bd0e618a45 Fixed Issue 51 (I think, unable to test) 2018-09-16 14:14:12 +10:00
Chris Esposito 39d1bff5ab Fixed segfault; now displays message about iso failure too 2018-09-11 08:46:15 +10:00
Chris Esposito 7a2f8cf35a Added option to hide graphs when paused 2018-09-05 08:26:21 +10:00
Chris Esposito 1a3fd72041 Can put scope range dialog on main window 2018-09-04 20:24:08 +10:00
Chris Esposito dde6d6ac42 Started Debugging i2c 2018-09-04 18:55:03 +10:00
Chris Esposito c96dd98c0f Added start of UI elements for I2C 2018-09-03 06:11:53 +10:00
Chris Esposito ba4644bc35 i2c clock multiplication in place 2018-08-14 17:40:55 +10:00
Chris Esposito 2ba556bbe9 usbIsoInit returns error on failure 2018-08-14 17:19:17 +10:00
EspoTek 2c2db8855b Fixed resolution scaling issues. (See Issue #46) 2018-08-12 16:28:14 +10:00
EspoTek b112f5b691 Fixed build problems. 2018-08-12 16:21:05 +10:00
EspoTek 655258e98d Merge branch 'master' of https://github.com/EspoTek/Labrador 2018-08-12 16:18:33 +10:00
Chris Esposito ca86c1da0a basic i2c skeleton in place and fleshed out. Have to get the timings right (e.g. data bytes should only be read in on the middle of each scl high pulse) and then debug but coming together 2018-08-08 19:20:32 +10:00
Chris Esposito b5afeff380 more... 2018-08-08 19:14:08 +10:00
Chris Esposito a998a59a60 more fleshing...: 2018-08-08 18:58:41 +10:00
Chris Esposito 95b4a01d81 More fleshed out state machine 2018-08-08 18:35:26 +10:00
Chris Esposito 091c37cd37 START and STOP transitions in state machine 2018-08-08 09:31:05 +10:00
Chris Esposito b414923fd3 more i2c flesh 2018-08-08 09:19:30 +10:00
Chris Esposito 2d1bd5f438 resolution hard-coded 2018-08-07 22:11:12 +10:00
Chris Esposito ddf60d5c63 Low resolution mode only activated on low resolution displays 2018-08-08 03:10:47 +10:00
Chris Esposito b55ec2b0aa Fixed rendering issues on low-resolution displays 2018-08-08 02:52:56 +10:00
Chris Esposito 634a046097 more i2 skeleton 2018-08-02 18:27:09 +10:00
Chris Esposito 4c61a0a327 another i2c function 2018-07-31 09:05:58 +10:00
Chris Esposito 6ff66a4c43 Serial should no longer try to decode since the start of time when first activated 2018-07-27 18:39:13 +10:00
Chris Esposito d1ac3618f5 very basic skellington code for i2c in 2018-07-27 18:39:13 +10:00
Chris Esposito 8fa060e2aa reloads udev rules when make install is called 2018-07-21 10:24:49 +10:00
Chris Esposito a0a17e904f make install works 2018-07-19 16:38:42 +10:00
EspoTek c5495ca806 On-boot calibration calls PSU calibration too 2018-06-04 19:18:26 +10:00
EspoTek b9f37da420 Added PSU Calibration 2018-06-04 19:07:21 +10:00
Chris Esposito bb55118192 Android code fixed and Librador in place. 2018-05-19 15:23:22 +10:00
Chris Esposito f6ee6f0844 Added new function to firmware, to kickstart isochronous stream. 2018-04-02 16:21:54 +10:00
Chris Esposito a846895e53 Shared Lib can handle basic avrDebug() call over USB. 2018-03-29 13:29:36 +11:00
Chris Esposito eaaa4691bd Added demo skeleton for librador 2018-03-28 14:23:34 +11:00
Chris Esposito 5df9da55ef
Quick update 4/4. Compatibility improved now on Win32. 2018-02-18 13:20:56 +11:00
Chris Esposito c026f07103
Quick edit 3/4 2018-02-18 13:20:09 +11:00
Chris Esposito 95b5c570c6
Quick edit 2/4 2018-02-18 13:19:10 +11:00
Chris Esposito 37c3356f2e
Quick edit 1/4 2018-02-18 13:18:15 +11:00
Chris Esposito 5efb953de7
Merge pull request #34 from probonopd/master
Generate AppImage on Travis CI for each git push, closes #22
2018-02-18 13:16:35 +11:00
probonopd 9818357b59
AppImage 2018-02-17 10:19:38 +01:00
Chris Esposito 0d66cb870b QThread exits properly, preventing occasional crash on USB disconnect 2018-02-17 14:50:14 +11:00
Chris Esposito 704cb19b2c Fixed builds on desktop. Added "file->quit" button 2018-02-11 11:34:39 +11:00
Chris Esposito e4a458adc9 Android Interface improved for higher-DPI devices. 2018-02-11 11:21:19 +11:00
Chris Esposito 22224bfd6f AVRdebug() added; control transfers can cope with IN buffers 2018-01-11 18:11:28 +11:00
Chris Esposito a3aa5adacc Merge remote-tracking branch 'origin/master' 2018-01-09 10:12:10 +11:00
Chris Esposito 9ce1cd72ce Added Build Scripts. 2018-01-09 10:12:02 +11:00
EspoTek 6248f5dfe5 Firmware recovery on Windows 2017-12-30 12:44:08 +11:00
Chris Esposito e957460134 No longer crashes when two DAQ files opened. 2017-12-28 22:14:47 +11:00
Chris Esposito 370857eff4 You can actually leave DAQ playback. Numbers on PSU slider no longer cut off. 2017-12-28 16:16:42 +11:00
Chris Esposito dddef76972 DAQ start/end time working. 2017-12-28 15:51:44 +11:00
Chris Esposito 025df96ea6 DAQ Playback tested and working 2017-12-28 13:23:33 +11:00
Chris Esposito 1bd7af8b48 Prompt when loadingDAQ file. 2017-12-28 10:17:32 +11:00
Chris Esposito 277df7a7a1 Fixed some bugs in file I/O 2017-12-27 16:07:22 +11:00
Chris Esposito 424417aab9 DAQ Files store mode variable 2017-12-27 14:39:56 +11:00
Chris Esposito a772cfb39a DAQ supports Multimeter now 2017-12-27 14:38:16 +11:00
Chris Esposito d5dad1f13f DAQ Settings in. 2017-12-27 12:44:49 +11:00
Chris Esposito d8ea339c56 DAQ Settings in place, just no GUI to configure them. 2017-12-24 14:08:27 +11:00
Chris Esposito 44703c1b35 Manual firmware recovery in the GUI 2017-12-24 13:07:28 +11:00
Chris Esposito 9f9e4e48c6 Prompts user to calibrate on launch (if uncalibrated) 2017-12-24 11:35:42 +11:00
Chris Esposito 57eac0f46e Firmware Flashing Message in Linux 2017-12-24 11:13:06 +11:00
Chris Esposito afa1419480 New Changes build on Linux/Rpi 2017-12-24 10:52:01 +11:00
EspoTek f65c8aa5a0 Some unfinished scaffolding for non-ASCII UART decoding. 2017-12-03 14:11:32 +11:00
EspoTek 96cb814e8e Firmware flashing more robust on Windows. Can't fail due to having too short a wait. Mac/Linux/Android not improved!! 2017-12-01 17:03:13 +11:00
EspoTek 836dbd47b8 Minor UI update; removed word "glitchy" from high baud UART 2017-12-01 16:20:54 +11:00
EspoTek ac583c8482 Added firmware 0x0004 and changed interface to use this. Shoved dfu-programmer in the repo since it's essential. 2017-12-01 16:19:28 +11:00
EspoTek 6e886c127a Updated QCP2 from the beta to 2.0.0. Didn't activate as it causes crashes. 2017-12-01 15:47:39 +11:00
EspoTek c93cf854da Bit of scaffolding for I2C. Meme commit. 2017-12-01 15:31:21 +11:00
EspoTek 2e803a6f94 extended last patch to CH2 also. 2017-11-28 15:31:33 +11:00
EspoTek 3ab936673a Serial Decoding detects wire disconnects and stops. 2017-11-28 13:09:52 +11:00
EspoTek 5b70ffecbe Added the uart decoder into a separate class. 2017-11-28 11:17:11 +11:00
EspoTek 2e3babc808 added RMS measure, fixed the max/min/mean when AC coupling enabled 2017-11-07 15:06:40 +11:00
EspoTek ab8ff4c302 Fixed android build issues stemming from last patch. 2017-11-07 14:11:03 +11:00
EspoTek 42554094fc Added in the large "cycle left/right" functions. 2017-11-07 14:06:35 +11:00
EspoTek 56aaa39bad User can manually set delay from oscilloscope->range->enter manually 2017-11-07 13:54:38 +11:00
EspoTek 662021ebab User can select which channel they want to record, and get file dialog prompt. 2017-11-07 13:31:26 +11:00
EspoTek 6e8e03d4a4 User now selects which channel they want to take a snapshot of. 2017-11-07 13:08:25 +11:00
EspoTek 38ba12d647 Android 7 and higher is now supported 2017-11-05 21:54:54 +11:00
EspoTek 9ee91d2a42 "Snapshot" asks user where they want to save w/ dialog 2017-11-04 16:52:19 +11:00
EspoTek ca2406b2db Cleaned junk out of repo.
Still need to edit history


Former-commit-id: e2061432d4b3d2bbb1f9621f3cce34d43b682b2a
Former-commit-id: aeeed8aa2af692f92b7ea7ec8cc042d49c679ce5
2017-10-21 16:11:49 +11:00
EspoTek ad017cf2f3 No longer says "building for linux" on Windows in the console.
Former-commit-id: 078f578592c96a59470f2d8f4e2f85b81b40f778
Former-commit-id: 60d36c0e352de430de2866bdd64b653713976d9d
2017-09-04 18:22:51 +10:00
EspoTek 834a9d3df3 Last upload accidentally lost files!
Former-commit-id: 14c864b18215342baec6db4297b3d2d999e512eb
Former-commit-id: 731f8e18b73806ca85ba591c50db7a3a41232a03
2017-09-04 18:20:35 +10:00
EspoTek ea38246587 Added build settings for RPi. Looks like more optimisations needed...
Former-commit-id: 66bd676c70c00f5c13ce5f41be5a106a72054361
Former-commit-id: 0fe1b4666ecd7f599e8965f9f159628aed8113a4
2017-09-02 14:11:38 +10:00
EspoTek fe9b1cce53 Contains settings for 32-bit Linux builds, including 32-bit libdfuprog
Former-commit-id: ae104c8ea4
2017-07-15 17:46:12 +10:00
EspoTek 0457b9d95b V.10 pushed to Android
Former-commit-id: b2eea722ed
2017-07-14 08:41:22 +10:00
EspoTek 8bc971dddb Version 1.0. Fixed most of the bad bugs
Former-commit-id: 6eba14054b
2017-07-13 19:50:30 +10:00
EspoTek 6ff10586dc Better Android compatibility, has firmware 3 (but doesn't yet require)
Former-commit-id: 6f3d0b19ac
2017-07-13 15:41:47 +10:00
EspoTek b2d6daa433 Libdfuprog android fixed
Former-commit-id: 31f4b1621e
2017-07-13 13:35:55 +10:00
EspoTek 454d6134f2 (glitchy) unix flashing in
Former-commit-id: bd5b6842be
2017-07-13 09:20:22 +10:00
EspoTek f91072ec5a Android assets added.
Former-commit-id: 755ff352ec
2017-07-13 09:18:44 +10:00
EspoTek c2b8095d24 Tried libdfuprog fixes, didn't work.
Former-commit-id: 5cb4351466
2017-07-10 07:38:17 +10:00
EspoTek b92fe7a02f Start of firmware flash in Android. Can't get permissions for libdfuprog
Former-commit-id: 9808153717
2017-07-09 13:34:46 +10:00
EspoTek 6f023dec6f Firmware flashing in Windows
Former-commit-id: 6afd41de34
2017-07-09 12:47:41 +10:00
EspoTek 844c13b1f5 Settings in place
Former-commit-id: 83966a3017
2017-07-09 11:08:31 +10:00
EspoTek 9c227aefe0 Libdfuprog built into android
Former-commit-id: 8a5e846078
2017-07-08 15:05:44 +10:00
esposch eaf618a910 libdfuprog added to Linux build
Former-commit-id: 26b9526f2d
2017-07-07 15:26:18 +10:00
EspoTek 2ae610b51d added in libdfuprog to Mac build
Former-commit-id: ce0221adca
2017-07-07 10:33:44 +10:00
EspoTek 4a65e06091 Single Endpoint Mode in place on all modes.
Former-commit-id: 7b01fa5eb6
2017-07-03 15:08:04 +10:00
EspoTek 1ef7d515cd But does run existant endpoints!
Former-commit-id: db086fffb3
2017-07-03 13:35:45 +10:00
EspoTek 46d19d227f Single endpoint working, as long as there's a single device!
Former-commit-id: 4db3949fe3
2017-07-03 12:32:31 +10:00
EspoTek a587ad9392 Android testing build
Former-commit-id: d54fd37fa5
2017-07-01 12:55:51 +10:00
EspoTek 5ddf4383b2 Android Initial Release
Former-commit-id: d192210b8c
2017-06-30 14:02:18 +10:00
EspoTek 09cb784183 R/C meter on Android too now. And an icon!
Former-commit-id: 49ff60011e
2017-06-30 11:47:43 +10:00
EspoTek 1e0d7c8460 Capacitance ranging
Former-commit-id: 980a3b8736
2017-06-30 09:41:36 +10:00
EspoTek b6fca84c36 Capacitance meter correctly and accurately detects rise and fall times
Former-commit-id: 5f66ee2916
2017-06-29 10:29:38 +10:00
EspoTek 44901cd0b8 Inverse sample convert in place
Former-commit-id: 1a5bd9a5d7
2017-06-29 09:48:50 +10:00
EspoTek bf0999c291 Interface Smoothed Over, likes the new combo box now
Former-commit-id: 7451ae1a9e
2017-06-28 16:29:40 +10:00
EspoTek 1963dbf268 Multimeter R mode up and running on desktop.
Former-commit-id: 279eca0848
2017-06-28 14:39:26 +10:00
EspoTek 19859b6170 R measurement algorithm in place
Former-commit-id: da785e9004
2017-06-28 11:50:26 +10:00
EspoTek 7ed56b2055 Calibration in place. Maximum voltage is 12V.
Former-commit-id: f147bc346d
2017-06-26 11:12:00 +10:00
EspoTek 070d36d99b Caibration algorithm in pace but no user-friendy way of accessing it.
Former-commit-id: ee7aff7cf5
2017-06-26 10:19:04 +10:00
EspoTek 88797acf12 Recentreing in.
Former-commit-id: 445a301029
2017-06-22 14:49:50 +10:00
EspoTek 334d0d2f26 Towards calibration
Former-commit-id: 7c3ae61fe8
2017-06-22 14:05:37 +10:00
EspoTek e5b258d4e5 Double buffering seems to be working. Good theory, no bullshit. Dank u wel, mnr. Dijkstra!
Former-commit-id: 4933764c98
2017-06-22 12:16:04 +10:00
EspoTek 3f4ab5c6cb Intent Filter added
Former-commit-id: c27cb9d38c
2017-06-22 11:22:16 +10:00
EspoTek bc436497a2 Android reinit fine as long as device doesn't reconnect before destructor called
Former-commit-id: 09e3568605
2017-06-19 16:23:17 +10:00
EspoTek db5a5ca437 Slightly nicer scaling control.
Former-commit-id: c41fe011d7
2017-06-12 17:19:52 +10:00
EspoTek d28814606c Axis Scaling and cursors
Former-commit-id: 893624c0e4
2017-06-12 10:55:22 +10:00
EspoTek 4c91883bff Pinch Zoom added, cannot discern x/y
Former-commit-id: 08b476322c
2017-06-10 20:07:53 +10:00