Просмотр исходного кода

mobile born suica & mobile logo deployed

zinongli 11 месяцев назад
Родитель
Сommit
046559c1b3

+ 1 - 0
api/metroflip/metroflip_api.h

@@ -173,6 +173,7 @@ extern const Icon I_Suica_MinusSign7;
 extern const Icon I_Suica_MinusSign8;
 extern const Icon I_Suica_MinusSign9;
 extern const Icon I_Suica_MitaI;
+extern const Icon I_Suica_MobileLogo;
 extern const Icon I_Suica_NambokuN;
 extern const Icon I_Suica_Nothing;
 extern const Icon I_Suica_OedoE;

+ 1 - 0
api/metroflip/metroflip_api_table_i.h

@@ -111,6 +111,7 @@ static constexpr auto metroflip_api_table = sort(create_array_t<sym_entry>(
     API_VARIABLE(I_Suica_MinusSign8, Icon),
     API_VARIABLE(I_Suica_MinusSign9, Icon),
     API_VARIABLE(I_Suica_MitaI, Icon),
+    API_VARIABLE(I_Suica_MobileLogo, Icon),
     API_VARIABLE(I_Suica_NambokuN, Icon),
     API_VARIABLE(I_Suica_Nothing, Icon),
     API_VARIABLE(I_Suica_OedoE, Icon),

+ 2 - 1
api/suica/suica_assets.h

@@ -5,7 +5,7 @@
 #include "suica_structs_i.h"
 
 
-#define SUICA_RAILWAY_NUM 23 // Don't count Unknown
+#define SUICA_RAILWAY_NUM 24 // Don't count Unknown
 
 #define SUICA_RAILWAY_UNKNOWN_NAME "Unknown"
 // Railway
@@ -16,6 +16,7 @@ static const Railway RailwaysList[] = {
     {0x01, {0, 0}, "Tokaido Main", 21, SuicaJR, "JT", 0},
     {0x02, {0, 0}, "Keihin Tohoku", 22, SuicaJR, "JK", 0},
     {0x02, {0, 0}, "Utsunomiya", 33, SuicaJR, "JU", 0},
+    {0x02, {0, 0}, "Mobile Suica", 1, SuicaMobile, "", 0},
     {0x1D, {0, 0}, "Negishi", 10, SuicaJR, "JK", 0},
 
     // Tokyo Waterfront Area Rapid Transit TWR

+ 14 - 6
api/suica/suica_drawings.h

@@ -25,7 +25,7 @@
 #define TERMINAL_IN_CAR_SUPP_MACHINE    0x24
 #define TERMINAL_POS_AND_TAXI           0xC7
 #define TERMINAL_VENDING_MACHINE        0xC8
-#define PROCESSING_CODE_RECHARGE       0x02
+#define PROCESSING_CODE_RECHARGE        0x02
 #define ARROW_ANIMATION_FRAME_MS        350
 
 typedef enum {
@@ -50,6 +50,9 @@ static void suica_draw_train_page_1(
     case SuicaJR:
         canvas_draw_icon(canvas, 1, 12, &I_Suica_JRLogo);
         break;
+    case SuicaMobile:
+        canvas_draw_icon(canvas, 4, 15, &I_Suica_MobileLogo);
+        break;
     case SuicaTokyoMetro:
         canvas_draw_icon(canvas, 2, 12, &I_Suica_TokyoMetroLogo);
         break;
@@ -70,11 +73,17 @@ static void suica_draw_train_page_1(
     }
 
     // Entry Text
-    canvas_set_font(canvas, FontPrimary);
-    canvas_draw_str(canvas, 26, 23, history.entry_line.long_name);
+    if (history.entry_line.type == SuicaMobile) {
+        canvas_set_font(canvas, FontPrimary);
+        canvas_draw_str(canvas, 28, 28, "Mobile Suica");
+    } else {
+        canvas_set_font(canvas, FontPrimary);
+        canvas_draw_str(canvas, 26, 23, history.entry_line.long_name);
+    
+        canvas_set_font(canvas, FontSecondary);
+        canvas_draw_str(canvas, 2, 34, furi_string_get_cstr(history.entry_station.name));
+    }
 
-    canvas_set_font(canvas, FontSecondary);
-    canvas_draw_str(canvas, 2, 34, furi_string_get_cstr(history.entry_station.name));
 
     if(!is_birthday) {
         // Exit logo
@@ -504,7 +513,6 @@ static void suica_draw_vending_machine_page_2(
     canvas_draw_line(canvas, 62, 12, 62, 17);
     canvas_draw_line(canvas, 62, 12, 59, 9);
 
-
     // Vending Machine
     canvas_draw_icon(canvas, 4, 12, &I_Suica_VendingMachine);
 

+ 1 - 0
api/suica/suica_structs_i.h

@@ -7,6 +7,7 @@ typedef enum {
     SuicaTokyoMetro,
     SuicaToei,
     SuicaJR,
+    SuicaMobile,
     SuicaTWR,
     SuicaTokyoMonorail,
     SuicaRailwayTypeMax,

+ 1 - 0
files/suica/line_0x02.txt

@@ -55,3 +55,4 @@
 0x02,0x3e,Utsunomiya,Nasushiobara,33,0
 0x02,0x3f,Utsunomiya,Kuroiso,34,0
 
+0x02,0xfd,Mobile Suica,MobileSuica,1,0