Skip to content

Commit

Permalink
Merge pull request #4 from TytanRock/Blink-Name
Browse files Browse the repository at this point in the history
Added functionality for blinking and changing device name
  • Loading branch information
TytanRock committed Aug 21, 2020
2 parents 8cc2a7e + 1e3224b commit 96697e3
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 5 deletions.
4 changes: 4 additions & 0 deletions backend/headers/backend.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ typedef enum _action_type
{
No_Action,
Set_ID,
Set_Name,
Blink,
Update_Firmware,
Get_Firm_status,
}action_type;
Expand Down Expand Up @@ -65,6 +67,8 @@ backend_error set_ip(char *ipAddr);
backend_error get_devices(can_device_t *devices, int maxDeviceCount, int *deviceCount);

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 update_device_firmware(const can_device_t *device, const char *firmware_file, void (*firm_upgrade_callback)(double, int), backend_callback callback);

#endif
Expand Down
Binary file modified backend/lib/libPenguin_Backend.so
Binary file not shown.
3 changes: 3 additions & 0 deletions native/include/can_devices.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@ void add_slct_device_selection(GtkTreeSelection *selector);
void add_lbl_selected_device(GtkLabel *lbl);
void add_txt_change_id(GtkSpinButton *idTxt);
void add_btn_firmware_file(GtkFileChooserButton *btn);
void add_txt_device_name(GtkEntry *entry);

can_device_t get_selected_device();
void set_selected_device(can_device_t newDevice);

void react_changed_id(GtkWidget *widget, gpointer data);
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);

#endif

11 changes: 9 additions & 2 deletions native/src/app_callbacks.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,21 @@ int connect_all_signals()
/* Connect device stuff to can_devices file */
obj = gtk_builder_get_object(builder, "btn_change_id");
g_signal_connect(obj, "clicked", G_CALLBACK(react_changed_id), NULL);
obj = gtk_builder_get_object(builder, "btn_update_devices");
g_signal_connect(obj, "clicked", G_CALLBACK(react_update_firmware), NULL);
obj = gtk_builder_get_object(builder, "btn_change_name");
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);

obj = gtk_builder_get_object(builder, "txt_device_id");
add_txt_change_id((GtkSpinButton *)obj);
obj = gtk_builder_get_object(builder, "btn_choose_firmware");
add_btn_firmware_file((GtkFileChooserButton *)obj);
obj = gtk_builder_get_object(builder, "btn_update_devices");
g_signal_connect(obj, "clicked", G_CALLBACK(react_update_firmware), NULL);
obj = gtk_builder_get_object(builder, "prg_firm_upgrade_status");
_module.firmUpgradeStatus = (GtkLevelBar *)obj;
obj = gtk_builder_get_object(builder, "txt_device_name");
add_txt_device_name((GtkEntry *)obj);

/* Connect server address and port text change to react function */

Expand Down
22 changes: 20 additions & 2 deletions native/src/can_devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ static struct
GtkLabel *selected_device_label;
GtkSpinButton *txt_dev_id;
GtkFileChooserButton *btn_firmware_file;
GtkEntry *txt_device_name;

can_device_t selected_device;
}_module;
Expand Down Expand Up @@ -36,6 +37,12 @@ void add_btn_firmware_file(GtkFileChooserButton *btn)
_module.btn_firmware_file = btn;
}

void add_txt_device_name(GtkEntry *entry)
{
_module.txt_device_name = entry;
}


can_device_t get_selected_device()
{
return _module.selected_device;
Expand Down Expand Up @@ -65,17 +72,18 @@ void react_changed_device(GtkWidget *widget, gpointer data)
GValue value = G_VALUE_INIT;
gtk_tree_model_get_value(tree, &iter, 0, &value); /* Device Name */
strcpy(_module.selected_device.name, g_value_get_string(&value));
gtk_entry_set_text(_module.txt_device_name, g_value_get_string(&value));
g_value_unset(&value);
}
{
GValue value = G_VALUE_INIT;
gtk_tree_model_get_value(tree, &iter, 2, &value); /* Device Name */
gtk_tree_model_get_value(tree, &iter, 2, &value); /* Hardware */
strcpy(_module.selected_device.model, g_value_get_string(&value));
g_value_unset(&value);
}
{
GValue value = G_VALUE_INIT;
gtk_tree_model_get_value(tree, &iter, 3, &value); /* Device Name */
gtk_tree_model_get_value(tree, &iter, 3, &value); /* Device ID */
_module.selected_device.id = g_value_get_int(&value);
g_value_unset(&value);
}
Expand Down Expand Up @@ -105,3 +113,13 @@ void react_update_firmware(GtkWidget *widget, gpointer data)
update_device_firmware(&_module.selected_device, firmware_file, frontend_update_firm_status, frontend_callback);
}

void react_changed_name(GtkWidget *widget, gpointer data)
{
const char *new_name = gtk_entry_get_text(_module.txt_device_name);
set_device_name(&_module.selected_device, new_name, frontend_callback);
}
void react_blink_device(GtkWidget *widget, gpointer data)
{
blink_device(&_module.selected_device, frontend_callback);
}

2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION_MAJOR 0
VERSION_MINOR 1
VERSION_MINOR 2
VERSION_PATCH 0

0 comments on commit 96697e3

Please sign in to comment.