Skip to content

Commit 0a9a977

Browse files
enabling hci through spi commands
1 parent 4fa765b commit 0a9a977

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

src/utility/HCINinaSpiTransport.cpp

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/* // TODO SPDX
2+
*/
3+
4+
#if !defined(ARDUINO_ARCH_MBED) && !defined(ESP32) && !defined(ARDUINO_SILABS) && !defined(ARDUINO_UNOR4_WIFI) || defined(TARGET_NANO_RP2040_CONNECT) //|| defined(CORE_CM4)
5+
6+
#include "HCINinaSpiTransport.h"
7+
#include <WiFiNINA.h>
8+
9+
int HCINinaSpiTransportClass::begin()
10+
{
11+
WiFiDrv::wifiDriverInit();
12+
return WiFiDrv::bleBegin();
13+
}
14+
15+
void HCINinaSpiTransportClass::end()
16+
{
17+
WiFiDrv::bleEnd();
18+
}
19+
20+
void HCINinaSpiTransportClass::wait(unsigned long timeout)
21+
{
22+
for (unsigned long start = millis(); (millis() - start) < timeout;) {
23+
if (available()) {
24+
break;
25+
}
26+
}
27+
}
28+
29+
int HCINinaSpiTransportClass::available()
30+
{
31+
return WiFiDrv::bleAvailable();
32+
}
33+
34+
int HCINinaSpiTransportClass::peek()
35+
{
36+
int res=-1;
37+
WiFiDrv::blePeek((uint8_t*)&res, 1); // read a single byte, if nothing is returned we return -1
38+
39+
return res;
40+
}
41+
42+
int HCINinaSpiTransportClass::read()
43+
{
44+
int res=-1;
45+
WiFiDrv::bleRead((uint8_t*)&res, 1); // read a single byte, if nothing is returned we return -1
46+
47+
return res;
48+
}
49+
50+
size_t HCINinaSpiTransportClass::write(const uint8_t* data, size_t length)
51+
{
52+
return WiFiDrv::bleWrite(data, length);
53+
}
54+
55+
HCINinaSpiTransportClass HCINinaSpiTransport;
56+
HCITransportInterface& HCITransport = HCINinaSpiTransport;
57+
58+
#endif

src/utility/HCINinaSpiTransport.h

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/* // TODO SPDX
2+
*/
3+
4+
#ifndef _HCI_SPI_TRANSPORT_H_
5+
#define _HCI_SPI_TRANSPORT_H_
6+
7+
#include "HCITransport.h"
8+
9+
class HCINinaSpiTransportClass : public HCITransportInterface {
10+
public:
11+
HCINinaSpiTransportClass() {}
12+
13+
virtual int begin();
14+
virtual void end();
15+
16+
virtual void wait(unsigned long timeout);
17+
18+
virtual int available();
19+
virtual int peek();
20+
virtual int read();
21+
22+
virtual size_t write(const uint8_t* data, size_t length);
23+
};
24+
25+
#endif

0 commit comments

Comments
 (0)