我正在制作一个使用 qt、c++ 和 openGL 显示频谱图(带有合成数据)的应用程序。
出现了以下问题:是否可以在openGL中使用类似canvas的东西,这样当您调用paintGL()时,您不必重新绘制整个频谱图,而只需添加新值?
我正在制作一个使用 qt、c++ 和 openGL 显示频谱图(带有合成数据)的应用程序。
出现了以下问题:是否可以在openGL中使用类似canvas的东西,这样当您调用paintGL()时,您不必重新绘制整个频谱图,而只需添加新值?
我想知道是否可以在 VK 中创建一个页面解析器来提取所有用户的图像(头像、墙壁、保存的照片等),以便通过神经元运行它们?我知道这听起来不太好,但如果这些图片属于公共领域并且将被自主处理,那为什么不呢。我对一个技术点感兴趣,是否可以做到这一点(例如,在Python中)?我只是还没有任何编写解析器的经验,我想知道该往哪个方向深入。
有一个类:
public class Person {
private static ArrayList<Person> persons = new ArrayList<Person>(10);
private final int id;
// Поля...
public Person(){
// Конструктор
}
}
创建一个类的对象时,可以将其写入同一个类的ArrayList中吗?
到目前为止,我想到了这个解决方案:
static一个方法来创建、添加一个对象Person并ArrayList返回它。Person创建的方法的结果分配给类型变量。这个解决方案是最好的吗?
我有 ESP32 的以下代码
#include <BLEDevice.h> //Header file for BLE
static BLEUUID serviceUUID("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"); //Service UUID фитнес браслета, полученный с помощью приложения nRF connect
static BLEUUID charUUID("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"); //Characteristic UUID фитнес браслета, полученный с помощью приложения nRF connect
String My_BLE_Address = "ff:ff:ff:ff:ff:ff"; //аппаратный Bluetooth MAC нашего фитнес браслета, полученный с помощью приложения nRF connect. Будет отличаться для каждого браслета
static BLERemoteCharacteristic* pRemoteCharacteristic;
BLEScan* pBLEScan; //Name the scanning device as pBLEScan
BLEScanResults foundDevices;
static BLEAddress *Server_BLE_Address;
String Scaned_BLE_Address;
boolean paired = false; //boolean variable to togge light (логическая переменная для включения/выключения света)
bool connectToserver (BLEAddress pAddress){
BLEClient* pClient = BLEDevice::createClient();
Serial.println(" - Created client");
// Connect to the BLE Server. (соединение с BLE сервером)
pClient->connect(pAddress);
Serial.println(" - Connected to fitnessband");
// Obtain a reference to the service we are after in the remote BLE server.
BLERemoteService* pRemoteService = pClient->getService(serviceUUID);
if (pRemoteService != nullptr)
{
Serial.println(" - Found our service");
return true;
}
else
return false;
// Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
if (pRemoteCharacteristic != nullptr)
Serial.println(" - Found our characteristic");
return true;
}
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks
{
void onResult(BLEAdvertisedDevice advertisedDevice) {
Serial.printf("Scan Result: %s \n", advertisedDevice.toString().c_str());
Server_BLE_Address = new BLEAddress(advertisedDevice.getAddress());
Scaned_BLE_Address = Server_BLE_Address->toString().c_str();
}
};
void setup() {
Serial.begin(115200); //инициализируем последовательную связь
Serial.println("ESP32 BLE Server program"); //печатаем приветственное сообщение
BLEDevice::init("");
pBLEScan = BLEDevice::getScan(); //начинаем новое сканирование
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks()); //Call the class that is defined above
pBLEScan->setActiveScan(true); // активное сканирование потребляет больше мощности, но быстрее получает результат
pinMode (13,OUTPUT); //задаем режим работы для контакта на вывод данных
}
void loop() {
foundDevices = pBLEScan->start(3); // сканируем в течение 3-х секунд чтобы найти фитнес браслет
while (foundDevices.getCount() >= 1)
{
if (Scaned_BLE_Address == My_BLE_Address && paired == false)
{
Serial.println("Found Device :-)... connecting to Server as client");
if (connectToserver(*Server_BLE_Address))
{
paired = true;
Serial.println("********************LED turned ON************************");
digitalWrite (13,HIGH);
break;
}
else
{
Serial.println("Pairing failed");
break;
}
}
if (Scaned_BLE_Address == My_BLE_Address && paired == true)
{
Serial.println("Our device went out of range"); // устройство вне диапазона действия
paired = false;
Serial.println("********************LED OOOFFFFF************************");
digitalWrite (13,LOW);
ESP.restart();
break;
}
else
{
Serial.println("We have some other BLe device in range"); //некоторые BLe устройства в зоне нашего действия
break;
}
}
}
编译时,程序会产生以下错误日志:
AppData\Local\Temp\.arduinoIDE-unsaved2024817-13824-28fsi2.1i74u\sketch_sep17a\sketch_sep17a.ino: In function 'void loop()':
AppData\Local\Temp\.arduinoIDE-unsaved2024817-13824-28fsi2.1i74u\sketch_sep17a\sketch_sep17a.ino:54:35: error: no match for 'operator=' (operand types are 'BLEScanResults' and 'BLEScanResults*')
**54 | foundDevices = pBLEScan->start(5); // сканируем в течение 5-х секунд чтобы найти фитнес браслет**
| ^
In file included from AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEAdvertisedDevice.h:20,
from AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEClient.h:25,
from AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEDevice.h:22,
from AppData\Local\Temp\.arduinoIDE-unsaved2024817-13824-28fsi2.1i74u\sketch_sep17a\sketch_sep17a.ino:1:
AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEScan.h:48:7: note: candidate: 'BLEScanResults& BLEScanResults::operator=(const BLEScanResults&)'
**48 | class BLEScanResults {
| ^~~~~~~~~~~~~~**
AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEScan.h:48:7: note: no known conversion for argument 1 from 'BLEScanResults*' to 'const BLEScanResults&'
AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEScan.h:48:7: note: candidate: 'BLEScanResults& BLEScanResults::operator=(BLEScanResults&&)'
AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE\src/BLEScan.h:48:7: note: no known conversion for argument 1 from 'BLEScanResults*' to 'BLEScanResults&&'
Используем библиотеку BLE версии 3.0.4 из папки: AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\libraries\BLE
exit status 1
**Compilation error: no match for 'operator=' (operand types are 'BLEScanResults' and 'BLEScanResults*')**
List list = new ArrayList()创造和不创造又有什么意义呢ArrayList list = new ArrayList()?例如,创建 的意义何在Animal dog = new Dog()?
这些问题我已经向AI以及已经有编程经验的朋友问过很多次了,但就是想不通