Skip to content

Commit

Permalink
Use packages
Browse files Browse the repository at this point in the history
  • Loading branch information
loucass003 committed Oct 5, 2023
1 parent 3d538c7 commit a9897e1
Show file tree
Hide file tree
Showing 11 changed files with 56 additions and 20 deletions.
2 changes: 1 addition & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
}

rootProject.name = "EspflashKotlin"
rootProject.name = "espflashkotlin"
2 changes: 2 additions & 0 deletions src/main/kotlin/Errors.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
package dev.llelievr.espflashkotlin

enum class FlashError(val value: Byte, val meaning: String) {
INVALID_MESSAGE(0x05, "Received message is invalid (parameters or length field is invalid)"),
FAILED_TO_ACT(0x06, "Failed to act on received message"),
Expand Down
8 changes: 5 additions & 3 deletions src/main/kotlin/Flasher.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import targets.ESP32Target
import targets.Esp32c3Target
import targets.Esp8266Target
package dev.llelievr.espflashkotlin

import dev.llelievr.espflashkotlin.targets.ESP32Target
import dev.llelievr.espflashkotlin.targets.Esp32c3Target
import dev.llelievr.espflashkotlin.targets.Esp8266Target
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException
import java.util.logging.*
Expand Down
1 change: 1 addition & 0 deletions src/main/kotlin/FlasherTarget.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
package dev.llelievr.espflashkotlin

interface FlasherTarget {

Expand Down
2 changes: 2 additions & 0 deletions src/main/kotlin/Packets.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
package dev.llelievr.espflashkotlin

import java.nio.ByteBuffer
import java.nio.ByteOrder
import kotlin.experimental.and
Expand Down
3 changes: 3 additions & 0 deletions src/main/kotlin/SLIPParser.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
package dev.llelievr.espflashkotlin


import java.io.ByteArrayOutputStream

@OptIn(ExperimentalStdlibApi::class)
Expand Down
2 changes: 2 additions & 0 deletions src/main/kotlin/Stub.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
package dev.llelievr.espflashkotlin

import kotlinx.serialization.*
import kotlinx.serialization.json.Json
import java.io.File
Expand Down
10 changes: 5 additions & 5 deletions src/main/kotlin/targets/ESP32Target.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package targets
package dev.llelievr.espflashkotlin.targets

import Command
import FlasherStub
import FlasherTarget
import loadStubFromResource
import dev.llelievr.espflashkotlin.Command
import dev.llelievr.espflashkotlin.FlasherStub
import dev.llelievr.espflashkotlin.FlasherTarget
import dev.llelievr.espflashkotlin.loadStubFromResource
import kotlin.experimental.or

open class ESP32Target : FlasherTarget {
Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/targets/Esp32c3Target.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package targets
package dev.llelievr.espflashkotlin.targets

import loadStubFromResource
import dev.llelievr.espflashkotlin.loadStubFromResource

class Esp32c3Target : ESP32Target() {
override fun init() {
Expand Down
10 changes: 5 additions & 5 deletions src/main/kotlin/targets/Esp8266Target.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package targets
package dev.llelievr.espflashkotlin.targets

import Command
import FlasherStub
import FlasherTarget
import loadStubFromResource
import dev.llelievr.espflashkotlin.Command
import dev.llelievr.espflashkotlin.FlasherStub
import dev.llelievr.espflashkotlin.FlasherTarget
import dev.llelievr.espflashkotlin.loadStubFromResource
import kotlin.experimental.or

class Esp8266Target : FlasherTarget {
Expand Down
32 changes: 28 additions & 4 deletions src/test/kotlin/Main.kt
Original file line number Diff line number Diff line change
@@ -1,19 +1,43 @@
package dev.llelievr.espflashkotlin

import com.fazecast.jSerialComm.SerialPort
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.IOException
import java.io.InputStream
import java.net.URL

class LibraryTest: FlasherSerialInterface {

private var port: SerialPort? = null

fun flash() {
Flasher(this, false)
.addBin(File("C:\\Users\\louca\\Documents\\SlimeVR\\SlimeVR-Tracker-ESP\\.pio\\build\\esp32\\bootloader.bin").readBytes(), 4096)
.addBin(File("C:\\Users\\louca\\Documents\\SlimeVR\\SlimeVR-Tracker-ESP\\.pio\\build\\esp32\\partitions.bin").readBytes(), 32768)
.addBin(File("C:\\Users\\louca\\.platformio\\packages\\[email protected]\\tools\\partitions\\boot_app0.bin").readBytes(), 57344)
.addBin(File("C:\\Users\\louca\\Documents\\SlimeVR\\SlimeVR-Tracker-ESP\\.pio\\build\\esp32\\firmware.bin").readBytes(), 65536)
.addBin(File("C:\\Users\\louca\\Documents\\SlimeVR\\SlimeVR-Tracker-ESP\\.pio\\build\\esp32c3\\bootloader.bin").readBytes(), 0x0000)
.addBin(File("C:\\Users\\louca\\Documents\\SlimeVR\\SlimeVR-Tracker-ESP\\.pio\\build\\esp32c3\\partitions.bin").readBytes(), 0x8000)
.addBin(File("C:\\Users\\louca\\.platformio\\packages\\[email protected]\\tools\\partitions\\boot_app0.bin").readBytes(), 0xe000)
.addBin(File("C:\\Users\\louca\\Documents\\SlimeVR\\SlimeVR-Tracker-ESP\\.pio\\build\\esp32c3\\firmware.bin").readBytes(), 0x10000)
// .addBin(downloadFirmware("http://127.0.0.1:9099/slimevr-firmware-builds/7e3c6081-0adb-4b12-9382-69c6174dcbd0/firmware-part-0.bin") ?: error("unable to download"), 0)
.flash()
}

fun downloadFirmware(url: String): ByteArray? {
val outputStream = ByteArrayOutputStream()

try {
val chunk = ByteArray(4096)
var bytesRead: Int
val stream: InputStream = URL(url).openStream()
while (stream.read(chunk).also { bytesRead = it } > 0) {
outputStream.write(chunk, 0, bytesRead)
}
} catch (e: IOException) {
error("Cant download firmware $url")
}

return outputStream.toByteArray()
}

override fun openSerial() {
val ports = SerialPort.getCommPorts()
val firstPort = ports.first() ?: error("unable to find port")
Expand Down

0 comments on commit a9897e1

Please sign in to comment.