Hi guys. Is there a way I can force a Full Clean for every build? Like anything I can put in the platform.ini file so I don’t have to manually click the “Full Clean” button before build?
The problem is that I’m using a callback in a class definition in a custom header file and platformIO isn’t picking up changes to that class definition. Any changes to the implementation file are picked up fine, but not the header.
The .h and .cpp files are in their own folder under src. The header is properly included in main.cpp. And I reference the custom folder under lib_deps in my ini file like this:
lib_deps =
/Users/casi/Documents/PlatformIO/Projects/Lil Joey Master/src/BLE_LJ
lib_ldf_mode = deep
This is a snippet from my header file (some variables removed) but basically any changes I make under class CharacteristicsCallBack aren’t picked up. No new code, Serial.prints, nothing. So basically I need to do a Full Clean every time.
#ifndef BLE_LJ_H
#define BLE_LJ_H
#include <Arduino.h>
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
class CharacteristicsCallBack: public BLECharacteristicCallbacks {
void onWrite(BLECharacteristic *pChar) override {
Serial.println("callback");
if(pChar->getUUID().toString() == CHARACTERISTIC_UUID_2) {
uint8_t* pChar2Data = pChar->getData();
uint8_t command = pChar2Data[0]
if (command == 1) {
activateLight();
} else if (command == 2) {
Serial.println("in switch call");
commandCode = 1;
} else if (command == 11) {
Serial.println("in 11 call v3");
if (learnMode == HIGH) {
updateCurrentRecording();
}
} else if (command == 22) {
currentRequestedPacket = pChar2Data[3];
debugf("requested packet start: %i\n", currentRequestedPacket);
size_t packetSize = strlen(reinterpret_cast<char*>(pChar2Data));
pCharacteristic_1->setValue(pChar2Data, packetSize);
pCharacteristic_1->notify();
} else if (command == 88) {
uint8_t l_recordingSlot = pChar2Data[1];
uint8_t firstByte = pChar2Data[2];
uint8_t secondByte = pChar2Data[3];
uint16_t cutOffCurrent = (static_cast<uint16_t>(firstByte) << 8) | secondByte;
uint8_t cutOffDelay = pChar2Data[4];
char slotName[15];
for (int i = 0; i < 15; i++) {
slotName[i] = pChar2Data[i + 5];
};
currentSavePreset.recordingSlot = l_recordingSlot;
strcpy(currentSavePreset.slotName, slotName);
currentSavePreset.cutOffCurrent = cutOffCurrent;
currentSavePreset.cutOffDelay = cutOffDelay;
commandCode = 88;
} else if (command == 99) {
commandCode = 99;
}
}
void onRead(BLECharacteristic *pChar) override {
Serial.println("Accessing onRead");
if(pChar->getUUID().toString() == CHARACTERISTIC_UUID_3) {
if (currentRequestedPacket > 0) {
if (learnMode == HIGH) {
packagePacket(33, currentRecordingBuffer, currentRequestedPacket, pCharacteristic_3);
} else {
//packagePacket(currentBuffer, pCharacteristic_3);
}
currentRequestedPacket--;
}
Serial.println("sanity check");
//debugf("currentPacket: %i\n", currentPacket);
}
}
};
#endif