44#include "modules/wifi/wifi.h"
55#include "util/stringUtils.h"
66
7- #define FF_WIFI_NUM_FORMAT_ARGS 10
7+ #define FF_WIFI_NUM_FORMAT_ARGS 11
88
99void ffPrintWifi (FFWifiOptions * options )
1010{
@@ -30,33 +30,68 @@ void ffPrintWifi(FFWifiOptions* options)
3030 if (options -> moduleArgs .outputFormat .length == 0 )
3131 {
3232 ffPrintLogoAndKey (FF_WIFI_MODULE_NAME , moduleIndex , & options -> moduleArgs , FF_PRINT_TYPE_DEFAULT );
33+
34+ FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate ();
3335 if (item -> conn .ssid .length )
3436 {
35- ffStrbufWriteTo (& item -> conn .ssid , stdout );
36- if (item -> conn .protocol .length )
37- printf (" - %s" , item -> conn .protocol .chars );
38- if (item -> conn .security .length )
39- printf (" - %s" , item -> conn .security .chars );
40- putchar ('\n' );
37+ if (item -> conn .signalQuality == item -> conn .signalQuality )
38+ {
39+ if (instance .config .display .percentType & FF_PERCENTAGE_TYPE_BAR_BIT )
40+ {
41+ ffPercentAppendBar (& buffer , item -> conn .signalQuality , options -> percent , & options -> moduleArgs );
42+ ffStrbufAppendC (& buffer , ' ' );
43+ }
44+ }
45+
46+ if (!(instance .config .display .percentType & FF_PERCENTAGE_TYPE_HIDE_OTHERS_BIT ))
47+ {
48+ ffStrbufAppend (& buffer , & item -> conn .ssid );
49+
50+ if (item -> conn .protocol .length )
51+ {
52+ ffStrbufAppendS (& buffer , " - " );
53+ ffStrbufAppend (& buffer , & item -> conn .protocol );
54+ }
55+ if (item -> conn .security .length )
56+ {
57+ ffStrbufAppendS (& buffer , " - " );
58+ ffStrbufAppend (& buffer , & item -> conn .security );
59+ }
60+ ffStrbufAppendC (& buffer , ' ' );
61+ }
62+
63+ if (item -> conn .signalQuality == item -> conn .signalQuality )
64+ {
65+ if (instance .config .display .percentType & FF_PERCENTAGE_TYPE_NUM_BIT )
66+ ffPercentAppendNum (& buffer , item -> conn .signalQuality , options -> percent , buffer .length > 0 , & options -> moduleArgs );
67+ }
68+
69+ ffStrbufTrimRight (& buffer , ' ' );
4170 }
4271 else
4372 {
44- puts ( item -> inf .status . chars );
73+ ffStrbufAppend ( & buffer , & item -> inf .status );
4574 }
75+ ffStrbufPutTo (& buffer , stdout );
4676 }
4777 else
4878 {
79+ FF_STRBUF_AUTO_DESTROY percentNum = ffStrbufCreate ();
80+ ffPercentAppendNum (& percentNum , item -> conn .signalQuality , options -> percent , false, & options -> moduleArgs );
81+ FF_STRBUF_AUTO_DESTROY percentBar = ffStrbufCreate ();
82+ ffPercentAppendBar (& percentBar , item -> conn .signalQuality , options -> percent , & options -> moduleArgs );
4983 FF_PRINT_FORMAT_CHECKED (FF_WIFI_MODULE_NAME , moduleIndex , & options -> moduleArgs , FF_PRINT_TYPE_DEFAULT , FF_WIFI_NUM_FORMAT_ARGS , ((FFformatarg []){
5084 {FF_FORMAT_ARG_TYPE_STRBUF , & item -> inf .description , "inf-desc" },
5185 {FF_FORMAT_ARG_TYPE_STRBUF , & item -> inf .status , "inf-status" },
5286 {FF_FORMAT_ARG_TYPE_STRBUF , & item -> conn .status , "status" },
5387 {FF_FORMAT_ARG_TYPE_STRBUF , & item -> conn .ssid , "ssid" },
5488 {FF_FORMAT_ARG_TYPE_STRBUF , & item -> conn .macAddress , "mac-address" },
5589 {FF_FORMAT_ARG_TYPE_STRBUF , & item -> conn .protocol , "protocol" },
56- {FF_FORMAT_ARG_TYPE_DOUBLE , & item -> conn . signalQuality , "signal-quality" },
90+ {FF_FORMAT_ARG_TYPE_DOUBLE , & percentNum , "signal-quality" },
5791 {FF_FORMAT_ARG_TYPE_DOUBLE , & item -> conn .rxRate , "rx-rate" },
5892 {FF_FORMAT_ARG_TYPE_DOUBLE , & item -> conn .txRate , "tx-rate" },
5993 {FF_FORMAT_ARG_TYPE_STRBUF , & item -> conn .security , "security" },
94+ {FF_FORMAT_ARG_TYPE_STRBUF , & percentBar , "signal-quality-bar" },
6095 }));
6196 }
6297
@@ -77,6 +112,9 @@ bool ffParseWifiCommandOptions(FFWifiOptions* options, const char* key, const ch
77112 if (ffOptionParseModuleArgs (key , subKey , value , & options -> moduleArgs ))
78113 return true;
79114
115+ if (ffPercentParseCommandOptions (key , subKey , value , & options -> percent ))
116+ return true;
117+
80118 return false;
81119}
82120
@@ -93,6 +131,9 @@ void ffParseWifiJsonObject(FFWifiOptions* options, yyjson_val* module)
93131 if (ffJsonConfigParseModuleArgs (key , val , & options -> moduleArgs ))
94132 continue ;
95133
134+ if (ffPercentParseJsonObject (key , val , & options -> percent ))
135+ continue ;
136+
96137 ffPrintError (FF_WIFI_MODULE_NAME , 0 , & options -> moduleArgs , FF_PRINT_TYPE_DEFAULT , "Unknown JSON key %s" , key );
97138 }
98139}
@@ -103,6 +144,8 @@ void ffGenerateWifiJsonConfig(FFWifiOptions* options, yyjson_mut_doc* doc, yyjso
103144 ffInitWifiOptions (& defaultOptions );
104145
105146 ffJsonConfigGenerateModuleArgsConfig (doc , module , & defaultOptions .moduleArgs , & options -> moduleArgs );
147+
148+ ffPercentGenerateJsonConfig (doc , module , defaultOptions .percent , options -> percent );
106149}
107150
108151void ffGenerateWifiJsonResult (FF_MAYBE_UNUSED FFWifiOptions * options , yyjson_mut_doc * doc , yyjson_mut_val * module )
@@ -156,10 +199,11 @@ void ffPrintWifiHelpFormat(void)
156199 "Connection SSID - ssid" ,
157200 "Connection BSSID - bssid" ,
158201 "Connection protocol - protocol" ,
159- "Connection signal quality (percentage) - signal-quality" ,
202+ "Connection signal quality (percentage num ) - signal-quality" ,
160203 "Connection RX rate - rx-rate" ,
161204 "Connection TX rate - tx-rate" ,
162205 "Connection Security algorithm - security" ,
206+ "Connection signal quality (percentage bar) - signal-quality-bar" ,
163207 }));
164208}
165209
@@ -177,6 +221,8 @@ void ffInitWifiOptions(FFWifiOptions* options)
177221 ffGenerateWifiJsonConfig
178222 );
179223 ffOptionInitModuleArg (& options -> moduleArgs );
224+
225+ options -> percent = (FFColorRangeConfig ) { 50 , 20 };
180226}
181227
182228void ffDestroyWifiOptions (FFWifiOptions * options )
0 commit comments