fix:device ready check

This commit is contained in:
minjaesong
2020-10-23 13:23:11 +09:00
parent 448227debb
commit d579099d9c
2 changed files with 8 additions and 16 deletions

View File

@@ -1,14 +1,7 @@
var ba = com.sendMessageGetBytes(0, [0x44,0x45,0x56,0x4e,0x41,0x4d,0x17]);
var ba = com.sendMessageGetBytes(0, "DEVNAM"+String.fromCharCode(0x17));
serial.println(ba);
for (let k = 0; k < ba.length; k++) {
serial.print(String.fromCharCode(ba[k]));
}
serial.print("\n");
ba = com.pullMessage(0)
for (let k = 0; k < ba.length; k++) {
serial.print(String.fromCharCode(ba[k]));
}
serial.print("\n");
serial.println(ba);
serial.println("\nk bye")

View File

@@ -83,8 +83,7 @@ object SerialHelper {
}
fun waitUntilReady(vm: VM, portNo: Int) {
Thread.sleep(SLEEP_TIME)
//while (!checkIfDeviceIsReady(vm, portNo)) { Thread.sleep(SLEEP_TIME) }
while (!checkIfDeviceIsReady(vm, portNo)) { Thread.sleep(SLEEP_TIME) }
}
@@ -92,7 +91,7 @@ object SerialHelper {
(vm.getIO().mmio_read(4092L + portNo)!! and 1.toByte()) == 1.toByte()
private fun checkIfDeviceIsReady(vm: VM, portNo: Int) =
(vm.getIO().mmio_read(4092L + portNo)!! and 0b110.toByte()) == 0b011.toByte()
(vm.getIO().mmio_read(4092L + portNo)!! and 0b111.toByte()) == 0b011.toByte()
private fun initiateWriting(vm: VM, portNo: Int) {
vm.getIO().mmio_write(4092L + portNo, 0b1110)
@@ -130,10 +129,10 @@ object SerialHelper {
}
class SerialHelperDelegate(val vm: VM) {
fun sendMessage(portNo: Int, message: ByteArray) = SerialHelper.sendMessage(vm, portNo, message)
fun pullMessage(portNo: Int) = SerialHelper.pullMessage(vm, portNo)
fun sendMessageGetBytes(portNo: Int, message: ByteArray) = SerialHelper.sendMessageGetBytes(vm, portNo, message)
fun fetchResponse(portNo: Int) = SerialHelper.fetchResponse(vm, portNo)
fun sendMessage(portNo: Int, message: String) = SerialHelper.sendMessage(vm, portNo, message.toByteArray(VM.CHARSET))
fun pullMessage(portNo: Int) = SerialHelper.pullMessage(vm, portNo).toString(VM.CHARSET)
fun sendMessageGetBytes(portNo: Int, message: String) = SerialHelper.sendMessageGetBytes(vm, portNo, message.toByteArray(VM.CHARSET)).toString(VM.CHARSET)
fun fetchResponse(portNo: Int) = SerialHelper.fetchResponse(vm, portNo).toString(VM.CHARSET)
fun getDeviceStatus(portNo: Int) = SerialHelper.getDeviceStatus(vm, portNo)
fun waitUntilReady(portNo: Int) = SerialHelper.waitUntilReady(vm, portNo)
}