diff --git a/.gitignore b/.gitignore index c2d58a0426bcf24c86f8649e7e3ab38a54e0401c..af0b0b5773a9842989f3509b55de6169f0355ec8 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ jake/ **/Device_Startup devtool/node_modules/ +node_modules/ diff --git a/embedded/.gitignore b/atsamd51j19/.gitignore similarity index 100% rename from embedded/.gitignore rename to atsamd51j19/.gitignore diff --git a/embedded/.travis.yml b/atsamd51j19/.travis.yml similarity index 100% rename from embedded/.travis.yml rename to atsamd51j19/.travis.yml diff --git a/embedded/include/README b/atsamd51j19/include/README similarity index 100% rename from embedded/include/README rename to atsamd51j19/include/README diff --git a/embedded/lib/README b/atsamd51j19/lib/README similarity index 100% rename from embedded/lib/README rename to atsamd51j19/lib/README diff --git a/embedded/platformio.ini b/atsamd51j19/platformio.ini similarity index 100% rename from embedded/platformio.ini rename to atsamd51j19/platformio.ini diff --git a/embedded/src/friends/HX711.cpp b/atsamd51j19/src/friends/HX711.cpp similarity index 100% rename from embedded/src/friends/HX711.cpp rename to atsamd51j19/src/friends/HX711.cpp diff --git a/embedded/src/friends/HX711.h b/atsamd51j19/src/friends/HX711.h similarity index 100% rename from embedded/src/friends/HX711.h rename to atsamd51j19/src/friends/HX711.h diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45.cpp b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45.cpp similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45.cpp rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45.cpp diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45.h b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45.h similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45.h rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45.h diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_a.cpp b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_a.cpp similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_a.cpp rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_a.cpp diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_a.h b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_a.h similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_a.h rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_a.h diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_b.cpp b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_b.cpp similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_b.cpp rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_b.cpp diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_b.h b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_b.h similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_b.h rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_b.h diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_c.cpp b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_c.cpp similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_c.cpp rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_c.cpp diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_c.h b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_c.h similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_c.h rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_c.h diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_d.cpp b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_d.cpp similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_d.cpp rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_d.cpp diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_d.h b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_d.h similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_d.h rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_d.h diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_e.cpp b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_e.cpp similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_e.cpp rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_e.cpp diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_e.h b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_e.h similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_e.h rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_e.h diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_f.cpp b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_f.cpp similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_f.cpp rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_f.cpp diff --git a/embedded/src/hunks/comm/hunk_cobserialrj45_f.h b/atsamd51j19/src/hunks/comm/hunk_cobserialrj45_f.h similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialrj45_f.h rename to atsamd51j19/src/hunks/comm/hunk_cobserialrj45_f.h diff --git a/embedded/src/hunks/comm/hunk_cobserialusb.cpp b/atsamd51j19/src/hunks/comm/hunk_cobserialusb.cpp similarity index 72% rename from embedded/src/hunks/comm/hunk_cobserialusb.cpp rename to atsamd51j19/src/hunks/comm/hunk_cobserialusb.cpp index 150b90ce684f3eeffe6762ca1cec3c313db198c9..7d3decd4d09e4e0887d5b797b2830d1ea5c52ca2 100644 --- a/embedded/src/hunks/comm/hunk_cobserialusb.cpp +++ b/atsamd51j19/src/hunks/comm/hunk_cobserialusb.cpp @@ -40,28 +40,8 @@ void COBSerialUSB::loop(void){ // to check ... dbg_counter ++; if(localbytesin_[bp_] == 0){ - // doesn't look like a stray zero, - //adebug(String(bp_) + " >"); - // looks like a bad decode, - uint16_t dcl = cobs_decode(localbytesin_, bp_, localbytesdecobd_); - //adebug("> " + String(dcl)); - // bummer to do this, but we want to find that bug... - /* - if(dcl < (bp_ - 2) && (dcl > 5) && (dcl < 255)){ - // this is that halting error, - adebug(String(bp_) + " >"); - adebug("> " + String(dcl)); - error("bugfind: localbytesin_ "); - error(String(dbg_counter)); - for(uint16_t i = 0; i < bp_ + 1; i ++){ - adbs(); - adbn(String(i) + ": "); - adbf(localbytesin_[i]); - } - // print all bytes in localbytesin_ to bp - while(1); - } */ // de-cobs 1st ! + uint16_t dcl = cobs_decode(localbytesin_, bp_, localbytesdecobd_); outChars->put(localbytesdecobd_, dcl); // wrap buffer to start, bp_ = 0; @@ -82,6 +62,11 @@ void COBSerialUSB::loop(void){ if(inChars->io()){ size_t len = inChars->get(localbytesin_); + /* + adbs(); + adbn("COBSerial len: "); + adbf(String(len)); + */ trunk->writeCOBSerialUSBPacket(localbytesin_, len); } } diff --git a/embedded/src/hunks/comm/hunk_cobserialusb.h b/atsamd51j19/src/hunks/comm/hunk_cobserialusb.h similarity index 100% rename from embedded/src/hunks/comm/hunk_cobserialusb.h rename to atsamd51j19/src/hunks/comm/hunk_cobserialusb.h diff --git a/embedded/src/hunks/flow/hunk_accumulator.cpp b/atsamd51j19/src/hunks/flow/hunk_accumulator.cpp similarity index 100% rename from embedded/src/hunks/flow/hunk_accumulator.cpp rename to atsamd51j19/src/hunks/flow/hunk_accumulator.cpp diff --git a/embedded/src/hunks/flow/hunk_accumulator.h b/atsamd51j19/src/hunks/flow/hunk_accumulator.h similarity index 100% rename from embedded/src/hunks/flow/hunk_accumulator.h rename to atsamd51j19/src/hunks/flow/hunk_accumulator.h diff --git a/embedded/src/hunks/flow/hunk_filter.cpp b/atsamd51j19/src/hunks/flow/hunk_filter.cpp similarity index 100% rename from embedded/src/hunks/flow/hunk_filter.cpp rename to atsamd51j19/src/hunks/flow/hunk_filter.cpp diff --git a/embedded/src/hunks/flow/hunk_filter.h b/atsamd51j19/src/hunks/flow/hunk_filter.h similarity index 100% rename from embedded/src/hunks/flow/hunk_filter.h rename to atsamd51j19/src/hunks/flow/hunk_filter.h diff --git a/atsamd51j19/src/hunks/hunk_int32_debugger.cpp b/atsamd51j19/src/hunks/hunk_int32_debugger.cpp new file mode 100644 index 0000000000000000000000000000000000000000..af9f3086c3e5d9af952f64a10685d6ff29cfa171 --- /dev/null +++ b/atsamd51j19/src/hunks/hunk_int32_debugger.cpp @@ -0,0 +1,17 @@ +#include "hunk_int32_debugger.h" + +Int32_Debugger::Int32_Debugger(){ + type_ = "int32_debugger"; + numInputs = 1; + inputs[0] = numIn; +} + +void Int32_Debugger::init(void){ + // +} + +void Int32_Debugger::loop(void){ + if(numIn->io()){ + int32_t num = numIn->get(); + } +} diff --git a/atsamd51j19/src/hunks/hunk_int32_debugger.h b/atsamd51j19/src/hunks/hunk_int32_debugger.h new file mode 100644 index 0000000000000000000000000000000000000000..7c4e4374866617077c93b12251392f53bc5b0004 --- /dev/null +++ b/atsamd51j19/src/hunks/hunk_int32_debugger.h @@ -0,0 +1,18 @@ +#ifndef INT32_DEBUG_H_ +#define INT32_DEBUG_H_ + +#include <arduino.h> +#include "hunks/hunks.h" +#include "transports/net_int32.h" + +class Int32_Debugger : public Hunk { +private: + // +public: + Int32_Debugger(); + void init(void); + void loop(void); + Inp_int32* numIn = new Inp_int32("numin"); +}; + +#endif diff --git a/embedded/src/hunks/hunk_link.cpp b/atsamd51j19/src/hunks/hunk_link.cpp similarity index 96% rename from embedded/src/hunks/hunk_link.cpp rename to atsamd51j19/src/hunks/hunk_link.cpp index f2a7f54161b134c10bfb71569d2368e9653d2ac6..88baadc856d4f76b154a589111ecca572f61be52 100644 --- a/embedded/src/hunks/hunk_link.cpp +++ b/atsamd51j19/src/hunks/hunk_link.cpp @@ -389,13 +389,31 @@ void Link::loop(void){ // check if ack if(inBuffer_[1] == LK_ACK){ if (pnum >= numInputs){ - error("LK: link recv ack for out of bounds input") + error("LK: link recv ack for out of bounds input"); + break; + } + if(inputIsClearUpstream[pnum] != false){ + ERRLIGHT_ON; + error("LK: link recv ack for port not waiting"); + adbs(); + adbn("link name is " + name_); + adbf(); + // important to debug this, + for(uint16_t i = 0; i < len; i ++){ + adbs(); + adbn("byte: "); + adbf(inBuffer_[i]); + } break; } inputIsClearUpstream[pnum] = true; } else { if (pnum >= numOutputs){ + ERRLIGHT_ON; error("LK: link recv msg for out of bounds port, entire msg to follow:"); + adbs(); + adbn("link name is " + name_); + adbf(); // important to debug this, for(uint16_t i = 0; i < len; i ++){ adbs(); diff --git a/embedded/src/hunks/hunk_link.h b/atsamd51j19/src/hunks/hunk_link.h similarity index 100% rename from embedded/src/hunks/hunk_link.h rename to atsamd51j19/src/hunks/hunk_link.h diff --git a/embedded/src/hunks/hunk_loadcell.cpp b/atsamd51j19/src/hunks/hunk_loadcell.cpp similarity index 100% rename from embedded/src/hunks/hunk_loadcell.cpp rename to atsamd51j19/src/hunks/hunk_loadcell.cpp diff --git a/embedded/src/hunks/hunk_loadcell.h b/atsamd51j19/src/hunks/hunk_loadcell.h similarity index 100% rename from embedded/src/hunks/hunk_loadcell.h rename to atsamd51j19/src/hunks/hunk_loadcell.h diff --git a/embedded/src/hunks/hunk_pin.cpp b/atsamd51j19/src/hunks/hunk_pin.cpp similarity index 100% rename from embedded/src/hunks/hunk_pin.cpp rename to atsamd51j19/src/hunks/hunk_pin.cpp diff --git a/embedded/src/hunks/hunk_pin.h b/atsamd51j19/src/hunks/hunk_pin.h similarity index 100% rename from embedded/src/hunks/hunk_pin.h rename to atsamd51j19/src/hunks/hunk_pin.h diff --git a/embedded/src/hunks/hunk_stepper.cpp b/atsamd51j19/src/hunks/hunk_stepper.cpp similarity index 88% rename from embedded/src/hunks/hunk_stepper.cpp rename to atsamd51j19/src/hunks/hunk_stepper.cpp index 0546e9d20dcf0e73411b4b94551a5b0f785ec681..7f061a04b8e722dc8fe29174a2f42c520085aa8d 100644 --- a/embedded/src/hunks/hunk_stepper.cpp +++ b/atsamd51j19/src/hunks/hunk_stepper.cpp @@ -48,14 +48,16 @@ Stepper::Stepper(){ type_ = "stepper"; // input: int16's -> moves-to-make buffer ... append to end, timer handles // output: flow controlled int16's out of a ringbuffer ... timer puts in, we remove (interrupt) - numInputs = 1; + numInputs = 2; inputs[0] = incIn; + inputs[1] = enableIn; numOutputs = 2; outputs[0] = incOut; outputs[1] = sgOut; // - numStates = 1; + numStates = 2; states[0] = cscaleState; + states[1] = enableState; } // fast and loose spi utilities @@ -190,6 +192,23 @@ boolean Stepper::stateChangeCallback_0(void){ return true; } +boolean Stepper::stateChangeCallback_1(void){ + boolean reqState = enableState->swapValue(); + set_enable_state(reqState); + return true; +} + +void Stepper::set_enable_state(boolean newValue){ + if(newValue){ + disable_tmc262(); + startup_tmc262(); + enable_tmc262(); + } else { + disable_tmc262(); + } + enableState->set(newValue); +} + void Stepper::set_cscale(uint16_t cscale){ uint32_t cscale_mask = 0b00000000000000000000000000011111; if(cscale > 24){ @@ -383,63 +402,19 @@ void Stepper::init(void){ } void Stepper::loop(void){ - // debuuug - //PORT->Group[1].OUTTGL.reg = (uint32_t)(1 << 0); - //GPIO_PORT.OUTTGL.reg = STEP_BM; - // to simulate... - //if(lpcnt_ == 0){ - /* - if(false){ - int32_t stepsync = 4500; - if(rb_in_rp == rb_in_wp){ - // debug, - TIMER_A_DEBUG_PORT.OUTTGL.reg = TIMER_A_DEBUG_BM; - rb_incoming[rb_in_wp ++] = stepsync += 200; - if(rb_in_wp >= INC_RB_SIZE){ - rb_in_wp = 0; - } - rb_incoming[rb_in_wp ++] = stepsync += 200; - if(rb_in_wp >= INC_RB_SIZE){ - rb_in_wp = 0; - } - rb_incoming[rb_in_wp ++] = stepsync += 200; - if(rb_in_wp >= INC_RB_SIZE){ - rb_in_wp = 0; - } - rb_incoming[rb_in_wp ++] = stepsync += 200; - if(rb_in_wp >= INC_RB_SIZE){ - rb_in_wp = 0; - } - rb_incoming[rb_in_wp ++] = stepsync += 200; - if(rb_in_wp >= INC_RB_SIZE){ - rb_in_wp = 0; - } - } - } - */ - // debug / testing... - /* - if(true){ - if(rb_in_rp == rb_in_wp){ - rb_incoming[rb_in_wp ++] = 10; - if(rb_in_wp >= INC_RB_SIZE){ - rb_in_wp = 0; - } - } - } - */ lpcnt_ ++; - // ok, at loop we just handle the buffers // do we have things to put? - if(incIn->io()){ - // ignoring full case, - rb_incoming[rb_in_wp] = incIn->get(); + if(incIn->io()){ //} && rb_in_len < INC_RB_SIZE){ + // how do we find the 'full' case? + int32_t tmp = incIn->get(); + rb_incoming[rb_in_wp] = tmp; rb_in_wp ++; + rb_in_len ++; if(rb_in_wp >= INC_RB_SIZE){ rb_in_wp = 0; } } - + /* // if we have a clear output, and there are elements in the outbuffer if(!(incOut->io()) && (rb_out_rp != rb_out_wp)){ dbs(); @@ -449,13 +424,21 @@ void Stepper::loop(void){ incOut->put(rb_outgoing[rb_out_rp]); // atm we don't actually check if this is clear, we assume this & the other clear simultaneously, // which might be a big mistakeo, we'll see ... in either case, they sync by the same rb pointers, so - sgOut->put(rb_sg_outgoing[rb_out_rp]); + if(!sgOut->io()){ + sgOut->put(rb_sg_outgoing[rb_out_rp]); + } // to note: stall guard also reads zero when velocities are low, so ... rb_out_rp ++; if(rb_out_rp >= INC_RB_SIZE){ rb_out_rp = 0; } } + */ + + // need to handle new on / off states + if(enableIn->io()){ + set_enable_state(enableIn->get()); + } } // to proceed: second timer for steps, push to step pin @@ -465,33 +448,34 @@ void Stepper::loop(void){ // then hook to an example, timing ? void Stepper::isr_handler_a(void){ - TIMER_A_DEBUG_PORT.OUTTGL.reg = TIMER_A_DEBUG_BM; - // register ... point to ? - // clear a flag, TC0->COUNT32.INTFLAG.bit.MC0 = 1; - TC0->COUNT32.INTFLAG.bit.MC1 = 1; - // pull from handlers, write to step timer, push back to rbout - // (1) if we made a move, push it upstream, - if(did_make_move){ - rb_outgoing[rb_out_wp] = the_made_move; - rb_sg_outgoing[rb_out_wp] = the_made_sg; - rb_out_wp ++; - if(rb_out_wp >= INC_RB_SIZE){ - rb_out_wp = 0; + TC0->COUNT32.INTFLAG.bit.MC1 = 1; + TIMER_A_DEBUG_PORT.OUTTGL.reg = TIMER_A_DEBUG_BM; + // register ... point to ? + // clear a flag, + // pull from handlers, write to step timer, push back to rbout + // (1) if we made a move, push it upstream, + if(did_make_move){ + rb_outgoing[rb_out_wp] = the_made_move; + rb_sg_outgoing[rb_out_wp] = the_made_sg; + rb_out_wp ++; + if(rb_out_wp >= INC_RB_SIZE){ + rb_out_wp = 0; + } } - } - // (2) if we have a next move, write timer business - if(rb_in_rp != rb_in_wp){ - setup_for_move(rb_incoming[rb_in_rp]); - rb_in_rp ++; - if(rb_in_rp >= INC_RB_SIZE){ - rb_in_rp = 0; + // (2) if we have a next move, write timer business + if(rb_in_rp != rb_in_wp){ + setup_for_move(rb_incoming[rb_in_rp]); + rb_in_rp ++; + rb_in_len --; + if(rb_in_rp >= INC_RB_SIZE){ + rb_in_rp = 0; + } + setup_to_read_sg(); + } else { + // no moves to make, write and read are at heads with one another + setup_for_hold_interval(); } - setup_to_read_sg(); - } else { - // no moves to make, write and read are at heads with one another - setup_for_hold_interval(); - } } void Stepper::isr_handler_b(void){ diff --git a/embedded/src/hunks/hunk_stepper.h b/atsamd51j19/src/hunks/hunk_stepper.h similarity index 82% rename from embedded/src/hunks/hunk_stepper.h rename to atsamd51j19/src/hunks/hunk_stepper.h index 768534fae6430b57ffdca0e838ea024992c0c636..20bcd2b6cdda9f7fd04ea90766c4cab98867da36 100644 --- a/embedded/src/hunks/hunk_stepper.h +++ b/atsamd51j19/src/hunks/hunk_stepper.h @@ -7,8 +7,10 @@ #include "hunks/hunks.h" #include "transports/net_int32.h" #include "transports/net_uint32.h" +#include "transports/net_boolean.h" #include "states/state_uint16.h" -#define INC_RB_SIZE 32 +#include "states/state_boolean.h" +#define INC_RB_SIZE 8 // have max 65 536 in 2nd counter, ticks should be equal to // at max slowness #define STEP_TICKER_A_COUNTS 16383 @@ -19,6 +21,7 @@ private: volatile int32_t rb_incoming[INC_RB_SIZE]; volatile uint8_t rb_in_rp = 0; // read ptr, volatile uint8_t rb_in_wp = 0; // write ptr + volatile uint8_t rb_in_len = 0; volatile int32_t rb_outgoing[INC_RB_SIZE]; volatile uint32_t rb_sg_outgoing[INC_RB_SIZE]; volatile uint8_t rb_out_rp = 0; @@ -30,7 +33,7 @@ private: volatile boolean did_make_move = false; volatile int32_t the_made_move = 0; volatile uint32_t the_made_sg = 1024; - volatile boolean step_ = false; + boolean step_ = false; // hardware, baby... ok, did this with defines, nvm uint16_t lpcnt_ = 0; public: @@ -40,10 +43,15 @@ public: void loop(void); // io, want signed ints? for now.. nothing Inp_int32* incIn = new Inp_int32("increment"); + Inp_boolean* enableIn = new Inp_boolean("enable"); Outp_int32* incOut = new Outp_int32("increment"); Outp_uint32* sgOut = new Outp_uint32("stallGuard"); - // this is wonderful to be able to set + // current, enable State_uint16* cscaleState = new State_uint16("current (6-24)", 16); + State_boolean* enableState = new State_boolean("enable", true); + boolean stateChangeCallback_0(void) override; + boolean stateChangeCallback_1(void) override; + void set_enable_state(boolean newValue); // handlers... how to make a table of these ? void isr_handler_a(void) override; void isr_handler_b(void) override; @@ -54,7 +62,6 @@ public: void setup_for_hold_interval(void); // and settings catchers, void set_cscale(uint16_t cscale); - boolean stateChangeCallback_0(void) override; }; #endif diff --git a/embedded/src/hunks/hunklist.h b/atsamd51j19/src/hunks/hunklist.h similarity index 93% rename from embedded/src/hunks/hunklist.h rename to atsamd51j19/src/hunks/hunklist.h index 577c406cbb592ce217b767440a05b0c70e39248c..a8ecd0c4f25032704288db776ab9eaf81f51cb19 100644 --- a/embedded/src/hunks/hunklist.h +++ b/atsamd51j19/src/hunks/hunklist.h @@ -19,6 +19,7 @@ #include "hunks/pins/hunk_pin_pa12_output.h" #include "hunks/math/hunk_booleaninversion.h" #include "hunks/hunk_stepper.h" +#include "hunks/hunk_int32_debugger.h" #include "hunks/hunk_pin.h" #include "hunks/hunk_loadcell.h" @@ -29,7 +30,7 @@ - in Manager::allocateHunkByType(string), add to the if/else ... */ -#define HUNK_LIST_LENGTH 17 +#define HUNK_LIST_LENGTH 18 String hunklist[HUNK_LIST_LENGTH] = { "comm/COBSerialUSB", @@ -47,6 +48,7 @@ String hunklist[HUNK_LIST_LENGTH] = { "pins/pa12_output", "math/booleaninversion", "stepper", + "int32_debugger", "loadcell", "pin" }; diff --git a/embedded/src/hunks/hunks.cpp b/atsamd51j19/src/hunks/hunks.cpp similarity index 100% rename from embedded/src/hunks/hunks.cpp rename to atsamd51j19/src/hunks/hunks.cpp diff --git a/embedded/src/hunks/hunks.h b/atsamd51j19/src/hunks/hunks.h similarity index 100% rename from embedded/src/hunks/hunks.h rename to atsamd51j19/src/hunks/hunks.h diff --git a/embedded/src/hunks/math/hunk_adder.cpp b/atsamd51j19/src/hunks/math/hunk_adder.cpp similarity index 100% rename from embedded/src/hunks/math/hunk_adder.cpp rename to atsamd51j19/src/hunks/math/hunk_adder.cpp diff --git a/embedded/src/hunks/math/hunk_adder.h b/atsamd51j19/src/hunks/math/hunk_adder.h similarity index 100% rename from embedded/src/hunks/math/hunk_adder.h rename to atsamd51j19/src/hunks/math/hunk_adder.h diff --git a/embedded/src/hunks/math/hunk_booleaninversion.cpp b/atsamd51j19/src/hunks/math/hunk_booleaninversion.cpp similarity index 100% rename from embedded/src/hunks/math/hunk_booleaninversion.cpp rename to atsamd51j19/src/hunks/math/hunk_booleaninversion.cpp diff --git a/embedded/src/hunks/math/hunk_booleaninversion.h b/atsamd51j19/src/hunks/math/hunk_booleaninversion.h similarity index 100% rename from embedded/src/hunks/math/hunk_booleaninversion.h rename to atsamd51j19/src/hunks/math/hunk_booleaninversion.h diff --git a/embedded/src/hunks/pins/hunk_pin_localring.cpp b/atsamd51j19/src/hunks/pins/hunk_pin_localring.cpp similarity index 100% rename from embedded/src/hunks/pins/hunk_pin_localring.cpp rename to atsamd51j19/src/hunks/pins/hunk_pin_localring.cpp diff --git a/embedded/src/hunks/pins/hunk_pin_localring.h b/atsamd51j19/src/hunks/pins/hunk_pin_localring.h similarity index 100% rename from embedded/src/hunks/pins/hunk_pin_localring.h rename to atsamd51j19/src/hunks/pins/hunk_pin_localring.h diff --git a/embedded/src/hunks/pins/hunk_pin_pa10_input.cpp b/atsamd51j19/src/hunks/pins/hunk_pin_pa10_input.cpp similarity index 100% rename from embedded/src/hunks/pins/hunk_pin_pa10_input.cpp rename to atsamd51j19/src/hunks/pins/hunk_pin_pa10_input.cpp diff --git a/embedded/src/hunks/pins/hunk_pin_pa10_input.h b/atsamd51j19/src/hunks/pins/hunk_pin_pa10_input.h similarity index 100% rename from embedded/src/hunks/pins/hunk_pin_pa10_input.h rename to atsamd51j19/src/hunks/pins/hunk_pin_pa10_input.h diff --git a/embedded/src/hunks/pins/hunk_pin_pa12_output.cpp b/atsamd51j19/src/hunks/pins/hunk_pin_pa12_output.cpp similarity index 100% rename from embedded/src/hunks/pins/hunk_pin_pa12_output.cpp rename to atsamd51j19/src/hunks/pins/hunk_pin_pa12_output.cpp diff --git a/embedded/src/hunks/pins/hunk_pin_pa12_output.h b/atsamd51j19/src/hunks/pins/hunk_pin_pa12_output.h similarity index 100% rename from embedded/src/hunks/pins/hunk_pin_pa12_output.h rename to atsamd51j19/src/hunks/pins/hunk_pin_pa12_output.h diff --git a/embedded/src/isrcpp.cpp b/atsamd51j19/src/isrcpp.cpp similarity index 100% rename from embedded/src/isrcpp.cpp rename to atsamd51j19/src/isrcpp.cpp diff --git a/embedded/src/isrcpp.h b/atsamd51j19/src/isrcpp.h similarity index 100% rename from embedded/src/isrcpp.h rename to atsamd51j19/src/isrcpp.h diff --git a/embedded/src/main.cpp b/atsamd51j19/src/main.cpp similarity index 98% rename from embedded/src/main.cpp rename to atsamd51j19/src/main.cpp index 402761bf7fc7bf1360d98192c95257c3d7f2ced8..7d2a10694564929666ed5454fbbc4e39d37a58d2 100644 --- a/embedded/src/main.cpp +++ b/atsamd51j19/src/main.cpp @@ -9,7 +9,7 @@ #include "trunk.h" // bootstrap type -#define BOOT_USB 1 +#define BOOT_USB 0 #define RING_CASE 0 void setup() { diff --git a/embedded/src/manager.cpp b/atsamd51j19/src/manager.cpp similarity index 99% rename from embedded/src/manager.cpp rename to atsamd51j19/src/manager.cpp index 418e90474f700d33be7fbfb0dc0ca6424364e234..88bb6c9292ee9ae2c5ddaaf39d87e145a2519f45 100644 --- a/embedded/src/manager.cpp +++ b/atsamd51j19/src/manager.cpp @@ -321,6 +321,8 @@ Hunk* allocateHunkByType(String type){ return new PA12_Output(); } else if (type == "stepper") { return new Stepper(); + } else if (type == "int32_debugger") { + return new Int32_Debugger(); } else if (type == "loadcell"){ return new Loadcell(); } else if (type == "pin") { diff --git a/embedded/src/manager.h b/atsamd51j19/src/manager.h similarity index 100% rename from embedded/src/manager.h rename to atsamd51j19/src/manager.h diff --git a/embedded/src/states/state_boolean.cpp b/atsamd51j19/src/states/state_boolean.cpp similarity index 100% rename from embedded/src/states/state_boolean.cpp rename to atsamd51j19/src/states/state_boolean.cpp diff --git a/embedded/src/states/state_boolean.h b/atsamd51j19/src/states/state_boolean.h similarity index 100% rename from embedded/src/states/state_boolean.h rename to atsamd51j19/src/states/state_boolean.h diff --git a/embedded/src/states/state_string.cpp b/atsamd51j19/src/states/state_string.cpp similarity index 100% rename from embedded/src/states/state_string.cpp rename to atsamd51j19/src/states/state_string.cpp diff --git a/embedded/src/states/state_string.h b/atsamd51j19/src/states/state_string.h similarity index 100% rename from embedded/src/states/state_string.h rename to atsamd51j19/src/states/state_string.h diff --git a/embedded/src/states/state_uint16.cpp b/atsamd51j19/src/states/state_uint16.cpp similarity index 100% rename from embedded/src/states/state_uint16.cpp rename to atsamd51j19/src/states/state_uint16.cpp diff --git a/embedded/src/states/state_uint16.h b/atsamd51j19/src/states/state_uint16.h similarity index 100% rename from embedded/src/states/state_uint16.h rename to atsamd51j19/src/states/state_uint16.h diff --git a/embedded/src/states/state_uint32.cpp b/atsamd51j19/src/states/state_uint32.cpp similarity index 100% rename from embedded/src/states/state_uint32.cpp rename to atsamd51j19/src/states/state_uint32.cpp diff --git a/embedded/src/states/state_uint32.h b/atsamd51j19/src/states/state_uint32.h similarity index 100% rename from embedded/src/states/state_uint32.h rename to atsamd51j19/src/states/state_uint32.h diff --git a/embedded/src/states/states.cpp b/atsamd51j19/src/states/states.cpp similarity index 100% rename from embedded/src/states/states.cpp rename to atsamd51j19/src/states/states.cpp diff --git a/embedded/src/states/states.h b/atsamd51j19/src/states/states.h similarity index 100% rename from embedded/src/states/states.h rename to atsamd51j19/src/states/states.h diff --git a/embedded/src/transports/multimessagedevice.cpp b/atsamd51j19/src/transports/multimessagedevice.cpp similarity index 100% rename from embedded/src/transports/multimessagedevice.cpp rename to atsamd51j19/src/transports/multimessagedevice.cpp diff --git a/embedded/src/transports/multimessagedevice.h b/atsamd51j19/src/transports/multimessagedevice.h similarity index 100% rename from embedded/src/transports/multimessagedevice.h rename to atsamd51j19/src/transports/multimessagedevice.h diff --git a/embedded/src/transports/net_boolean.cpp b/atsamd51j19/src/transports/net_boolean.cpp similarity index 100% rename from embedded/src/transports/net_boolean.cpp rename to atsamd51j19/src/transports/net_boolean.cpp diff --git a/embedded/src/transports/net_boolean.h b/atsamd51j19/src/transports/net_boolean.h similarity index 100% rename from embedded/src/transports/net_boolean.h rename to atsamd51j19/src/transports/net_boolean.h diff --git a/embedded/src/transports/net_byteArray.cpp b/atsamd51j19/src/transports/net_byteArray.cpp similarity index 100% rename from embedded/src/transports/net_byteArray.cpp rename to atsamd51j19/src/transports/net_byteArray.cpp diff --git a/embedded/src/transports/net_byteArray.h b/atsamd51j19/src/transports/net_byteArray.h similarity index 100% rename from embedded/src/transports/net_byteArray.h rename to atsamd51j19/src/transports/net_byteArray.h diff --git a/embedded/src/transports/net_int32.cpp b/atsamd51j19/src/transports/net_int32.cpp similarity index 100% rename from embedded/src/transports/net_int32.cpp rename to atsamd51j19/src/transports/net_int32.cpp diff --git a/embedded/src/transports/net_int32.h b/atsamd51j19/src/transports/net_int32.h similarity index 100% rename from embedded/src/transports/net_int32.h rename to atsamd51j19/src/transports/net_int32.h diff --git a/embedded/src/transports/net_uint32.cpp b/atsamd51j19/src/transports/net_uint32.cpp similarity index 100% rename from embedded/src/transports/net_uint32.cpp rename to atsamd51j19/src/transports/net_uint32.cpp diff --git a/embedded/src/transports/net_uint32.h b/atsamd51j19/src/transports/net_uint32.h similarity index 100% rename from embedded/src/transports/net_uint32.h rename to atsamd51j19/src/transports/net_uint32.h diff --git a/embedded/src/transports/nets.cpp b/atsamd51j19/src/transports/nets.cpp similarity index 100% rename from embedded/src/transports/nets.cpp rename to atsamd51j19/src/transports/nets.cpp diff --git a/embedded/src/transports/nets.h b/atsamd51j19/src/transports/nets.h similarity index 100% rename from embedded/src/transports/nets.h rename to atsamd51j19/src/transports/nets.h diff --git a/embedded/src/transports/typeset.cpp b/atsamd51j19/src/transports/typeset.cpp similarity index 100% rename from embedded/src/transports/typeset.cpp rename to atsamd51j19/src/transports/typeset.cpp diff --git a/embedded/src/transports/typeset.h b/atsamd51j19/src/transports/typeset.h similarity index 100% rename from embedded/src/transports/typeset.h rename to atsamd51j19/src/transports/typeset.h diff --git a/embedded/src/trunk.cpp b/atsamd51j19/src/trunk.cpp similarity index 100% rename from embedded/src/trunk.cpp rename to atsamd51j19/src/trunk.cpp diff --git a/embedded/src/trunk.h b/atsamd51j19/src/trunk.h similarity index 100% rename from embedded/src/trunk.h rename to atsamd51j19/src/trunk.h diff --git a/embedded/src/utils/cobs.cpp b/atsamd51j19/src/utils/cobs.cpp similarity index 100% rename from embedded/src/utils/cobs.cpp rename to atsamd51j19/src/utils/cobs.cpp diff --git a/embedded/src/utils/cobs.h b/atsamd51j19/src/utils/cobs.h similarity index 100% rename from embedded/src/utils/cobs.h rename to atsamd51j19/src/utils/cobs.h diff --git a/embedded/test/README b/atsamd51j19/test/README similarity index 100% rename from embedded/test/README rename to atsamd51j19/test/README diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..b68c1eeaf8f76043a1400140203f050cec4a9fc9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,539 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@serialport/binding-abstract": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-2.0.5.tgz", + "integrity": "sha512-oRg0QRsXJFKHQbQjmo0regKLZ9JhjLmTqc47ocJgYM5UtU9Q1VFrVPh0B2lr2pfm/tr3aNvTLX1eiVAvXyZ/bg==", + "requires": { + "debug": "^4.1.1" + } + }, + "@serialport/binding-mock": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-2.0.5.tgz", + "integrity": "sha512-1kD1qI686pIIolGZ6TPjAtvy8c3XIUlE4OXRZf7ZHaZgGaOUHAUMLKZt4tNTxsfedRTFyiYyHoe5QAbx82R9pQ==", + "requires": { + "@serialport/binding-abstract": "^2.0.5", + "debug": "^4.1.1" + } + }, + "@serialport/bindings": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@serialport/bindings/-/bindings-2.0.8.tgz", + "integrity": "sha512-paKLa9JkoH5FAy2sATTdXLCiKpuKn0pN15/etcCqzX8vi25fnQgJ8Yx9Z6zdbcKe1No7s/9PuH9yfjDR61fbOQ==", + "requires": { + "@serialport/binding-abstract": "^2.0.5", + "@serialport/parser-readline": "^2.0.2", + "bindings": "^1.3.0", + "debug": "^4.1.1", + "nan": "^2.13.2", + "prebuild-install": "^5.2.1" + } + }, + "@serialport/parser-byte-length": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-2.0.2.tgz", + "integrity": "sha512-cUOprk1uRLucCJy6m+wAM4pwdBaB5D4ySi6juwRScP9DTjKUvGWYj5jzuqvftFBvYFmFza89aLj5K23xiiqj7Q==" + }, + "@serialport/parser-cctalk": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-2.0.2.tgz", + "integrity": "sha512-5LMysRv7De+TeeoKzi4+sgouD4tqZEAn1agAVevw+7ILM0m30i1zgZLtchgxtCH7OoQRAkENEVEPc0OwhghKgw==" + }, + "@serialport/parser-delimiter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-2.0.2.tgz", + "integrity": "sha512-zB02LahFfyZmJqak9l37vP/F1K+KCUxd1KQj35OhD1+0q/unMjVTZmsfkxFSM4gkaxP9j7+8USk+LQJ3V8U26Q==" + }, + "@serialport/parser-readline": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-2.0.2.tgz", + "integrity": "sha512-thL26dGEHB+eINNydJmzcLLhiqcBQkF+wNTbRaYblTP/6dm7JsfjYSud7bTkN63AgE0xpe9tKXBFqc8zgJ1VKg==", + "requires": { + "@serialport/parser-delimiter": "^2.0.2" + } + }, + "@serialport/parser-ready": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-2.0.2.tgz", + "integrity": "sha512-6ynQ+HIIkFQcEO2Hrq4Qmdz+hlJ7kjTHGQ1E7SRN7f70nnys1v3HSke8mjK3RzVw+SwL0rBYjftUdCTrU+7c+Q==" + }, + "@serialport/parser-regex": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-2.0.2.tgz", + "integrity": "sha512-7qjYd7AdHUK8fJOmHpXlMRipqRCVMMyDFyf/5TQQiOt6q+BiFjLOtSpVXhakHwgnXanzDYKeRSB8zM0pZZg+LA==" + }, + "@serialport/stream": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@serialport/stream/-/stream-2.0.5.tgz", + "integrity": "sha512-9gc3zPoAqs/04mvq8TdZ7GxtnacCDuw3/u0u18UXXHgC/5tNDYkY+hXFIJB1fQFnP5yyNB1L2XLfX974ySJg9Q==", + "requires": { + "@serialport/binding-mock": "^2.0.5", + "debug": "^4.1.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", + "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", + "requires": { + "readable-stream": "^3.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "chownr": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "requires": { + "once": "^1.4.0" + } + }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "napi-build-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", + "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==" + }, + "node-abi": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.11.0.tgz", + "integrity": "sha512-kuy/aEg75u40v378WRllQ4ZexaXJiCvB68D2scDXclp/I4cRq6togpbOoKhmN07tns9Zldu51NNERo0wehfX9g==", + "requires": { + "semver": "^5.4.1" + } + }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "prebuild-install": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.1.tgz", + "integrity": "sha512-lRLBU0JPXBbpC/ER9PtVYYk1y9Rme1WiMA3WKEQ4v78A5kTsqQtrEyYlbghvXCA6Uhr/769SkhibQznjDBRZpg==", + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.7.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "serialport": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/serialport/-/serialport-7.1.5.tgz", + "integrity": "sha512-NplGdqaY+ZL8t3t5egbT+3oqLW4d7WvDT/x1ACxAyWa1fSnx+KTAmlDHeCls39lXwu8voaOr3bPOW4bwM7PdAA==", + "requires": { + "@serialport/binding-mock": "^2.0.5", + "@serialport/bindings": "^2.0.8", + "@serialport/parser-byte-length": "^2.0.2", + "@serialport/parser-cctalk": "^2.0.2", + "@serialport/parser-delimiter": "^2.0.2", + "@serialport/parser-readline": "^2.0.2", + "@serialport/parser-ready": "^2.0.2", + "@serialport/parser-regex": "^2.0.2", + "@serialport/stream": "^2.0.5", + "debug": "^4.1.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + }, + "simple-get": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.0.3.tgz", + "integrity": "sha512-Wvre/Jq5vgoz31Z9stYWPLn0PqRqmBDpFSdypAnHu5AvRVCYPRYGnvryNLiXu8GOBNDH82J2FRHUGMjjHUpXFw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "tar-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", + "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", + "requires": { + "chownr": "^1.1.1", + "mkdirp": "^0.5.1", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + } + }, + "tar-stream": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", + "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", + "requires": { + "bl": "^3.0.0", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + } +}