Rename api-hal to furi-hal (#629)

This commit is contained in:
あく
2021-08-08 21:03:25 +03:00
committed by GitHub
parent 7907cb232b
commit 0a97d6913c
192 changed files with 2276 additions and 2212 deletions

View File

@@ -2,12 +2,12 @@
#include <assert.h>
#include <main.h>
#include <furi.h>
#include <api-hal-spi.h>
#include <furi-hal-spi.h>
static osThreadAttr_t platform_irq_thread_attr;
static volatile osThreadId_t platform_irq_thread_id = NULL;
static volatile PlatformIrqCallback platform_irq_callback = NULL;
static ApiHalSpiDevice* platform_st25r3916 = NULL;
static FuriHalSpiDevice* platform_st25r3916 = NULL;
static const GpioPin pin = {ST25R_INT_PORT, ST25R_INT_PIN};
void nfc_isr(void* _ctx) {
@@ -52,11 +52,11 @@ HAL_StatusTypeDef platformSpiTxRx(const uint8_t *txBuf, uint8_t *rxBuf, uint16_t
furi_assert(platform_st25r3916);
bool ret = false;
if (txBuf && rxBuf) {
ret = api_hal_spi_bus_trx(platform_st25r3916->bus, (uint8_t*)txBuf, rxBuf, len, 1000);
ret = furi_hal_spi_bus_trx(platform_st25r3916->bus, (uint8_t*)txBuf, rxBuf, len, 1000);
} else if (txBuf) {
ret = api_hal_spi_bus_tx(platform_st25r3916->bus, (uint8_t*)txBuf, len, 1000);
ret = furi_hal_spi_bus_tx(platform_st25r3916->bus, (uint8_t*)txBuf, len, 1000);
} else if (rxBuf) {
ret = api_hal_spi_bus_rx(platform_st25r3916->bus, (uint8_t*)rxBuf, len, 1000);
ret = furi_hal_spi_bus_rx(platform_st25r3916->bus, (uint8_t*)rxBuf, len, 1000);
}
if(!ret) {
@@ -68,10 +68,10 @@ HAL_StatusTypeDef platformSpiTxRx(const uint8_t *txBuf, uint8_t *rxBuf, uint16_t
}
void platformProtectST25RComm() {
platform_st25r3916 = (ApiHalSpiDevice*)api_hal_spi_device_get(ApiHalSpiDeviceIdNfc);
platform_st25r3916 = (FuriHalSpiDevice*)furi_hal_spi_device_get(FuriHalSpiDeviceIdNfc);
}
void platformUnprotectST25RComm() {
furi_assert(platform_st25r3916);
api_hal_spi_device_return(platform_st25r3916);
furi_hal_spi_device_return(platform_st25r3916);
}

View File

@@ -10,9 +10,9 @@
#include "math.h"
#include "spi.h"
#include "main.h"
#include <api-hal-gpio.h>
#include <api-hal-light.h>
#include <api-hal-spi.h>
#include <furi-hal-gpio.h>
#include <furi-hal-light.h>
#include <furi-hal-spi.h>
typedef void (*PlatformIrqCallback)();
void platformSetIrqCallback(PlatformIrqCallback cb);

View File

@@ -2,7 +2,7 @@
#include "callback-connector.h"
#include <furi.h>
#include <api-hal.h>
#include <furi-hal.h>
#include <gui/gui.h>
#include <input/input.h>

View File

@@ -1,7 +1,7 @@
#pragma once
#include <furi.h>
#include <api-hal.h>
#include <furi-hal.h>
class CyfralTiming {
public:

View File

@@ -1,7 +1,7 @@
#include "bq25896.h"
#include "bq25896_reg.h"
#include <api-hal-i2c.h>
#include <furi-hal-i2c.h>
#include <stddef.h>
uint8_t bit_reverse(uint8_t b) {
@@ -13,9 +13,9 @@ uint8_t bit_reverse(uint8_t b) {
bool bq25896_read(uint8_t address, uint8_t* data, size_t size) {
bool ret;
with_api_hal_i2c(
with_furi_hal_i2c(
bool, &ret, () {
return api_hal_i2c_trx(
return furi_hal_i2c_trx(
POWER_I2C, BQ25896_ADDRESS, &address, 1, data, size, BQ25896_I2C_TIMEOUT);
});
return ret;
@@ -29,9 +29,9 @@ bool bq25896_read_reg(uint8_t address, uint8_t* data) {
bool bq25896_write_reg(uint8_t address, uint8_t* data) {
uint8_t buffer[2] = {address, *data};
bool ret;
with_api_hal_i2c(
with_furi_hal_i2c(
bool, &ret, () {
return api_hal_i2c_tx(POWER_I2C, BQ25896_ADDRESS, buffer, 2, BQ25896_I2C_TIMEOUT);
return furi_hal_i2c_tx(POWER_I2C, BQ25896_ADDRESS, buffer, 2, BQ25896_I2C_TIMEOUT);
});
return ret;
}

View File

@@ -1,16 +1,16 @@
#include "bq27220.h"
#include "bq27220_reg.h"
#include <api-hal-i2c.h>
#include <api-hal-delay.h>
#include <furi-hal-i2c.h>
#include <furi-hal-delay.h>
#include <stdbool.h>
uint16_t bq27220_read_word(uint8_t address) {
uint8_t buffer[2] = {address};
uint16_t ret;
with_api_hal_i2c(
with_furi_hal_i2c(
uint16_t, &ret, () {
if(api_hal_i2c_trx(
if(furi_hal_i2c_trx(
POWER_I2C, BQ27220_ADDRESS, buffer, 1, buffer, 2, BQ27220_I2C_TIMEOUT)) {
return *(uint16_t*)buffer;
} else {
@@ -22,13 +22,13 @@ uint16_t bq27220_read_word(uint8_t address) {
bool bq27220_control(uint16_t control) {
bool ret;
with_api_hal_i2c(
with_furi_hal_i2c(
bool, &ret, () {
uint8_t buffer[3];
buffer[0] = CommandControl;
buffer[1] = control & 0xFF;
buffer[2] = (control >> 8) & 0xFF;
return api_hal_i2c_tx(POWER_I2C, BQ27220_ADDRESS, buffer, 3, BQ27220_I2C_TIMEOUT);
return furi_hal_i2c_tx(POWER_I2C, BQ27220_ADDRESS, buffer, 3, BQ27220_I2C_TIMEOUT);
});
return ret;
}
@@ -44,23 +44,23 @@ uint8_t bq27220_get_checksum(uint8_t* data, uint16_t len) {
bool bq27220_set_parameter_u16(uint16_t address, uint16_t value) {
bool ret;
uint8_t buffer[5];
with_api_hal_i2c(
with_furi_hal_i2c(
bool, &ret, () {
buffer[0] = CommandSelectSubclass;
buffer[1] = address & 0xFF;
buffer[2] = (address >> 8) & 0xFF;
buffer[3] = (value >> 8) & 0xFF;
buffer[4] = value & 0xFF;
return api_hal_i2c_tx(POWER_I2C, BQ27220_ADDRESS, buffer, 5, BQ27220_I2C_TIMEOUT);
return furi_hal_i2c_tx(POWER_I2C, BQ27220_ADDRESS, buffer, 5, BQ27220_I2C_TIMEOUT);
});
delay_us(10000);
uint8_t checksum = bq27220_get_checksum(&buffer[1], 4);
with_api_hal_i2c(
with_furi_hal_i2c(
bool, &ret, () {
buffer[0] = CommandMACDataSum;
buffer[1] = checksum;
buffer[2] = 6;
return api_hal_i2c_tx(POWER_I2C, BQ27220_ADDRESS, buffer, 3, BQ27220_I2C_TIMEOUT);
return furi_hal_i2c_tx(POWER_I2C, BQ27220_ADDRESS, buffer, 3, BQ27220_I2C_TIMEOUT);
});
delay_us(10000);
return ret;

View File

@@ -1,43 +1,43 @@
#include "cc1101.h"
#include <cmsis_os2.h>
#include <api-hal-delay.h>
#include <furi-hal-delay.h>
#include <assert.h>
#include <string.h>
CC1101Status cc1101_strobe(const ApiHalSpiDevice* device, uint8_t strobe) {
CC1101Status cc1101_strobe(const FuriHalSpiDevice* device, uint8_t strobe) {
uint8_t tx[1] = { strobe };
CC1101Status rx[1] = { 0 };
hal_gpio_write(device->chip_select, false);
while(hal_gpio_read(device->bus->miso));
api_hal_spi_bus_trx(device->bus, tx, (uint8_t*)rx, 1, CC1101_TIMEOUT);
furi_hal_spi_bus_trx(device->bus, tx, (uint8_t*)rx, 1, CC1101_TIMEOUT);
hal_gpio_write(device->chip_select, true);
assert(rx[0].CHIP_RDYn == 0);
return rx[0];
}
CC1101Status cc1101_write_reg(const ApiHalSpiDevice* device, uint8_t reg, uint8_t data) {
CC1101Status cc1101_write_reg(const FuriHalSpiDevice* device, uint8_t reg, uint8_t data) {
uint8_t tx[2] = { reg, data };
CC1101Status rx[2] = { 0 };
hal_gpio_write(device->chip_select, false);
while(hal_gpio_read(device->bus->miso));
api_hal_spi_bus_trx(device->bus, tx, (uint8_t*)rx, 2, CC1101_TIMEOUT);
furi_hal_spi_bus_trx(device->bus, tx, (uint8_t*)rx, 2, CC1101_TIMEOUT);
hal_gpio_write(device->chip_select, true);
assert((rx[0].CHIP_RDYn|rx[1].CHIP_RDYn) == 0);
return rx[1];
}
CC1101Status cc1101_read_reg(const ApiHalSpiDevice* device, uint8_t reg, uint8_t* data) {
CC1101Status cc1101_read_reg(const FuriHalSpiDevice* device, uint8_t reg, uint8_t* data) {
assert(sizeof(CC1101Status) == 1);
uint8_t tx[2] = { reg|CC1101_READ, 0};
CC1101Status rx[2] = { 0 };
hal_gpio_write(device->chip_select, false);
while(hal_gpio_read(device->bus->miso));
api_hal_spi_bus_trx(device->bus, tx, (uint8_t*)rx, 2, CC1101_TIMEOUT);
furi_hal_spi_bus_trx(device->bus, tx, (uint8_t*)rx, 2, CC1101_TIMEOUT);
hal_gpio_write(device->chip_select, true);
assert((rx[0].CHIP_RDYn) == 0);
@@ -45,25 +45,25 @@ CC1101Status cc1101_read_reg(const ApiHalSpiDevice* device, uint8_t reg, uint8_t
return rx[0];
}
uint8_t cc1101_get_partnumber(const ApiHalSpiDevice* device) {
uint8_t cc1101_get_partnumber(const FuriHalSpiDevice* device) {
uint8_t partnumber=0;
cc1101_read_reg(device, CC1101_STATUS_PARTNUM|CC1101_BURST, &partnumber);
return partnumber;
}
uint8_t cc1101_get_version(const ApiHalSpiDevice* device) {
uint8_t cc1101_get_version(const FuriHalSpiDevice* device) {
uint8_t version=0;
cc1101_read_reg(device, CC1101_STATUS_VERSION|CC1101_BURST, &version);
return version;
}
uint8_t cc1101_get_rssi(const ApiHalSpiDevice* device) {
uint8_t cc1101_get_rssi(const FuriHalSpiDevice* device) {
uint8_t rssi=0;
cc1101_read_reg(device, CC1101_STATUS_RSSI|CC1101_BURST, &rssi);
return rssi;
}
void cc1101_reset(const ApiHalSpiDevice* device) {
void cc1101_reset(const FuriHalSpiDevice* device) {
hal_gpio_write(device->chip_select, false);
delay_us(1000);
hal_gpio_write(device->chip_select, true);
@@ -71,39 +71,39 @@ void cc1101_reset(const ApiHalSpiDevice* device) {
cc1101_strobe(device, CC1101_STROBE_SRES);
}
CC1101Status cc1101_get_status(const ApiHalSpiDevice* device) {
CC1101Status cc1101_get_status(const FuriHalSpiDevice* device) {
return cc1101_strobe(device, CC1101_STROBE_SNOP);
}
void cc1101_shutdown(const ApiHalSpiDevice* device) {
void cc1101_shutdown(const FuriHalSpiDevice* device) {
cc1101_strobe(device, CC1101_STROBE_SPWD);
}
void cc1101_calibrate(const ApiHalSpiDevice* device) {
void cc1101_calibrate(const FuriHalSpiDevice* device) {
cc1101_strobe(device, CC1101_STROBE_SCAL);
}
void cc1101_switch_to_idle(const ApiHalSpiDevice* device) {
void cc1101_switch_to_idle(const FuriHalSpiDevice* device) {
cc1101_strobe(device, CC1101_STROBE_SIDLE);
}
void cc1101_switch_to_rx(const ApiHalSpiDevice* device) {
void cc1101_switch_to_rx(const FuriHalSpiDevice* device) {
cc1101_strobe(device, CC1101_STROBE_SRX);
}
void cc1101_switch_to_tx(const ApiHalSpiDevice* device) {
void cc1101_switch_to_tx(const FuriHalSpiDevice* device) {
cc1101_strobe(device, CC1101_STROBE_STX);
}
void cc1101_flush_rx(const ApiHalSpiDevice* device) {
void cc1101_flush_rx(const FuriHalSpiDevice* device) {
cc1101_strobe(device, CC1101_STROBE_SFRX);
}
void cc1101_flush_tx(const ApiHalSpiDevice* device) {
void cc1101_flush_tx(const FuriHalSpiDevice* device) {
cc1101_strobe(device, CC1101_STROBE_SFTX);
}
uint32_t cc1101_set_frequency(const ApiHalSpiDevice* device, uint32_t value) {
uint32_t cc1101_set_frequency(const FuriHalSpiDevice* device, uint32_t value) {
uint64_t real_value = (uint64_t)value * CC1101_FDIV / CC1101_QUARTZ;
// Sanity check
@@ -118,7 +118,7 @@ uint32_t cc1101_set_frequency(const ApiHalSpiDevice* device, uint32_t value) {
return (uint32_t)real_frequency;
}
uint32_t cc1101_set_intermediate_frequency(const ApiHalSpiDevice* device, uint32_t value) {
uint32_t cc1101_set_intermediate_frequency(const FuriHalSpiDevice* device, uint32_t value) {
uint64_t real_value = value * CC1101_IFDIV / CC1101_QUARTZ;
assert((real_value & 0xFF) == real_value);
@@ -129,7 +129,7 @@ uint32_t cc1101_set_intermediate_frequency(const ApiHalSpiDevice* device, uint32
return (uint32_t)real_frequency;
}
void cc1101_set_pa_table(const ApiHalSpiDevice* device, const uint8_t value[8]) {
void cc1101_set_pa_table(const FuriHalSpiDevice* device, const uint8_t value[8]) {
uint8_t tx[9] = { CC1101_PATABLE | CC1101_BURST };
CC1101Status rx[9] = { 0 };
@@ -137,13 +137,13 @@ void cc1101_set_pa_table(const ApiHalSpiDevice* device, const uint8_t value[8])
hal_gpio_write(device->chip_select, false);
while(hal_gpio_read(device->bus->miso));
api_hal_spi_bus_trx(device->bus, tx, (uint8_t*)rx, sizeof(rx), CC1101_TIMEOUT);
furi_hal_spi_bus_trx(device->bus, tx, (uint8_t*)rx, sizeof(rx), CC1101_TIMEOUT);
hal_gpio_write(device->chip_select, true);
assert((rx[0].CHIP_RDYn|rx[8].CHIP_RDYn) == 0);
}
uint8_t cc1101_write_fifo(const ApiHalSpiDevice* device, const uint8_t* data, uint8_t size) {
uint8_t cc1101_write_fifo(const FuriHalSpiDevice* device, const uint8_t* data, uint8_t size) {
uint8_t buff_tx[64];
uint8_t buff_rx[64];
buff_tx[0] = CC1101_FIFO | CC1101_BURST;
@@ -154,7 +154,7 @@ uint8_t cc1101_write_fifo(const ApiHalSpiDevice* device, const uint8_t* data, ui
// Wait IC to become ready
while(hal_gpio_read(device->bus->miso));
// Tell IC what we want
api_hal_spi_bus_trx(device->bus, buff_tx, (uint8_t*) buff_rx, size + 1, CC1101_TIMEOUT);
furi_hal_spi_bus_trx(device->bus, buff_tx, (uint8_t*) buff_rx, size + 1, CC1101_TIMEOUT);
// Finish transaction
hal_gpio_write(device->chip_select, true);
@@ -162,7 +162,7 @@ uint8_t cc1101_write_fifo(const ApiHalSpiDevice* device, const uint8_t* data, ui
return size;
}
uint8_t cc1101_read_fifo(const ApiHalSpiDevice* device, uint8_t* data, uint8_t* size) {
uint8_t cc1101_read_fifo(const FuriHalSpiDevice* device, uint8_t* data, uint8_t* size) {
uint8_t buff_tx[64];
buff_tx[0] = CC1101_FIFO | CC1101_READ | CC1101_BURST;
uint8_t buff_rx[2];
@@ -173,9 +173,9 @@ uint8_t cc1101_read_fifo(const ApiHalSpiDevice* device, uint8_t* data, uint8_t*
while(hal_gpio_read(device->bus->miso));
// First byte - packet length
api_hal_spi_bus_trx(device->bus, buff_tx, buff_rx, 2, CC1101_TIMEOUT);
furi_hal_spi_bus_trx(device->bus, buff_tx, buff_rx, 2, CC1101_TIMEOUT);
*size = buff_rx[2];
api_hal_spi_bus_trx(device->bus, &buff_tx[1], data, *size, CC1101_TIMEOUT);
furi_hal_spi_bus_trx(device->bus, &buff_tx[1], data, *size, CC1101_TIMEOUT);
cc1101_flush_rx(device);
hal_gpio_write(device->chip_select, true);

View File

@@ -4,7 +4,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <api-hal-spi.h>
#include <furi-hal-spi.h>
#ifdef __cplusplus
extern "C" {
@@ -13,131 +13,131 @@ extern "C" {
/* Low level API */
/** Strobe command to the device
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param strobe - command to execute
* @return device status
*/
CC1101Status cc1101_strobe(const ApiHalSpiDevice* device, uint8_t strobe);
CC1101Status cc1101_strobe(const FuriHalSpiDevice* device, uint8_t strobe);
/** Write device register
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param reg - register
* @param data - data to write
* @return device status
*/
CC1101Status cc1101_write_reg(const ApiHalSpiDevice* device, uint8_t reg, uint8_t data);
CC1101Status cc1101_write_reg(const FuriHalSpiDevice* device, uint8_t reg, uint8_t data);
/** Read device register
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param reg - register
* @param[out] data - pointer to data
* @return device status
*/
CC1101Status cc1101_read_reg(const ApiHalSpiDevice* device, uint8_t reg, uint8_t* data);
CC1101Status cc1101_read_reg(const FuriHalSpiDevice* device, uint8_t reg, uint8_t* data);
/* High level API */
/** Reset
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
void cc1101_reset(const ApiHalSpiDevice* device);
void cc1101_reset(const FuriHalSpiDevice* device);
/** Get status
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
CC1101Status cc1101_get_status(const ApiHalSpiDevice* device);
CC1101Status cc1101_get_status(const FuriHalSpiDevice* device);
/** Enable shutdown mode
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
void cc1101_shutdown(const ApiHalSpiDevice* device);
void cc1101_shutdown(const FuriHalSpiDevice* device);
/** Get Partnumber
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
uint8_t cc1101_get_partnumber(const ApiHalSpiDevice* device);
uint8_t cc1101_get_partnumber(const FuriHalSpiDevice* device);
/** Get Version
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
uint8_t cc1101_get_version(const ApiHalSpiDevice* device);
uint8_t cc1101_get_version(const FuriHalSpiDevice* device);
/** Get raw RSSI value
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
uint8_t cc1101_get_rssi(const ApiHalSpiDevice* device);
uint8_t cc1101_get_rssi(const FuriHalSpiDevice* device);
/** Calibrate oscillator
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
void cc1101_calibrate(const ApiHalSpiDevice* device);
void cc1101_calibrate(const FuriHalSpiDevice* device);
/** Switch to idle
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
void cc1101_switch_to_idle(const ApiHalSpiDevice* device);
void cc1101_switch_to_idle(const FuriHalSpiDevice* device);
/** Switch to RX
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
void cc1101_switch_to_rx(const ApiHalSpiDevice* device);
void cc1101_switch_to_rx(const FuriHalSpiDevice* device);
/** Switch to TX
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
void cc1101_switch_to_tx(const ApiHalSpiDevice* device);
void cc1101_switch_to_tx(const FuriHalSpiDevice* device);
/** Flush RX FIFO
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
void cc1101_flush_rx(const ApiHalSpiDevice* device);
void cc1101_flush_rx(const FuriHalSpiDevice* device);
/** Flush TX FIFO
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
*/
void cc1101_flush_tx(const ApiHalSpiDevice* device);
void cc1101_flush_tx(const FuriHalSpiDevice* device);
/** Set Frequency
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param value - frequency in herz
* @return real frequency that were synthesized
*/
uint32_t cc1101_set_frequency(const ApiHalSpiDevice* device, uint32_t value);
uint32_t cc1101_set_frequency(const FuriHalSpiDevice* device, uint32_t value);
/** Set Intermediate Frequency
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param value - frequency in herz
* @return real inermediate frequency that were synthesized
*/
uint32_t cc1101_set_intermediate_frequency(const ApiHalSpiDevice* device, uint32_t value);
uint32_t cc1101_set_intermediate_frequency(const FuriHalSpiDevice* device, uint32_t value);
/** Set Power Amplifier level table, ramp
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param value - array of power level values
*/
void cc1101_set_pa_table(const ApiHalSpiDevice* device, const uint8_t value[8]);
void cc1101_set_pa_table(const FuriHalSpiDevice* device, const uint8_t value[8]);
/** Set Power Amplifier level table, ramp
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param value - array of power level values
*/
void cc1101_set_pa_table(const ApiHalSpiDevice* device, const uint8_t value[8]);
void cc1101_set_pa_table(const FuriHalSpiDevice* device, const uint8_t value[8]);
/** Write FIFO
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param data, pointer to byte array
* @param size, write bytes count
* @return size, written bytes count
*/
uint8_t cc1101_write_fifo(const ApiHalSpiDevice* device, const uint8_t* data, uint8_t size);
uint8_t cc1101_write_fifo(const FuriHalSpiDevice* device, const uint8_t* data, uint8_t size);
/** Read FIFO
* @param device - pointer to ApiHalSpiDevice
* @param device - pointer to FuriHalSpiDevice
* @param data, pointer to byte array
* @param size, bytes to read from fifo
* @return size, read bytes count
*/
uint8_t cc1101_read_fifo(const ApiHalSpiDevice* device, uint8_t* data, uint8_t* size);
uint8_t cc1101_read_fifo(const FuriHalSpiDevice* device, uint8_t* data, uint8_t* size);
#ifdef __cplusplus
}

View File

@@ -1,15 +1,15 @@
#include "lp5562.h"
#include "lp5562_reg.h"
#include <api-hal-i2c.h>
#include <furi-hal-i2c.h>
#include <stdio.h>
bool lp5562_write_reg(uint8_t address, uint8_t* data) {
uint8_t buffer[2] = {address, *data};
bool ret;
with_api_hal_i2c(
with_furi_hal_i2c(
bool, &ret, () {
return api_hal_i2c_tx(POWER_I2C, LP5562_ADDRESS, buffer, 2, LP5562_I2C_TIMEOUT);
return furi_hal_i2c_tx(POWER_I2C, LP5562_ADDRESS, buffer, 2, LP5562_I2C_TIMEOUT);
});
return ret;
}

View File

@@ -7,7 +7,7 @@
#include <stdlib.h>
#include <furi.h>
#include "irda_i.h"
#include <api-hal-irda.h>
#include <furi-hal-irda.h>
struct IrdaDecoderHandler {
void** ctx;

View File

@@ -3,8 +3,8 @@
#include <stdbool.h>
#include <stddef.h>
#include <furi.h>
#include <api-hal-irda.h>
#include <api-hal-delay.h>
#include <furi-hal-irda.h>
#include <furi-hal-delay.h>
static uint32_t irda_tx_number_of_transmissions = 0;
static uint32_t irda_tx_raw_timings_index = 0;
@@ -12,12 +12,12 @@ static uint32_t irda_tx_raw_timings_number = 0;
static uint32_t irda_tx_raw_start_from_mark = 0;
static bool irda_tx_raw_add_silence = false;
ApiHalIrdaTxGetDataState irda_get_raw_data_callback (void* context, uint32_t* duration, bool* level) {
FuriHalIrdaTxGetDataState irda_get_raw_data_callback (void* context, uint32_t* duration, bool* level) {
furi_assert(duration);
furi_assert(level);
furi_assert(context);
ApiHalIrdaTxGetDataState state = ApiHalIrdaTxGetDataStateOk;
FuriHalIrdaTxGetDataState state = FuriHalIrdaTxGetDataStateOk;
const uint32_t* timings = context;
if (irda_tx_raw_add_silence && (irda_tx_raw_timings_index == 0)) {
@@ -30,7 +30,7 @@ ApiHalIrdaTxGetDataState irda_get_raw_data_callback (void* context, uint32_t* du
}
if (irda_tx_raw_timings_number == irda_tx_raw_timings_index) {
state = ApiHalIrdaTxGetDataStateLastDone;
state = FuriHalIrdaTxGetDataStateLastDone;
}
return state;
@@ -44,19 +44,19 @@ void irda_send_raw_ext(const uint32_t timings[], uint32_t timings_cnt, bool star
irda_tx_raw_timings_index = 0;
irda_tx_raw_timings_number = timings_cnt;
irda_tx_raw_add_silence = start_from_mark;
api_hal_irda_async_tx_set_data_isr_callback(irda_get_raw_data_callback, (void*) timings);
api_hal_irda_async_tx_start(frequency, duty_cycle);
api_hal_irda_async_tx_wait_termination();
furi_hal_irda_async_tx_set_data_isr_callback(irda_get_raw_data_callback, (void*) timings);
furi_hal_irda_async_tx_start(frequency, duty_cycle);
furi_hal_irda_async_tx_wait_termination();
furi_assert(!api_hal_irda_is_busy());
furi_assert(!furi_hal_irda_is_busy());
}
void irda_send_raw(const uint32_t timings[], uint32_t timings_cnt, bool start_from_mark) {
irda_send_raw_ext(timings, timings_cnt, start_from_mark, IRDA_COMMON_CARRIER_FREQUENCY, IRDA_COMMON_DUTY_CYCLE);
}
ApiHalIrdaTxGetDataState irda_get_data_callback (void* context, uint32_t* duration, bool* level) {
ApiHalIrdaTxGetDataState state = ApiHalIrdaTxGetDataStateError;
FuriHalIrdaTxGetDataState irda_get_data_callback (void* context, uint32_t* duration, bool* level) {
FuriHalIrdaTxGetDataState state = FuriHalIrdaTxGetDataStateError;
IrdaEncoderHandler* handler = context;
IrdaStatus status = IrdaStatusError;
@@ -65,17 +65,17 @@ ApiHalIrdaTxGetDataState irda_get_data_callback (void* context, uint32_t* durati
}
if (status == IrdaStatusError) {
state = ApiHalIrdaTxGetDataStateError;
state = FuriHalIrdaTxGetDataStateError;
} else if (status == IrdaStatusOk) {
state = ApiHalIrdaTxGetDataStateOk;
state = FuriHalIrdaTxGetDataStateOk;
} else if (status == IrdaStatusDone) {
state = ApiHalIrdaTxGetDataStateDone;
state = FuriHalIrdaTxGetDataStateDone;
if (--irda_tx_number_of_transmissions == 0) {
state = ApiHalIrdaTxGetDataStateLastDone;
state = FuriHalIrdaTxGetDataStateLastDone;
}
} else {
furi_assert(0);
state = ApiHalIrdaTxGetDataStateError;
state = FuriHalIrdaTxGetDataStateError;
}
return state;
@@ -90,12 +90,12 @@ void irda_send(const IrdaMessage* message, int times) {
irda_reset_encoder(handler, message);
irda_tx_number_of_transmissions = times;
api_hal_irda_async_tx_set_data_isr_callback(irda_get_data_callback, handler);
api_hal_irda_async_tx_start(IRDA_COMMON_CARRIER_FREQUENCY, IRDA_COMMON_DUTY_CYCLE);
api_hal_irda_async_tx_wait_termination();
furi_hal_irda_async_tx_set_data_isr_callback(irda_get_data_callback, handler);
furi_hal_irda_async_tx_start(IRDA_COMMON_CARRIER_FREQUENCY, IRDA_COMMON_DUTY_CYCLE);
furi_hal_irda_async_tx_wait_termination();
irda_free_encoder(handler);
furi_assert(!api_hal_irda_is_busy());
furi_assert(!furi_hal_irda_is_busy());
}

View File

@@ -1,4 +1,4 @@
#include <api-hal-irda.h>
#include <furi-hal-irda.h>
#include <irda.h>
#include <stdint.h>

View File

@@ -1,6 +1,6 @@
#include "irda_worker.h"
#include <irda.h>
#include <api-hal-irda.h>
#include <furi-hal-irda.h>
#include <limits.h>
#include <stdint.h>
#include <stream_buffer.h>
@@ -190,19 +190,19 @@ void irda_worker_start(IrdaWorker* instance) {
furi_thread_start(instance->thread);
instance->worker_handle = furi_thread_get_thread_id(instance->thread);
api_hal_irda_async_rx_start();
api_hal_irda_async_rx_set_timeout(IRDA_WORKER_RX_TIMEOUT);
api_hal_irda_async_rx_set_capture_isr_callback(irda_worker_rx_callback, instance);
api_hal_irda_async_rx_set_timeout_isr_callback(irda_worker_rx_timeout_callback, instance);
furi_hal_irda_async_rx_start();
furi_hal_irda_async_rx_set_timeout(IRDA_WORKER_RX_TIMEOUT);
furi_hal_irda_async_rx_set_capture_isr_callback(irda_worker_rx_callback, instance);
furi_hal_irda_async_rx_set_timeout_isr_callback(irda_worker_rx_timeout_callback, instance);
}
void irda_worker_stop(IrdaWorker* instance) {
furi_assert(instance);
furi_assert(instance->worker_handle);
api_hal_irda_async_rx_set_timeout_isr_callback(NULL, NULL);
api_hal_irda_async_rx_set_capture_isr_callback(NULL, NULL);
api_hal_irda_async_rx_stop();
furi_hal_irda_async_rx_set_timeout_isr_callback(NULL, NULL);
furi_hal_irda_async_rx_set_capture_isr_callback(NULL, NULL);
furi_hal_irda_async_rx_stop();
xTaskNotify(instance->worker_handle, IRDA_WORKER_EXIT, eSetBits);

View File

@@ -1,7 +1,7 @@
#pragma once
#include <irda.h>
#include <api-hal.h>
#include <furi-hal.h>
#ifdef __cplusplus
extern "C" {
@@ -41,13 +41,13 @@ void irda_worker_set_received_signal_callback(IrdaWorker* instance, IrdaWorkerRe
*/
void irda_worker_set_context(IrdaWorker* instance, void* context);
/** Start IrdaWorker thread, initialise api-hal, prepare all work.
/** Start IrdaWorker thread, initialise furi-hal, prepare all work.
*
* @param[in] instance - IrdaWorker instance
*/
void irda_worker_start(IrdaWorker* instance);
/** Stop IrdaWorker thread, deinitialize api-hal.
/** Stop IrdaWorker thread, deinitialize furi-hal.
*
* @param[in] instance - IrdaWorker instance
*/

View File

@@ -40,7 +40,7 @@ public:
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <api-hal.h>
#include <furi-hal.h>
void BlanksWriter::onewire_release(void) {
hal_gpio_write(gpio, true);

View File

@@ -1,6 +1,6 @@
#pragma once
#include <furi.h>
#include <api-hal.h>
#include <furi-hal.h>
#include "one_wire_timings.h"
class OneWireMaster {

View File

@@ -1,6 +1,6 @@
#pragma once
#include <furi.h>
#include <api-hal.h>
#include <furi-hal.h>
#include "one_wire_timings.h"
class OneWireDevice;

View File

@@ -1,7 +1,7 @@
#pragma once
#include <m-string.h>
#include <api-hal.h>
#include <furi-hal.h>
#include <stdint.h>
#define bit_read(value, bit) (((value) >> (bit)) & 0x01)

View File

@@ -1,6 +1,6 @@
#pragma once
#include <api-hal.h>
#include <furi-hal.h>
typedef struct SubGhzWorker SubGhzWorker;