mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-22 04:58:01 +00:00
report hw vendor and sw version via BLE
This commit is contained in:
parent
d4284ba95d
commit
df2b40f5a1
@ -13,7 +13,7 @@ static BLECharacteristic HardwareVersionCharacteristic(BLEUUID((uint16_t) ESP_GA
|
|||||||
/**
|
/**
|
||||||
* Create standard device info service
|
* Create standard device info service
|
||||||
**/
|
**/
|
||||||
BLEService *createDeviceInfomationService(BLEServer* server) {
|
BLEService *createDeviceInfomationService(BLEServer* server, std::string hwVendor, std::string swVersion) {
|
||||||
BLEService *deviceInfoService = server->createService(BLEUUID((uint16_t) ESP_GATT_UUID_DEVICE_INFO_SVC));
|
BLEService *deviceInfoService = server->createService(BLEUUID((uint16_t) ESP_GATT_UUID_DEVICE_INFO_SVC));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -25,9 +25,9 @@ BLEService *createDeviceInfomationService(BLEServer* server) {
|
|||||||
uint8_t pnp[] = { sig, (uint8_t) (vid >> 8), (uint8_t) vid, (uint8_t) (pid >> 8), (uint8_t) pid, (uint8_t) (version >> 8), (uint8_t) version };
|
uint8_t pnp[] = { sig, (uint8_t) (vid >> 8), (uint8_t) vid, (uint8_t) (pid >> 8), (uint8_t) pid, (uint8_t) (version >> 8), (uint8_t) version };
|
||||||
m_pnpCharacteristic->setValue(pnp, sizeof(pnp));
|
m_pnpCharacteristic->setValue(pnp, sizeof(pnp));
|
||||||
*/
|
*/
|
||||||
SWVersionCharacteristic.setValue("0.1");
|
SWVersionCharacteristic.setValue(swVersion);
|
||||||
deviceInfoService->addCharacteristic(&SWVersionCharacteristic);
|
deviceInfoService->addCharacteristic(&SWVersionCharacteristic);
|
||||||
ManufacturerCharacteristic.setValue("TTGO");
|
ManufacturerCharacteristic.setValue(hwVendor);
|
||||||
deviceInfoService->addCharacteristic(&ManufacturerCharacteristic);
|
deviceInfoService->addCharacteristic(&ManufacturerCharacteristic);
|
||||||
HardwareVersionCharacteristic.setValue("1.0");
|
HardwareVersionCharacteristic.setValue("1.0");
|
||||||
deviceInfoService->addCharacteristic(&HardwareVersionCharacteristic);
|
deviceInfoService->addCharacteristic(&HardwareVersionCharacteristic);
|
||||||
@ -122,13 +122,13 @@ uint32_t getValue32(BLECharacteristic *c, uint32_t defaultValue) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BLEServer *initBLE(std::string deviceName) {
|
BLEServer *initBLE(std::string deviceName, std::string hwVendor, std::string swVersion) {
|
||||||
BLEDevice::init(deviceName);
|
BLEDevice::init(deviceName);
|
||||||
// Create the BLE Server
|
// Create the BLE Server
|
||||||
BLEServer *pServer = BLEDevice::createServer();
|
BLEServer *pServer = BLEDevice::createServer();
|
||||||
pServer->setCallbacks(new MyServerCallbacks());
|
pServer->setCallbacks(new MyServerCallbacks());
|
||||||
|
|
||||||
BLEService *pDevInfo = createDeviceInfomationService(pServer);
|
BLEService *pDevInfo = createDeviceInfomationService(pServer, hwVendor, swVersion);
|
||||||
|
|
||||||
// We now let users create the battery service only if they really want (not all devices have a battery)
|
// We now let users create the battery service only if they really want (not all devices have a battery)
|
||||||
// BLEService *pBattery = createBatteryService(pServer);
|
// BLEService *pBattery = createBatteryService(pServer);
|
||||||
|
@ -18,4 +18,4 @@ void dumpCharacteristic(BLECharacteristic *c);
|
|||||||
uint32_t getValue32(BLECharacteristic *c, uint32_t defaultValue);
|
uint32_t getValue32(BLECharacteristic *c, uint32_t defaultValue);
|
||||||
|
|
||||||
void loopBLE();
|
void loopBLE();
|
||||||
BLEServer *initBLE(std::string devName);
|
BLEServer *initBLE(std::string devName, std::string hwVendor, std::string swVersion);
|
@ -40,6 +40,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
// #define T_BEAM_V10 // AKA Rev1 (second board released)
|
// #define T_BEAM_V10 // AKA Rev1 (second board released)
|
||||||
#define HELTEC_LORA32
|
#define HELTEC_LORA32
|
||||||
|
|
||||||
|
// If we are using the JTAG port for debugging, some pins must be left free for that (and things like GPS have to be disabled)
|
||||||
|
#define USE_JTAG
|
||||||
|
|
||||||
#define DEBUG_PORT Serial // Serial debug port
|
#define DEBUG_PORT Serial // Serial debug port
|
||||||
#define SERIAL_BAUD 115200 // Serial debug baud rate
|
#define SERIAL_BAUD 115200 // Serial debug baud rate
|
||||||
#define SLEEP_MSECS (30 * 24 * 60 * 60 * 1000LL) // Sleep for these many millis (or a button press or a lora msg?)
|
#define SLEEP_MSECS (30 * 24 * 60 * 60 * 1000LL) // Sleep for these many millis (or a button press or a lora msg?)
|
||||||
@ -93,12 +96,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#define GPS_SERIAL_NUM 1
|
#define GPS_SERIAL_NUM 1
|
||||||
#define GPS_BAUDRATE 9600
|
#define GPS_BAUDRATE 9600
|
||||||
#define USE_GPS 1
|
|
||||||
|
|
||||||
#if defined(T_BEAM_V10)
|
#if defined(T_BEAM_V10)
|
||||||
#define GPS_RX_PIN 34
|
#define GPS_RX_PIN 34
|
||||||
|
#ifdef USE_JTAG
|
||||||
|
#define GPS_TX_PIN -1 // We can't send bytes to the GPS while using JTAG (not a big deal)
|
||||||
|
#else
|
||||||
#define GPS_TX_PIN 12
|
#define GPS_TX_PIN 12
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// LoRa SPI
|
// LoRa SPI
|
||||||
@ -110,6 +116,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define NSS_GPIO 18
|
#define NSS_GPIO 18
|
||||||
|
|
||||||
#if defined(T_BEAM_V10)
|
#if defined(T_BEAM_V10)
|
||||||
|
#define HW_VENDOR "TTGO"
|
||||||
|
|
||||||
#define I2C_SDA 21
|
#define I2C_SDA 21
|
||||||
#define I2C_SCL 22
|
#define I2C_SCL 22
|
||||||
@ -123,6 +130,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define PMU_IRQ 35
|
#define PMU_IRQ 35
|
||||||
|
|
||||||
#elif defined(HELTEC_LORA32)
|
#elif defined(HELTEC_LORA32)
|
||||||
|
#define HW_VENDOR "Heltec"
|
||||||
|
|
||||||
#define I2C_SDA 4
|
#define I2C_SDA 4
|
||||||
#define I2C_SCL 15
|
#define I2C_SCL 15
|
||||||
|
|
||||||
|
@ -361,7 +361,7 @@ void setup()
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
service.init();
|
service.init();
|
||||||
BLEServer *serve = initBLE(getDeviceName()); // FIXME, use a real name based on the macaddr
|
BLEServer *serve = initBLE(getDeviceName(), HW_VENDOR, APP_VERSION); // FIXME, use a real name based on the macaddr
|
||||||
createMeshBluetoothService(serve);
|
createMeshBluetoothService(serve);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user