From 0aa4491dc6d21d152a8eb1e28cf0ff0db8e3cf83 Mon Sep 17 00:00:00 2001 From: Kristjan Komlosi Date: Wed, 17 Jul 2019 11:16:05 +0200 Subject: [PATCH] started 2019 rewrite --- tinio/library/libcyusbserial.so.1 | Bin 0 -> 125528 bytes tinio/testUtility/CyUSBSerialCommandUtility | Bin 0 -> 26896 bytes tinio/tinio | Bin 0 -> 18504 bytes tinio/tinio.c | 40 ++++++++++++++++++++ tinio/tinio.cpp | 1 - 5 files changed, 40 insertions(+), 1 deletion(-) create mode 100755 tinio/library/libcyusbserial.so.1 create mode 100755 tinio/testUtility/CyUSBSerialCommandUtility create mode 100755 tinio/tinio create mode 100644 tinio/tinio.c diff --git a/tinio/library/libcyusbserial.so.1 b/tinio/library/libcyusbserial.so.1 new file mode 100755 index 0000000000000000000000000000000000000000..4eb942efdabced28529aaff35a01a44937f16736 GIT binary patch literal 125528 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 BB1-@O literal 0 HcmV?d00001 diff --git a/tinio/testUtility/CyUSBSerialCommandUtility b/tinio/testUtility/CyUSBSerialCommandUtility new file mode 100755 index 0000000000000000000000000000000000000000..f834df2065ca63a3e74eed6ed3e9a5dc5abe1e37 GIT binary patch literal 26896 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 literal 0 HcmV?d00001 diff --git a/tinio/tinio b/tinio/tinio new file mode 100755 index 0000000000000000000000000000000000000000..1faf90a9d21702df844d89c9bbc204dcba1f1506 GIT binary patch literal 18504 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 literal 0 HcmV?d00001 diff --git a/tinio/tinio.c b/tinio/tinio.c new file mode 100644 index 0000000..328de9d --- /dev/null +++ b/tinio/tinio.c @@ -0,0 +1,40 @@ +// TinI/O code rewrite of 2019 - fixing a kid's mistakes +// This code is licensed under the ISC license +#include +#include +#include "header/CyUSBSerial.h" +#include + +typedef enum inErr { + USAGE = 0, + INVALID +} inErr; + +void cyErrHandler(CY_RETURN_STATUS err); +void inErrHandler(inErr err); + +bool setPin(CY_HANDLE h, int pinNumber, bool value) { + assert(pinNumber <= 11); // sanity checks, should be sanitized in the parser + assert(pinNumber >=0); + CY_RETURN_STATUS err = CySetGpioValue(h, pinNumber, value); + if (err) cyErrHandler(err); + return value; +} + +bool getPin(CY_HANDLE h, int pinNumber){ + assert(pinNumber <= 11); // sanity checks, should be sanitized in the parser + assert(pinNumber >=0); +} + +bool flpPin(CY_HANDLE h, int pinNumber) { + assert(pinNumber <= 11); // sanity checks, should be sanitized in the parser + assert(pinNumber >=0); + bool val = getPin(h, pinNumber); + val = !val; + setPin(h, pinNumber, val); + return val; +} + + +void parser(int argc, char **args); +int main(int argc, char **args); diff --git a/tinio/tinio.cpp b/tinio/tinio.cpp index 7eeb7cf..ff905d4 100644 --- a/tinio/tinio.cpp +++ b/tinio/tinio.cpp @@ -18,7 +18,6 @@ const CY_VID_PID deviceVidPid{UINT16(0x04b4), uint8_t deviceNumList[maxDevs]; uint8_t deviceCount; CY_DEVICE_INFO deviceInfoList[maxDevs]; - // vars for deviceOpen function CY_HANDLE deviceHandleList[maxDevs];