From 3f307cc0aff9bd0dabaeb6a7e5bc9b939366cda7 Mon Sep 17 00:00:00 2001 From: "hsinyu.chen" Date: Mon, 10 Mar 2025 00:58:51 +0800 Subject: [PATCH 1/5] add wifi7 320Mhz support --- .../wifianalyzer/wifi/band/WiFiChannelsGHZ6.kt | 15 +++++++-------- .../wifi/channelgraph/ChannelGraphNavigation.kt | 3 +-- .../wifi/channelgraph/ChannelGraphView.kt | 6 +++++- .../com/vrem/wifianalyzer/wifi/model/WiFiWidth.kt | 14 ++++++++------ .../vrem/wifianalyzer/wifi/scanner/Transformer.kt | 2 +- app/src/main/res/layout/graph_content.xml | 11 ----------- .../vrem/wifianalyzer/wifi/model/WiFiWidthTest.kt | 5 +++++ 7 files changed, 27 insertions(+), 29 deletions(-) diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiChannelsGHZ6.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiChannelsGHZ6.kt index 0947fa00c..f4087411a 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiChannelsGHZ6.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/band/WiFiChannelsGHZ6.kt @@ -36,14 +36,13 @@ class WiFiChannelsGHZ6 : WiFiChannels(RANGE, SETS) { if (inRange(frequency)) wiFiChannel(frequency, wiFiChannelPair) else WiFiChannel.UNKNOWN companion object { - val SET1 = WiFiChannelPair(WiFiChannel(1, 5955), WiFiChannel(29, 6095)) - val SET2 = WiFiChannelPair(WiFiChannel(33, 6115), WiFiChannel(61, 6255)) - val SET3 = WiFiChannelPair(WiFiChannel(65, 6275), WiFiChannel(93, 6415)) - val SET4 = WiFiChannelPair(WiFiChannel(97, 6435), WiFiChannel(125, 6575)) - val SET5 = WiFiChannelPair(WiFiChannel(129, 6595), WiFiChannel(157, 6735)) - val SET6 = WiFiChannelPair(WiFiChannel(161, 6755), WiFiChannel(189, 6895)) - val SET7 = WiFiChannelPair(WiFiChannel(193, 6915), WiFiChannel(229, 7095)) - val SETS = listOf(SET1, SET2, SET3, SET4, SET5, SET6, SET7) + val SET1 = WiFiChannelPair(WiFiChannel(1, 5955), WiFiChannel(65, 6275)) + val SET2 = WiFiChannelPair(WiFiChannel(33, 6115), WiFiChannel(97, 6435)) + val SET3 = WiFiChannelPair(WiFiChannel(65, 6275), WiFiChannel(129, 6595)) + val SET4 = WiFiChannelPair(WiFiChannel(97, 6435), WiFiChannel(161, 6755)) + val SET5 = WiFiChannelPair(WiFiChannel(129, 6595), WiFiChannel(189, 6895)) + val SET6 = WiFiChannelPair(WiFiChannel(161, 6755), WiFiChannel(233, 7115)) + val SETS = listOf(SET1, SET2, SET3, SET4, SET5, SET6) private val RANGE = WiFiRange(5925, 7125) } } diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelgraph/ChannelGraphNavigation.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelgraph/ChannelGraphNavigation.kt index e5d88bb4b..a637c1c7e 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelgraph/ChannelGraphNavigation.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelgraph/ChannelGraphNavigation.kt @@ -54,8 +54,7 @@ internal val navigationGHZ6Lines = mapOf( R.id.graphNavigationLine2 to mapOf( R.id.graphNavigationSet4 to WiFiChannelsGHZ6.SET4, R.id.graphNavigationSet5 to WiFiChannelsGHZ6.SET5, - R.id.graphNavigationSet6 to WiFiChannelsGHZ6.SET6, - R.id.graphNavigationSet7 to WiFiChannelsGHZ6.SET7 + R.id.graphNavigationSet6 to WiFiChannelsGHZ6.SET6 ) ) diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelgraph/ChannelGraphView.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelgraph/ChannelGraphView.kt index aa533b1e3..141b9ed09 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelgraph/ChannelGraphView.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/channelgraph/ChannelGraphView.kt @@ -53,11 +53,15 @@ internal fun makeGraphView( wiFiChannelPair: WiFiChannelPair ): GraphView { val resources = mainContext.resources - return GraphViewBuilder(wiFiChannelPair.numX(), graphMaximumY, themeStyle, true) + val gridView = GraphViewBuilder(wiFiChannelPair.numX(), graphMaximumY, themeStyle, true) .setLabelFormatter(ChannelAxisLabel(wiFiBand, wiFiChannelPair)) .setVerticalTitle(resources.getString(R.string.graph_axis_y)) .setHorizontalTitle(resources.getString(R.string.graph_channel_axis_x)) .build(mainContext.context) + if(wiFiBand.ghz6) { + gridView.gridLabelRenderer.setHorizontalLabelsAngle(45) + } + return gridView; } internal fun makeDefaultSeries(frequencyEnd: Int, minX: Int): TitleLineGraphSeries { diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiWidth.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiWidth.kt index 6f92e537e..1eea15721 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiWidth.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/model/WiFiWidth.kt @@ -22,11 +22,11 @@ import kotlin.math.abs typealias ChannelWidth = Int -typealias CalculateCenter = (primary: Int, center: Int) -> Int +typealias CalculateCenter = (primary: Int, center: Int, center1: Int) -> Int -internal val calculateCenter20: CalculateCenter = { primary, _ -> primary } +internal val calculateCenter20: CalculateCenter = { primary, _ ,_ -> primary } -internal val calculateCenter40: CalculateCenter = { primary, center -> +internal val calculateCenter40: CalculateCenter = { primary, center, _ -> if (abs(primary - center) >= WiFiWidth.MHZ_40.frequencyWidthHalf) { (primary + center) / 2 } else { @@ -34,9 +34,9 @@ internal val calculateCenter40: CalculateCenter = { primary, center -> } } -internal val calculateCenter80: CalculateCenter = { _, center -> center } +internal val calculateCenter80: CalculateCenter = { _, center, _ -> center } -internal val calculateCenter160: CalculateCenter = { primary, center -> +internal val calculateCenter160: CalculateCenter = { primary, center, _ -> when (primary) { // 5GHz in 5170..5330 -> 5250 @@ -53,13 +53,15 @@ internal val calculateCenter160: CalculateCenter = { primary, center -> else -> center } } +internal val calculateCenter320: CalculateCenter = { _, _, center1 ->center1 } enum class WiFiWidth(val channelWidth: ChannelWidth, val frequencyWidth: Int, val guardBand: Int, val calculateCenter: CalculateCenter) { MHZ_20(ScanResult.CHANNEL_WIDTH_20MHZ, 20, 2, calculateCenter20), MHZ_40(ScanResult.CHANNEL_WIDTH_40MHZ, 40, 3, calculateCenter40), MHZ_80(ScanResult.CHANNEL_WIDTH_80MHZ, 80, 3, calculateCenter80), MHZ_160(ScanResult.CHANNEL_WIDTH_160MHZ, 160, 3, calculateCenter160), - MHZ_80_PLUS(ScanResult.CHANNEL_WIDTH_80MHZ_PLUS_MHZ, 80, 3, calculateCenter80); + MHZ_80_PLUS(ScanResult.CHANNEL_WIDTH_80MHZ_PLUS_MHZ, 80, 3, calculateCenter80), + MHZ_320(ScanResult.CHANNEL_WIDTH_320MHZ, 320, 3, calculateCenter320); val frequencyWidthHalf: Int = frequencyWidth / 2 diff --git a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/scanner/Transformer.kt b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/scanner/Transformer.kt index a18f14936..da0c10739 100644 --- a/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/scanner/Transformer.kt +++ b/app/src/main/kotlin/com/vrem/wifianalyzer/wifi/scanner/Transformer.kt @@ -61,7 +61,7 @@ internal class Transformer(private val cache: Cache) { private fun transform(cacheResult: CacheResult): WiFiDetail { val scanResult = cacheResult.scanResult val wiFiWidth = WiFiWidth.findOne(scanResult.channelWidth) - val centerFrequency = wiFiWidth.calculateCenter(scanResult.frequency, scanResult.centerFreq0) + val centerFrequency = wiFiWidth.calculateCenter(scanResult.frequency, scanResult.centerFreq0, scanResult.centerFreq1) val mc80211 = scanResult.is80211mcResponder val wiFiStandard = WiFiStandard.findOne(scanResult) val fastRoaming = FastRoaming.find(scanResult) diff --git a/app/src/main/res/layout/graph_content.xml b/app/src/main/res/layout/graph_content.xml index 2215d9116..ec10212ca 100644 --- a/app/src/main/res/layout/graph_content.xml +++ b/app/src/main/res/layout/graph_content.xml @@ -123,17 +123,6 @@ android:minHeight="0dp" tools:text="600-699" /> -