Ver código fonte

Squashed 'barcode_gen/' changes from 1fc14cf1f..e038061a1

e038061a1 upd barcodegen
b0e68aaee remove duplicated folder
3bb9f1546 combine 1
52b3c761a move base pack here
REVERT: 1fc14cf1f Added Code128-C support by Z0wl
REVERT: e58df5956 Fixed building instructions
REVERT: 04eb96880 Added Codabar support - Added building instructions to README
REVERT: 7423bef52 Copied changes over from RogueMaster - Added back navigation to text input - Removed extension filter
REVERT: 69de6a23f Update README
REVERT: a5bc321dc Changed fap category to Misc
REVERT: 225a252fa First Commit

git-subtree-dir: barcode_gen
git-subtree-split: e038061a194fa0a51ebdf267286a42e7ca190c66
Willy-JL 2 anos atrás
pai
commit
63663a2654

+ 7 - 3
application.fam

@@ -1,12 +1,16 @@
 App(
-    appid="Barcode_App",
+    appid="barcode_app",
     name="Barcode App",
     apptype=FlipperAppType.EXTERNAL,
     entry_point="barcode_main",
     requires=["gui", "storage"],
     stack_size=2 * 1024,
-    fap_category="Misc",
+    fap_category="Tools",
     fap_icon="images/barcode_10.png",
     fap_icon_assets="images",
-    fap_icon_assets_symbol="barcode_app",
+    fap_file_assets="barcode_encoding_files",
+    fap_author="@Kingal1337",
+    fap_weburl="https://github.com/Kingal1337/flipper-barcode-generator",
+    fap_version="1.1",
+    fap_description="App allows you to display various barcodes on flipper screen",
 )

+ 21 - 0
barcode_app.c

@@ -1,6 +1,9 @@
 #include "barcode_app.h"
 
 #include "barcode_app_icons.h"
+#include <notification/notification.h>
+#include <notification/notification_messages.h>
+#include <notification/notification_app.h>
 
 /**
  * Opens a file browser dialog and returns the filepath of the selected file
@@ -10,6 +13,9 @@
  *                  file_path will be the folder path is nothing is selected
  * @returns true if a file is selected
 */
+
+NotificationApp* notifications = 0;
+
 static bool select_file(const char* folder, FuriString* file_path) {
     DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
     DialogsFileBrowserOptions browser_options;
@@ -286,6 +292,12 @@ void free_app(BarcodeApp* app) {
     free(app);
 }
 
+void set_backlight_brightness(float brightness) {
+    NotificationApp* notifications = furi_record_open(RECORD_NOTIFICATION);
+    notifications->settings.display_brightness = brightness;
+    notification_message(notifications, &sequence_display_backlight_on);
+}
+
 int32_t barcode_main(void* p) {
     UNUSED(p);
     BarcodeApp* app = malloc(sizeof(BarcodeApp));
@@ -306,6 +318,13 @@ int32_t barcode_main(void* p) {
 
     submenu_add_item(app->main_menu, "Edit Barcode", EditBarcodeItem, submenu_callback, app);
 
+    NotificationApp* notifications = furi_record_open(RECORD_NOTIFICATION);
+    // Save original brightness
+    float originalBrightness = notifications->settings.display_brightness;
+    // force backlight and increase brightness
+    notification_message_block(notifications, &sequence_display_backlight_enforce_on);
+    set_backlight_brightness(10); // set to highest
+
     /*****************************
      * Creating Text Input View
      ******************************/
@@ -343,6 +362,8 @@ int32_t barcode_main(void* p) {
     view_dispatcher_run(app->view_dispatcher);
 
     free_app(app);
+    notification_message_block(notifications, &sequence_display_backlight_enforce_auto);
+    set_backlight_brightness(originalBrightness);
 
     return 0;
 }

+ 4 - 7
barcode_app.h

@@ -23,20 +23,17 @@
 #define BARCODE_HEIGHT 50
 #define BARCODE_Y_START 3
 
-//the folder where the encodings are located
-#define BARCODE_DATA_FILE_DIR_PATH EXT_PATH("apps_data/barcode_data")
-
 //the folder where the codabar encoding table is located
-#define CODABAR_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/codabar_encodings.txt"
+#define CODABAR_DICT_FILE_PATH APP_ASSETS_PATH("codabar_encodings.txt")
 
 //the folder where the code 39 encoding table is located
-#define CODE39_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/code39_encodings.txt"
+#define CODE39_DICT_FILE_PATH APP_ASSETS_PATH("code39_encodings.txt")
 
 //the folder where the code 128 encoding table is located
-#define CODE128_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/code128_encodings.txt"
+#define CODE128_DICT_FILE_PATH APP_ASSETS_PATH("code128_encodings.txt")
 
 //the folder where the code 128 C encoding table is located
-#define CODE128C_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/code128c_encodings.txt"
+#define CODE128C_DICT_FILE_PATH APP_ASSETS_PATH("code128c_encodings.txt")
 
 //the folder where the user stores their barcodes
 #define DEFAULT_USER_BARCODES EXT_PATH("apps_data/barcodes")

+ 0 - 0
encoding_tables/codabar_encodings.txt → barcode_encoding_files/codabar_encodings.txt


+ 0 - 0
encoding_tables/code128_encodings.txt → barcode_encoding_files/code128_encodings.txt


+ 0 - 0
encoding_tables/code128c_encodings.txt → barcode_encoding_files/code128c_encodings.txt


+ 0 - 0
encoding_tables/code39_encodings.txt → barcode_encoding_files/code39_encodings.txt


+ 0 - 1
barcode_utils.c

@@ -97,7 +97,6 @@ BarcodeTypeObj* get_type(FuriString* type_string) {
         return barcode_type_objs[CODABAR];
     }
 
-
     return barcode_type_objs[UNKNOWN];
 }
 

+ 1 - 1
barcode_utils.h

@@ -3,7 +3,7 @@
 #include <furi.h>
 #include <furi_hal.h>
 
-#define NUMBER_OF_BARCODE_TYPES 8 
+#define NUMBER_OF_BARCODE_TYPES 8
 
 typedef enum {
     WrongNumberOfDigits, //There is too many or too few digits in the barcode

+ 10 - 11
barcode_validator.c

@@ -355,7 +355,7 @@ void code_128_loader(BarcodeData* barcode_data) {
 void code_128c_loader(BarcodeData* barcode_data) {
     int barcode_length = furi_string_size(barcode_data->raw_data);
 
-    //the start code for character set C 
+    //the start code for character set C
     int start_code_value = 105;
 
     //The bits for the start code
@@ -396,14 +396,14 @@ void code_128c_loader(BarcodeData* barcode_data) {
     } else {
         FuriString* value = furi_string_alloc();
         FuriString* char_bits = furi_string_alloc();
-        for(int i = 0; i < barcode_length; i+=2) {
+        for(int i = 0; i < barcode_length; i += 2) {
             char barcode_char1 = furi_string_get_char(barcode_data->raw_data, i);
-            char barcode_char2 = furi_string_get_char(barcode_data->raw_data, i+1);
+            char barcode_char2 = furi_string_get_char(barcode_data->raw_data, i + 1);
             FURI_LOG_I(TAG, "c128c bc1='%c' bc2='%c'", barcode_char1, barcode_char2);
 
             char current_chars[4];
             snprintf(current_chars, 3, "%c%c", barcode_char1, barcode_char2);
-	    FURI_LOG_I(TAG, "c128c current_chars='%s'", current_chars);
+            FURI_LOG_I(TAG, "c128c current_chars='%s'", current_chars);
 
             //using the value of the characters, get the characters bits
             if(!flipper_format_read_string(ff, current_chars, char_bits)) {
@@ -434,13 +434,12 @@ void code_128c_loader(BarcodeData* barcode_data) {
         }
         //calculate the check digit and convert it into a c string for lookup in the encoding table
         final_check_digit = checksum_adder % 103;
-	FURI_LOG_I(TAG, "c128c finale_check_digit=%d", final_check_digit);
+        FURI_LOG_I(TAG, "c128c finale_check_digit=%d", final_check_digit);
 
-	int length = snprintf(NULL, 0, "%d", final_check_digit);
-	if (final_check_digit < 100)
-            length=2;
-        char* final_check_digit_string = malloc(length+1);
-	snprintf(final_check_digit_string, length + 1, "%02d", final_check_digit);
+        int length = snprintf(NULL, 0, "%d", final_check_digit);
+        if(final_check_digit < 100) length = 2;
+        char* final_check_digit_string = malloc(length + 1);
+        snprintf(final_check_digit_string, length + 1, "%02d", final_check_digit);
 
         //after the checksum has been calculated, add the bits to the full barcode
         if(!flipper_format_read_string(ff, final_check_digit_string, char_bits)) {
@@ -475,7 +474,7 @@ void code_128c_loader(BarcodeData* barcode_data) {
     furi_string_free(barcode_bits);
 }
 
-void codabar_loader(BarcodeData* barcode_data){
+void codabar_loader(BarcodeData* barcode_data) {
     int barcode_length = furi_string_size(barcode_data->raw_data);
 
     int min_digits = barcode_data->type_obj->min_digits;

BIN
img/1.png


BIN
img/2.png


BIN
img/3.png


BIN
img/Codabar Data Example.png


BIN
img/Creating Barcode.png


BIN
img/Flipper Barcode.png


BIN
img/Flipper Box Barcode.png


+ 1 - 1
views/barcode_view.c

@@ -322,7 +322,7 @@ static void draw_code_128(Canvas* canvas, BarcodeData* barcode_data) {
         canvas, 62, y + height + 8, AlignCenter, AlignBottom, furi_string_get_cstr(raw_data));
 }
 
-static void draw_codabar(Canvas* canvas, BarcodeData* barcode_data){
+static void draw_codabar(Canvas* canvas, BarcodeData* barcode_data) {
     FuriString* raw_data = barcode_data->raw_data;
     FuriString* barcode_digits = barcode_data->correct_data;
     //BarcodeTypeObj* type_obj = barcode_data->type_obj;

+ 2 - 1
views/create_view.c

@@ -448,7 +448,8 @@ void save_barcode(CreateView* create_view_object) {
 
         flipper_format_write_string_cstr(ff, "Version", FILE_VERSION);
 
-        flipper_format_write_comment_cstr(ff, "Types - UPC-A, EAN-8, EAN-13, CODE-39, CODE-128, Codabar");
+        flipper_format_write_comment_cstr(
+            ff, "Types - UPC-A, EAN-8, EAN-13, CODE-39, CODE-128, Codabar");
 
         flipper_format_write_string_cstr(ff, "Type", barcode_type->name);