Exemple #1
0
int amb8420Read(void *buf, uint16_t bufsize)
{
//    RPRINTF("amb8420Read\n");
    int result;
    uint8_t *src = rxBuffer;

    rxCursor = 0;

    result = recvLength;
    switch (currentAddressMode) {
    case AMB8420_ADDR_MODE_NONE:
        break;
    case AMB8420_ADDR_MODE_ADDR:
        result--; src++;
        break;
    case AMB8420_ADDR_MODE_ADDRNET:
        result -= 2; src += 2;
        break;
    }

    if (result > bufsize) result = bufsize;
    else if (result <= 0) return -EBADMSG;

    memcpy(buf, src, result);

    somePacketsReceived = true;

//  end:
#if USE_THREADS
    // enable Rx interrupts back
    serialEnableRX(AMB8420_UART_ID);
#endif

    return result;
}
Exemple #2
0
uint_t serialSetReceiveHandle(uint8_t id, SerialCallback_t functionHandle) {
    if (id >= SERIAL_COUNT) return -1;
    serialRecvCb[id] = functionHandle;
    if (functionHandle) {
        // Enable Serial RX automatically
        serialEnableRX(id);
    }
    return 0;
}
Exemple #3
0
// --------------------------------------------
// --------------------------------------------
void appMain(void)
{
    serialEnableRX(PRINTF_SERIAL_ID);
    // serialSetReceiveHandle(PRINTF_SERIAL_ID, onSerRecv);
    serialSetPacketReceiveHandle(PRINTF_SERIAL_ID, onSerRecv, serBuffer, SER_BUF_SIZE);

    radioSetReceiveHandle(onRadioRecv);
    radioOn();
    mdelay(200);

    // Send restart message to the phaser
    send_ctrl_msg(MSG_ACT_RESTART);

    while (1) {
        mdelay(RATE_DELAY);
        led0Toggle();
    }
}