From 364a129180f79b67855dc69e532082614420240b Mon Sep 17 00:00:00 2001 From: TytanRock Date: Sat, 22 Aug 2020 18:30:55 -0400 Subject: [PATCH 1/3] Self-Test Snapshot functional Added self-test snapshot functionality to PenguinTuner --- backend/headers/backend.h | 4 ++++ backend/lib/libPenguin_Backend.so | Bin 135936 -> 140856 bytes config/MainApp.ui | 4 +++- native/include/can_devices.h | 1 + native/src/app_callbacks.c | 19 +++++++++++++++++++ native/src/can_devices.c | 4 ++++ version.txt | 2 +- 7 files changed, 32 insertions(+), 2 deletions(-) diff --git a/backend/headers/backend.h b/backend/headers/backend.h index 9c6c3f3..cf3193a 100644 --- a/backend/headers/backend.h +++ b/backend/headers/backend.h @@ -24,6 +24,7 @@ typedef enum _action_type Set_ID, Set_Name, Blink, + Snapshot, Update_Firmware, Get_Firm_status, }action_type; @@ -52,6 +53,7 @@ typedef struct _backend_action int intParam; void (*functionParam)(double,int); + void *pointerParam; char stringParam[100]; backend_callback callback; @@ -69,6 +71,8 @@ backend_error get_devices(can_device_t *devices, int maxDeviceCount, int *device backend_error set_device_id(const can_device_t *device, int id, backend_callback callback); backend_error set_device_name(const can_device_t *device, const char *name, backend_callback callback); backend_error blink_device(const can_device_t *device, backend_callback callback); +backend_error get_device_snapshot(const can_device_t *device, backend_callback callback); + backend_error update_device_firmware(const can_device_t *device, const char *firmware_file, void (*firm_upgrade_callback)(double, int), backend_callback callback); #endif diff --git a/backend/lib/libPenguin_Backend.so b/backend/lib/libPenguin_Backend.so index e2c7743a4d598bf798393056b4c561cedb7e3e90..e30a805cf8efb25d710a4a82dfce841f673422ad 100755 GIT binary patch delta 50579 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

EKg1Uy>S10B<$e%j zVeSPKAF}=z=!mRu5DBOUzd5`+lsGEB1cMb2r;!2+a6hv4xG2GcFTnF5;UwP$?o*-_ z%xV@8?|{-gz(0kYv;0!jt#kYcG(0c5B0pmTX#cRKML;ZrUU32OGM-unL_BgJJ|KPt z*eW1aBi)362%v@}2E;~WcI$vRh#)B-f{^cLVkuHf4u}sRIt4VO(>5R`Lbqrp=D?J8 z&;&&m%furP-GYe}h)xTLO&vp)RdlyFjO>qR;&PN(=j+4`D6Oo3Q2!K}$iyb(Uu!1% zA^F^Z7>vBi3y6A{n#@EuR6QpkDiEP96DN^1sZ2~kDYg%Y`KZc$t`jdqO2>dW49+wr zwnB?^CMKh96$HeYeB^&76Msi$6b8gXB;O@qwQJ7R5V6&%=FN7+VLq@823Y(c(qOzJ zO3~&6@ayAOLut-$Lm~V5Y}_~F597Bv--rByLu%y-DgmCL)E{ZYN2w7>LQ6o2xh>uM zCw#c?(n4M_hNaoH-R0OZtZkv%acn2FP-B89tNBjoY$w_=EunfZJ1J@gZenVY0d{gy z7u;JhYvjMiFekKvKAUG`K^eQ4#ZLoq>UR9#Qln^fVS8RY-jd2!2v|C+2Vdpcd6~+G z4uD|^;PX`;o0rudH}-heS_y%VmaJj0+@8o{(ltYQmO77YPh~BpLIh@(+4hIq<#l6O z^0X2bH^GfmV&(SUp%S&Mhjd_NeTCe$?_}-N5El!_<+)Rd<64hnFlw$nhb3vbqXEZ9 zsX=9Yl=9|~F-K`$q>YQ)Cijk26L+P25$ms&hcz=%O#qCXN7iKaM~MTNq!ja29wGAv z80KARnm72OdG~D73Zjm?*CnkmQ=V+u16kbgu(>}HQy*f|=3al%To`Z%YO{-7mKk!hJkQjr{Y9N_q3E7YZ<9_=qY|hko~9~wX`)h+Qi*Goe)+en ziIu=q-NMC|uTOAwy0RDxvaU{1rcQBk>@^ccxb&Lxbhp8+_1c>@VO4SS>fFt0{@S(48%+?{nEhHtRIAbYP86QtQL$t?fts zI{!9=tn8@z%N$$BAnNxEhEH zMeAP2!d!nRuI1p0r~LI~B_qRhij^)`NPT0ra=RLAn&k-+^d#Pi?N6(QS=_AZB}y;c zO{65NGEiM|ak?roU*)0lbhj|>pu#B8g;5f27}+sYl39@KUhBhpO>q-dM{u$`5SM4- zo-or?Vj5><4noTGBt|Z0S@`13= znLS|^s9EY>)yViL^}5UZUA3d4DD`%fRXW1HaJ=0ro^l9g7iFpmHj>GAU#CSKRRmPR z{B?y$-!AH{p9kkZ1S9OCL7KZ?`Yaf3_iICmrr(IsggwB07pvvdypQm5w=)ve>uc2u zI@wbYtS+{E6kdt>Zs(EFS-rk|m1x(oXl8a+vVP(1DNo;>r(S{C)UrpXFIP<{$7|^6 zL3zt0tR|`zKRe$=RTHr~>_(emKeA<%Xmgz=673){hGvJ^laZ8XG0ei(p~oUA7X&E( zV+$iG)6rzvHz5{^B#nZm>}ysQNg1vpeaU7;QugP7@;RFlNm-&O``P$N%C{Xk&%?L3{dv4U?gQUIwkf2yE>Ax1Y<<@9_trL3H3+KWN)+Hk)-y@*0)%f zNXjTx5O1&!k(A~tp`9!@l2V2_0IOkX1|@`YEx@Rn?O@3U36!lW>$b7@NJ^fnC9klk zNJ^TDvz4((%HycwY%@E*QCBIqW~nBsR6q~IHn9_pNt#lKS`BAUMQR@N~zU~6jYPM%%^#fDb>r5V=!IFxy{g$ug<*|KYd&geW zT76B=0T9&~$c<$q(Hiq&u~#>-Im7!cU*DpCsNO$~&5eqB--i}zH8AyHWAI@PJ z@|QU*JL#5A{tmuCra$`RHoxCD;Aube)yl4AY+H5fxsYt{?o)m0FRVVpUQto~*;4jV z9Gg+SZY|qw+c52}_3U51>Xk3DDqr=4m)Z5KddFr|+3F=**&SIj`+b&NU9g|cXVtIO zu@!N0%J--;$K~F`to5RL#;XS$V$+%2e3*4h?T1&bdHJyVSR&aEEG0E2(b*b06D)WikGOnRqP1V+s+L~7eE7^!|A!Hhtg7EH@_BbY3vVrpI&Tj|=(Cb7_#bbC z=v$waVy$R`%Y8qxcbFwt9zoW2?%p&8dMe9CR?U=qK_2SG^yCf#nO!s`9CtcJt1`sR zb@|;akzE_uWzjXH%33+OfjPyVGrCqJ=|3)iisfyl#_PzvR8A|kX8)glUZ(@=TZ9aj z-$!E6sNCyk{3`xS zu5$64trAVQl&@};@Wg={c!KZ}!p*ZKrG%TOQ|=@D68X(fu&>WhEyw*MGTbUR$SN80 z=+tJy&BIrvfcIIME!tN6{+!aWH8ew-_(efZGs03w*DoUbE1PZl0SrZqh}j+I*? zn}_P}^`cGF`YzXjrFLs8y-ZI5&k+8hY81H8vACBzI08R8SqR~Kr6%m82&SJPHF;49 znC`|-5z1tIej^dut3KCA_OK=Qmw zTt~Q9iRTdi)JHVqAhPeTgd1P(t!D_QEde3xeoEjKBHZ(s2G)}xuK>;M6yFg)ZR-f{ z>S)GwhBV!Ef=y|JhxgLB$>gX{Bszk*WoHQCT&_IMQm!#~PK_h7xh-oN;cqV1c8o>A zscSCbIg*_~A8c-G`x}uv$wH7rLzd}S59$Ex*;+|+*JBNE)!w{KgZ+sAed0HFrhZPi zxxM%V;cK3E1+=!xDf@pQLfLwG-~_&vd;1E!QGG|hR_x+{NNX^RaB~PXg>ZAw^*G_? zFimYrSM7lYcI_=MVfBv}iqK>*h_ufWj=|DN8O zSD|2;8r0CjaW7rTtfRyqw@m|Msn)81OaB=r?3v%m>@%pi<^Zr`v>rv68J5w`^xXJ3_!E)mID3+KmUSv#_!k{x zFh%^F=%&|E^(TEQUZbT)H--->D%?Evm`b=$t~|?9>^E1+SCO0zXD&aSWrL!_{#h2y zYL*fG6)|^{#pf{SZY$@WV+AZtK7Wo~-OlteH5zXhmEx}>WXyTi>6#`k+@aF~qOYTO zWFA?zlyGxkrp_xXd28kT^Jq<`d-ob5C*Pyx%ph^fnVpJedNZvj+&m0$f$*i3T0nb} zla9GVBHbg91sCAfrHc!;uuNB7LkKth(#TH5vC(|AwxVG`*caO1ODCXO+fp zwoK0lFHi*Y#H{irpb{`0-F-!P#e-Ur4y4c#nRNj@8jI7>OeYN~vi~nErLcg=rk9PY z3D2V8$L%EbR+)fkp_xQBSHbQl-1K+z6ye=UwH#XYwl)%OI{bQ%aL;)jO&F~2H6AkD z$l>cGMKJx>r()cua?M=k%O$)oN%m$uYMD>*n@;wwCA`5k0IT&m)G;X!C@O;Kf9YPr zSNG5s$Iz(Z5t;QHiscz1H}y(}Z`Ce2Z4Z&nb-wR`XX4MIT6aH99Hv*YmY8fQeN5*h zc?wrCL%oQ@bkBJW;pTX48sQhe&S;A&2zR|11M(`~V!};liaRtu*4nUE3mBsVtBxX= z-v$m5ZaN=5M|k}LE#NYe%0G$aViNo|3RYLf&JGIb(B>R5C zuTpbiT#x9$dW!J4*9f3$@gm`-6TCNF+*Qb&2ls#LhF%H$RrJNZm+}yg}*~Rha_RLP0Fp!u`->W4^)XMnreK4AlKn0_MPAl&o_zL)Tq=QWjhnD9S6pmFyvOL2P| zxSLX{A4`YIaMKxbrer?kdsiZxGs`PIoL*5GWI~W|^Mt-~0I8A*uGfrSEtyZa`3dL= zjfbqTyIM+MJw-5mOxF-@o`V0B@T{-X;#y(emenFMM9d$kc)L8{r54tbv|{tHXvW8%#(0IfSpCsTn=fE(eaTL-j4g zt|cDxPke4Byw6G<_hCwFHsR5vo7Xol1)lBpHd~3qbddd#!d;Hz#NqvKOA5*6_%Nn8 zlBx@v+1q2QV-oG(?dr5PcAseWg}e!Wpqbz;9eZIwE>Um^az=w4YG?j?t3*gd1m=&?*z;xYUmkY}?sSCp*FutTgy-js>B-ePmTtjx4~CR*J! zlNau-kOwmDPBGq`?d!^Qr5hsVK1B}mjF)mR+_!=jZ}F6cr>jW z?`e>U+0dIF_czE9jUMY8#YF)1HhsjyKgjZ+$&AaI>K7ZBRO_%^cKQuG}bZK&W$NOq4`!$kT>VrJ))D)4t+UIU>(4imutG;S#w7aCG2=erzl2@EFrC OT91vcVDdn^o&NtrL29r7 diff --git a/config/MainApp.ui b/config/MainApp.ui index ccdd005..e159ca3 100644 --- a/config/MainApp.ui +++ b/config/MainApp.ui @@ -53,6 +53,7 @@ + @@ -613,12 +614,13 @@ with matching type True False - + 300 True True True True + txt_device_selftest_snapshot 0 diff --git a/native/include/can_devices.h b/native/include/can_devices.h index c0eab41..0b57963 100644 --- a/native/include/can_devices.h +++ b/native/include/can_devices.h @@ -18,6 +18,7 @@ void react_changed_device(GtkWidget *widget, gpointer data); void react_update_firmware(GtkWidget *widget, gpointer data); void react_changed_name(GtkWidget *widget, gpointer data); void react_blink_device(GtkWidget *widget, gpointer data); +void react_snapshot_device(GtkWidget *widget, gpointer data); #endif diff --git a/native/src/app_callbacks.c b/native/src/app_callbacks.c index 80b677e..789d324 100644 --- a/native/src/app_callbacks.c +++ b/native/src/app_callbacks.c @@ -21,6 +21,8 @@ static struct /* Gtk Widget references that matter */ GtkTreeModel *deviceTreeModel; GtkLevelBar *firmUpgradeStatus; + + GtkTextBuffer *snapshotTxt; }_module; int count = 0; @@ -99,6 +101,16 @@ void frontend_callback(backend_error err, const backend_action *action) dev.id = action->intParam; set_selected_device(dev); } + break; + } + case Snapshot: + { + /* Get contents of string and copy it to module */ + if(err == Ok) + { + gtk_text_buffer_set_text(_module.snapshotTxt, *((char **)action->pointerParam), -1); + } + break; } } } @@ -171,6 +183,11 @@ int connect_all_signals() g_signal_connect(obj, "clicked", G_CALLBACK(react_changed_name), NULL); obj = gtk_builder_get_object(builder, "btn_blink"); g_signal_connect(obj, "clicked", G_CALLBACK(react_blink_device), NULL); + /* Connect objects from the self-test snapshot page */ + obj = gtk_builder_get_object(builder, "btn_blink_clear"); + g_signal_connect(obj, "clicked", G_CALLBACK(react_blink_device), NULL); + obj = gtk_builder_get_object(builder, "btn_snapshot"); + g_signal_connect(obj, "clicked", G_CALLBACK(react_snapshot_device), NULL); obj = gtk_builder_get_object(builder, "txt_device_id"); add_txt_change_id((GtkSpinButton *)obj); @@ -180,6 +197,8 @@ int connect_all_signals() _module.firmUpgradeStatus = (GtkLevelBar *)obj; obj = gtk_builder_get_object(builder, "txt_device_name"); add_txt_device_name((GtkEntry *)obj); + obj = gtk_builder_get_object(builder, "txt_device_selftest_snapshot"); + _module.snapshotTxt = (GtkTextBuffer *)obj; /* Connect server address and port text change to react function */ diff --git a/native/src/can_devices.c b/native/src/can_devices.c index 0e57d3c..6c9b1ee 100644 --- a/native/src/can_devices.c +++ b/native/src/can_devices.c @@ -122,4 +122,8 @@ void react_blink_device(GtkWidget *widget, gpointer data) { blink_device(&_module.selected_device, frontend_callback); } +void react_snapshot_device(GtkWidget *widget, gpointer data) +{ + get_device_snapshot(&_module.selected_device, frontend_callback); +} diff --git a/version.txt b/version.txt index 13abad7..10a97fd 100644 --- a/version.txt +++ b/version.txt @@ -1,4 +1,4 @@ VERSION_MAJOR 0 -VERSION_MINOR 2 +VERSION_MINOR 3 VERSION_PATCH 0 From 84f946643b5271b7356c17d0fe67a5270e0b5101 Mon Sep 17 00:00:00 2001 From: TytanRock Date: Sat, 22 Aug 2020 18:36:39 -0400 Subject: [PATCH 2/3] Added factory default Changed "Copy to clipboard" button in the self-test tab to factory default. This allows anybody to factory default their devices --- backend/headers/backend.h | 2 ++ backend/lib/libPenguin_Backend.so | Bin 140856 -> 141464 bytes config/MainApp.ui | 4 ++-- native/include/can_devices.h | 1 + native/src/app_callbacks.c | 2 ++ native/src/can_devices.c | 4 ++++ 6 files changed, 11 insertions(+), 2 deletions(-) diff --git a/backend/headers/backend.h b/backend/headers/backend.h index cf3193a..0bed680 100644 --- a/backend/headers/backend.h +++ b/backend/headers/backend.h @@ -25,6 +25,7 @@ typedef enum _action_type Set_Name, Blink, Snapshot, + FactoryDefault, Update_Firmware, Get_Firm_status, }action_type; @@ -72,6 +73,7 @@ backend_error set_device_id(const can_device_t *device, int id, backend_callback backend_error set_device_name(const can_device_t *device, const char *name, backend_callback callback); backend_error blink_device(const can_device_t *device, backend_callback callback); backend_error get_device_snapshot(const can_device_t *device, backend_callback callback); +backend_error factory_default_device(const can_device_t *device, backend_callback callback); backend_error update_device_firmware(const can_device_t *device, const char *firmware_file, void (*firm_upgrade_callback)(double, int), backend_callback callback); diff --git a/backend/lib/libPenguin_Backend.so b/backend/lib/libPenguin_Backend.so index e30a805cf8efb25d710a4a82dfce841f673422ad..45e7ac5a3fdbc5e48d66ac1a225b8c26fd492d5b 100755 GIT binary patch delta 47709 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%0AUeos(pD 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 Hxfc0 - - Copy to Clipboard + + Factory Default True True True diff --git a/native/include/can_devices.h b/native/include/can_devices.h index 0b57963..ff7fa09 100644 --- a/native/include/can_devices.h +++ b/native/include/can_devices.h @@ -19,6 +19,7 @@ void react_update_firmware(GtkWidget *widget, gpointer data); void react_changed_name(GtkWidget *widget, gpointer data); void react_blink_device(GtkWidget *widget, gpointer data); void react_snapshot_device(GtkWidget *widget, gpointer data); +void react_default_device(GtkWidget *widget, gpointer data); #endif diff --git a/native/src/app_callbacks.c b/native/src/app_callbacks.c index 789d324..30dc40c 100644 --- a/native/src/app_callbacks.c +++ b/native/src/app_callbacks.c @@ -188,6 +188,8 @@ int connect_all_signals() g_signal_connect(obj, "clicked", G_CALLBACK(react_blink_device), NULL); obj = gtk_builder_get_object(builder, "btn_snapshot"); g_signal_connect(obj, "clicked", G_CALLBACK(react_snapshot_device), NULL); + obj = gtk_builder_get_object(builder, "btn_factory_default"); + g_signal_connect(obj, "clicked", G_CALLBACK(react_default_device), NULL); obj = gtk_builder_get_object(builder, "txt_device_id"); add_txt_change_id((GtkSpinButton *)obj); diff --git a/native/src/can_devices.c b/native/src/can_devices.c index 6c9b1ee..2a54fb1 100644 --- a/native/src/can_devices.c +++ b/native/src/can_devices.c @@ -126,4 +126,8 @@ void react_snapshot_device(GtkWidget *widget, gpointer data) { get_device_snapshot(&_module.selected_device, frontend_callback); } +void react_default_device(GtkWidget *widget, gpointer data) +{ + factory_default_device(&_module.selected_device, frontend_callback); +} From 5af7a7f5a8829ae3fb587000ac4e297180056a1c Mon Sep 17 00:00:00 2001 From: TytanRock Date: Sat, 22 Aug 2020 18:42:41 -0400 Subject: [PATCH 3/3] Added `sudo apt-get update` to config file This should hopefully stop github actions from failing on the config step --- .github/workflows/c-cpp.yml | 2 +- configure => configure.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) rename configure => configure.sh (76%) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 9f9acd1..863287a 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: configure - run: ./configure + run: ./configure.sh - name: 'build and package' run: ./package.sh diff --git a/configure b/configure.sh similarity index 76% rename from configure rename to configure.sh index 53c2a6f..20e21a8 100755 --- a/configure +++ b/configure.sh @@ -1,4 +1,5 @@ #!/bin/sh +sudo apt-get update sudo apt-get install libcurl4-gnutls-dev libgtk-3-dev