用 APDU 和布尔重写函数

Re writing Funcition with APDU & Boolean

我需要一些帮助

我需要这个函数return一个布尔值,如果 while 被执行或没有。

你能帮帮我吗?

让我们重写 API 中的 APDU 示例,因为它显然已损坏。它会在不需要时生成一个单独的请求 receiveBytes

public boolean receiveIncomingFNEL(APDU apdu) {
    byte[] buf = apdu.getBuffer();

    short bytesRead = apdu.setIncomingAndReceive();
    // NOTE: we must always call setIncomingAndReceive() first
    short offsetCdata = apdu.getOffsetCdata();
    short bytesLeft = apdu.getIncomingLength() - bytesRead;
    boolean receiveBytesRequired = true;
    while (true) {
        // --- do something with the bytes in buf, offsetCdata and bytesRead here
        if (bytesLeft <= 0) {
             receiveBytesRequired = false;
             break;
        }
        bytesRead = apdu.receiveBytes(offsetCdata);
        bytesLeft -= bytesRead;
    }
    // --- do other stuff
    return receiveBytesRequired;
}

while() 循环中的 if & break 语句有点奇怪,但这是我能想到的唯一方法APDU 缓冲区和调用 receiveBytes() 的部分。这是因为 setIncomingAndReceive() 在调用中包含一个 receiveBytes()(欢迎创建正常 while 循环的想法)。