kopia lustrzana https://github.com/pimoroni/pimoroni-pico
Use std::string in API
rodzic
8ff49474ea
commit
0703c90dea
|
@ -127,13 +127,13 @@ namespace pimoroni {
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t Esp32Spi::wifi_set_network(const char* ssid, uint8_t ssid_len) {
|
int8_t Esp32Spi::wifi_set_network(const std::string ssid) {
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
||||||
// Send Command
|
// Send Command
|
||||||
driver.send_cmd(SET_NET, SpiDrv::PARAM_NUMS_1);
|
driver.send_cmd(SET_NET, SpiDrv::PARAM_NUMS_1);
|
||||||
driver.send_param((const uint8_t*)ssid, ssid_len, SpiDrv::LAST_PARAM);
|
driver.send_param((const uint8_t*)ssid.data(), ssid.length(), SpiDrv::LAST_PARAM);
|
||||||
driver.pad_to_multiple_of_4(5 + ssid_len);
|
driver.pad_to_multiple_of_4(5 + ssid.length());
|
||||||
|
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
@ -149,14 +149,14 @@ namespace pimoroni {
|
||||||
return (data == WIFI_SPI_ACK) ? WL_SUCCESS : WL_FAILURE;
|
return (data == WIFI_SPI_ACK) ? WL_SUCCESS : WL_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t Esp32Spi::wifi_set_passphrase(const char* ssid, uint8_t ssid_len, const char *passphrase, const uint8_t len) {
|
int8_t Esp32Spi::wifi_set_passphrase(const std::string ssid, const std::string passphrase) {
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
||||||
// Send Command
|
// Send Command
|
||||||
driver.send_cmd(SET_PASSPHRASE, SpiDrv::PARAM_NUMS_2);
|
driver.send_cmd(SET_PASSPHRASE, SpiDrv::PARAM_NUMS_2);
|
||||||
driver.send_param((const uint8_t*)ssid, ssid_len, SpiDrv::NO_LAST_PARAM);
|
driver.send_param((const uint8_t*)ssid.data(), ssid.length(), SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param((const uint8_t*)passphrase, len, SpiDrv::LAST_PARAM);
|
driver.send_param((const uint8_t*)passphrase.data(), passphrase.length(), SpiDrv::LAST_PARAM);
|
||||||
driver.pad_to_multiple_of_4(6 + ssid_len + len);
|
driver.pad_to_multiple_of_4(6 + ssid.length() + passphrase.length());
|
||||||
|
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
@ -172,15 +172,15 @@ namespace pimoroni {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t Esp32Spi::wifi_set_key(const char* ssid, uint8_t ssid_len, uint8_t key_idx, const void *key, const uint8_t len) {
|
int8_t Esp32Spi::wifi_set_key(const std::string ssid, uint8_t key_idx, const std::string key) {
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
||||||
//Send Command
|
//Send Command
|
||||||
driver.send_cmd(SET_KEY, SpiDrv::PARAM_NUMS_3);
|
driver.send_cmd(SET_KEY, SpiDrv::PARAM_NUMS_3);
|
||||||
driver.send_param((uint8_t*)ssid, ssid_len, SpiDrv::NO_LAST_PARAM);
|
driver.send_param((uint8_t*)ssid.data(), ssid.length(), SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param(&key_idx, KEY_IDX_LEN, SpiDrv::NO_LAST_PARAM);
|
driver.send_param(&key_idx, KEY_IDX_LEN, SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param((uint8_t*)key, len, SpiDrv::LAST_PARAM);
|
driver.send_param((uint8_t*)key.data(), key.length(), SpiDrv::LAST_PARAM);
|
||||||
driver.pad_to_multiple_of_4(8 + ssid_len + len);
|
driver.pad_to_multiple_of_4(8 + ssid.length() + key.length());
|
||||||
|
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
@ -245,13 +245,13 @@ namespace pimoroni {
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Esp32Spi::set_hostname(const char* hostname) {
|
void Esp32Spi::set_hostname(const std::string hostname) {
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
||||||
// Send Command
|
// Send Command
|
||||||
driver.send_cmd(SET_HOSTNAME, SpiDrv::PARAM_NUMS_1);
|
driver.send_cmd(SET_HOSTNAME, SpiDrv::PARAM_NUMS_1);
|
||||||
driver.send_param((uint8_t*)hostname, strlen(hostname), SpiDrv::LAST_PARAM);
|
driver.send_param((uint8_t*)hostname.data(), hostname.length(), SpiDrv::LAST_PARAM);
|
||||||
driver.pad_to_multiple_of_4(5 + strlen(hostname));
|
driver.pad_to_multiple_of_4(5 + hostname.length());
|
||||||
|
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
@ -343,7 +343,7 @@ namespace pimoroni {
|
||||||
ip_out = gateway_ip;
|
ip_out = gateway_ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* Esp32Spi::get_current_ssid() {
|
std::string Esp32Spi::get_current_ssid() {
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
||||||
// Send Command
|
// Send Command
|
||||||
|
@ -697,14 +697,14 @@ namespace pimoroni {
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t Esp32Spi::wifi_set_ap_network(const char* ssid, uint8_t ssid_len, uint8_t channel) {
|
int8_t Esp32Spi::wifi_set_ap_network(const std::string ssid, uint8_t channel) {
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
||||||
// Send Command
|
// Send Command
|
||||||
driver.send_cmd(SET_AP_NET, SpiDrv::PARAM_NUMS_2);
|
driver.send_cmd(SET_AP_NET, SpiDrv::PARAM_NUMS_2);
|
||||||
driver.send_param((uint8_t*)ssid, ssid_len, SpiDrv::NO_LAST_PARAM);
|
driver.send_param((uint8_t*)ssid.data(), ssid.length(), SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param(&channel, 1, SpiDrv::LAST_PARAM);
|
driver.send_param(&channel, 1, SpiDrv::LAST_PARAM);
|
||||||
driver.pad_to_multiple_of_4(3 + ssid_len);
|
driver.pad_to_multiple_of_4(3 + ssid.length());
|
||||||
|
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
@ -720,15 +720,15 @@ namespace pimoroni {
|
||||||
return (data == WIFI_SPI_ACK) ? WL_SUCCESS : WL_FAILURE;
|
return (data == WIFI_SPI_ACK) ? WL_SUCCESS : WL_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t Esp32Spi::wifi_set_ap_passphrase(const char* ssid, uint8_t ssid_len, const char *passphrase, const uint8_t len, uint8_t channel) {
|
int8_t Esp32Spi::wifi_set_ap_passphrase(const std::string ssid, const std::string passphrase, uint8_t channel) {
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
||||||
// Send Command
|
// Send Command
|
||||||
driver.send_cmd(SET_AP_PASSPHRASE, SpiDrv::PARAM_NUMS_3);
|
driver.send_cmd(SET_AP_PASSPHRASE, SpiDrv::PARAM_NUMS_3);
|
||||||
driver.send_param((uint8_t*)ssid, ssid_len, SpiDrv::NO_LAST_PARAM);
|
driver.send_param((uint8_t*)ssid.data(), ssid.length(), SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param((uint8_t*)passphrase, len, SpiDrv::NO_LAST_PARAM);
|
driver.send_param((uint8_t*)passphrase.data(), passphrase.length(), SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param(&channel, 1, SpiDrv::LAST_PARAM);
|
driver.send_param(&channel, 1, SpiDrv::LAST_PARAM);
|
||||||
driver.pad_to_multiple_of_4(4 + ssid_len + len);
|
driver.pad_to_multiple_of_4(4 + ssid.length() + passphrase.length());
|
||||||
|
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
@ -944,17 +944,17 @@ namespace pimoroni {
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Esp32Spi::start_client(const char* host, uint8_t host_len, uint32_t ip_address, uint16_t port, uint8_t sock, uint8_t prot_mode) {
|
void Esp32Spi::start_client(std::string host, uint32_t ip_address, uint16_t port, uint8_t sock, uint8_t prot_mode) {
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
||||||
// Send Command
|
// Send Command
|
||||||
driver.send_cmd(START_CLIENT_TCP, SpiDrv::PARAM_NUMS_5);
|
driver.send_cmd(START_CLIENT_TCP, SpiDrv::PARAM_NUMS_5);
|
||||||
driver.send_param((uint8_t*)host, host_len, SpiDrv::NO_LAST_PARAM);
|
driver.send_param((uint8_t*)host.data(), host.length(), SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param((uint8_t*)&ip_address, sizeof(ip_address), SpiDrv::NO_LAST_PARAM);
|
driver.send_param((uint8_t*)&ip_address, sizeof(ip_address), SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param(port, SpiDrv::NO_LAST_PARAM);
|
driver.send_param(port, SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param(&sock, 1, SpiDrv::NO_LAST_PARAM);
|
driver.send_param(&sock, 1, SpiDrv::NO_LAST_PARAM);
|
||||||
driver.send_param(&prot_mode, 1, SpiDrv::LAST_PARAM);
|
driver.send_param(&prot_mode, 1, SpiDrv::LAST_PARAM);
|
||||||
driver.pad_to_multiple_of_4(17 + host_len);
|
driver.pad_to_multiple_of_4(17 + host.length());
|
||||||
|
|
||||||
driver.esp_deselect();
|
driver.esp_deselect();
|
||||||
driver.wait_for_esp_select();
|
driver.wait_for_esp_select();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <string>
|
||||||
#include "pico/stdlib.h"
|
#include "pico/stdlib.h"
|
||||||
#include "spi_drv.hpp"
|
#include "spi_drv.hpp"
|
||||||
#include "ip_address.hpp"
|
#include "ip_address.hpp"
|
||||||
|
@ -110,14 +111,14 @@ namespace pimoroni {
|
||||||
void get_network_data(uint8_t *ip_out, uint8_t *mask_out, uint8_t *gwip_out);
|
void get_network_data(uint8_t *ip_out, uint8_t *mask_out, uint8_t *gwip_out);
|
||||||
void get_remote_data(uint8_t sock, uint8_t *ip_out, uint8_t *port_out);
|
void get_remote_data(uint8_t sock, uint8_t *ip_out, uint8_t *port_out);
|
||||||
|
|
||||||
int8_t wifi_set_network(const char* ssid, uint8_t ssid_len);
|
int8_t wifi_set_network(const std::string ssid);
|
||||||
int8_t wifi_set_passphrase(const char* ssid, uint8_t ssid_len, const char *passphrase, const uint8_t len);
|
int8_t wifi_set_passphrase(const std::string ssid, const std::string passphrase);
|
||||||
int8_t wifi_set_key(const char* ssid, uint8_t ssid_len, uint8_t key_idx, const void *key, const uint8_t len);
|
int8_t wifi_set_key(const std::string ssid, uint8_t key_idx, const std::string key);
|
||||||
|
|
||||||
void config(uint8_t valid_params, uint32_t local_ip, uint32_t gateway, uint32_t subnet);
|
void config(uint8_t valid_params, uint32_t local_ip, uint32_t gateway, uint32_t subnet);
|
||||||
|
|
||||||
void set_dns(uint8_t valid_params, uint32_t dns_server1, uint32_t dns_server2);
|
void set_dns(uint8_t valid_params, uint32_t dns_server1, uint32_t dns_server2);
|
||||||
void set_hostname(const char* hostname);
|
void set_hostname(std::string hostname);
|
||||||
int8_t disconnect();
|
int8_t disconnect();
|
||||||
|
|
||||||
uint8_t get_connection_status();
|
uint8_t get_connection_status();
|
||||||
|
@ -127,7 +128,7 @@ namespace pimoroni {
|
||||||
void get_subnet_mask(IPAddress &mask_out);
|
void get_subnet_mask(IPAddress &mask_out);
|
||||||
void get_gateway_ip(IPAddress &ip_out);
|
void get_gateway_ip(IPAddress &ip_out);
|
||||||
|
|
||||||
const char* get_current_ssid();
|
std::string get_current_ssid();
|
||||||
uint8_t* get_current_bssid();
|
uint8_t* get_current_bssid();
|
||||||
int32_t get_current_rssi();
|
int32_t get_current_rssi();
|
||||||
uint8_t get_current_encryption_type();
|
uint8_t get_current_encryption_type();
|
||||||
|
@ -149,8 +150,8 @@ namespace pimoroni {
|
||||||
uint32_t get_time();
|
uint32_t get_time();
|
||||||
void set_power_mode(uint8_t mode);
|
void set_power_mode(uint8_t mode);
|
||||||
|
|
||||||
int8_t wifi_set_ap_network(const char* ssid, uint8_t ssid_len, uint8_t channel);
|
int8_t wifi_set_ap_network(const std::string ssid, uint8_t channel);
|
||||||
int8_t wifi_set_ap_passphrase(const char* ssid, uint8_t ssid_len, const char *passphrase, const uint8_t len, uint8_t channel);
|
int8_t wifi_set_ap_passphrase(const std::string ssid, const std::string passphrase, uint8_t channel);
|
||||||
|
|
||||||
int16_t ping(uint32_t ip_address, uint8_t ttl);
|
int16_t ping(uint32_t ip_address, uint8_t ttl);
|
||||||
|
|
||||||
|
@ -169,7 +170,7 @@ namespace pimoroni {
|
||||||
void start_server(uint16_t port, uint8_t sock, uint8_t prot_mode);
|
void start_server(uint16_t port, uint8_t sock, uint8_t prot_mode);
|
||||||
void start_server(uint32_t ip_address, uint16_t port, uint8_t sock, uint8_t prot_mode);
|
void start_server(uint32_t ip_address, uint16_t port, uint8_t sock, uint8_t prot_mode);
|
||||||
void start_client(uint32_t ip_address, uint16_t port, uint8_t sock, uint8_t prot_mode);
|
void start_client(uint32_t ip_address, uint16_t port, uint8_t sock, uint8_t prot_mode);
|
||||||
void start_client(const char* host, uint8_t host_len, uint32_t ip_address, uint16_t port, uint8_t sock, uint8_t prot_mode);
|
void start_client(const std::string host, uint32_t ip_address, uint16_t port, uint8_t sock, uint8_t prot_mode);
|
||||||
void stop_client(uint8_t sock);
|
void stop_client(uint8_t sock);
|
||||||
|
|
||||||
uint8_t get_server_state(uint8_t sock);
|
uint8_t get_server_state(uint8_t sock);
|
||||||
|
|
|
@ -87,10 +87,10 @@ int main() {
|
||||||
|
|
||||||
printf("starting connection\n");
|
printf("starting connection\n");
|
||||||
|
|
||||||
bool connected = wireless.wifi_set_passphrase(NETWORK, sizeof(NETWORK), PASSWORD, sizeof(PASSWORD));
|
bool connected = wireless.wifi_set_passphrase(NETWORK, PASSWORD);
|
||||||
|
|
||||||
printf("waiting to establish connection status\n");
|
printf("waiting to establish connection status\n");
|
||||||
while(wireless.get_connection_status() != 3) {
|
while(wireless.get_connection_status() != WL_CONNECTED) {
|
||||||
sleep_ms(1000);
|
sleep_ms(1000);
|
||||||
printf("still waiting\n");
|
printf("still waiting\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
//DO NOT COMMIT THIS FILE!!!
|
//DO NOT COMMIT THIS FILE!!!
|
||||||
|
|
||||||
//Your wireless network's name and password
|
//Your wireless network's name and password
|
||||||
static const char NETWORK[] = "network name here";
|
#define NETWORK "network name here"
|
||||||
static const char PASSWORD[] = "network password here";
|
#define PASSWORD "network password here"
|
||||||
|
|
Ładowanie…
Reference in New Issue