summaryrefslogtreecommitdiffstats
path: root/commandline/library/micronucleus_lib.h
diff options
context:
space:
mode:
authorJenna Fox <a@creativepony.com>2012-10-02 14:33:44 +1000
committerJenna Fox <a@creativepony.com>2012-10-02 14:33:44 +1000
commit85669da5c3101b2e8c815e257a5e17615ada26f5 (patch)
tree4614b5d0044cd849058d28fc609bf666418da6e6 /commandline/library/micronucleus_lib.h
parentf8b910e8f0da193c643c5857063be07ef67cbe79 (diff)
downloadmicronucleus-85669da5c3101b2e8c815e257a5e17615ada26f5.tar.gz
micronucleus-85669da5c3101b2e8c815e257a5e17615ada26f5.tar.bz2
micronucleus-85669da5c3101b2e8c815e257a5e17615ada26f5.zip
Added percentage progress to CLI upload tool and worked on consistent style throughout commandline c code (all variables underscore_cased, all functions lowerCamelCased).
Diffstat (limited to 'commandline/library/micronucleus_lib.h')
-rw-r--r--commandline/library/micronucleus_lib.h75
1 files changed, 39 insertions, 36 deletions
diff --git a/commandline/library/micronucleus_lib.h b/commandline/library/micronucleus_lib.h
index dcbac83..d022877 100644
--- a/commandline/library/micronucleus_lib.h
+++ b/commandline/library/micronucleus_lib.h
@@ -2,46 +2,46 @@
#define MICRONUCLEUS_LIB_H
/*
- Created: September 2012
- by ihsan Kehribar <ihsan@kehribar.me>
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in
- the Software without restriction, including without limitation the rights to
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is furnished to do
- so, subject to the following conditions:
+ Created: September 2012
+ by ihsan Kehribar <ihsan@kehribar.me>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
+ this software and associated documentation files (the "Software"), to deal in
+ the Software without restriction, including without limitation the rights to
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is furnished to do
+ so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
*/
/********************************************************************************
* Header files
********************************************************************************/
#if defined WIN
- #include <lusb0_usb.h> // this is libusb, see http://libusb.sourceforge.net/
+ #include <lusb0_usb.h> // this is libusb, see http://libusb.sourceforge.net/
#else
- #include <usb.h> // this is libusb, see http://libusb.sourceforge.net/
+ #include <usb.h> // this is libusb, see http://libusb.sourceforge.net/
#endif
-//#include "opendevice.h" // common code moved to separate module
+//#include "opendevice.h" // common code moved to separate module
#include <assert.h>
/*******************************************************************************/
/********************************************************************************
* USB details
********************************************************************************/
-#define MICRONUCLEUS_VENDOR_ID 0x16D0
-#define MICRONUCLEUS_PRODUCT_ID 0x0753
-#define MICRONUCLEUS_USB_TIMEOUT 0xFFFF
+#define MICRONUCLEUS_VENDOR_ID 0x16D0
+#define MICRONUCLEUS_PRODUCT_ID 0x0753
+#define MICRONUCLEUS_USB_TIMEOUT 0xFFFF
/*******************************************************************************/
/********************************************************************************
@@ -50,22 +50,24 @@
//typedef usb_dev_handle micronucleus;
// representing version number of micronucleus device
typedef struct _micronucleus_version {
- unsigned char major;
- unsigned char minor;
+ unsigned char major;
+ unsigned char minor;
} micronucleus_version;
// handle representing one micronucleus device
typedef struct _micronucleus {
- usb_dev_handle *device;
- // general information about device
- micronucleus_version version;
- unsigned int flash_size; // programmable size (in bytes) of progmem
- unsigned int page_size; // size (in bytes) of page
- unsigned int pages; // total number of pages to program
- unsigned int write_sleep; // milliseconds
- unsigned int erase_sleep; // milliseconds
+ usb_dev_handle *device;
+ // general information about device
+ micronucleus_version version;
+ unsigned int flash_size; // programmable size (in bytes) of progmem
+ unsigned int page_size; // size (in bytes) of page
+ unsigned int pages; // total number of pages to program
+ unsigned int write_sleep; // milliseconds
+ unsigned int erase_sleep; // milliseconds
} micronucleus;
+typedef void (*micronucleus_callback)(float progress);
+
/*******************************************************************************/
/********************************************************************************
@@ -78,13 +80,14 @@ micronucleus* micronucleus_connect();
/********************************************************************************
* Erase the flash memory
********************************************************************************/
-int micronucleus_eraseFlash(micronucleus* deviceHandle);
+int micronucleus_eraseFlash(micronucleus* deviceHandle, micronucleus_callback progress);
/*******************************************************************************/
/********************************************************************************
* Write the flash memory
********************************************************************************/
-int micronucleus_writeFlash(micronucleus* deviceHandle, unsigned int program_length, unsigned char* program);
+int micronucleus_writeFlash(micronucleus* deviceHandle, unsigned int program_length,
+ unsigned char* program, micronucleus_callback progress);
/*******************************************************************************/
/********************************************************************************