Сб янв 13, 2024 17:56:15
olegue писал(а):попробовал удалять паузы квадратичным методом. Если энергия буфера меньше Тресхолда, то не отправляют его.
// Функция для определения пиковое значение в заданном буфере
int calculateEnergy(const uint8_t* buffer, int size) {
int energy = 0;
for (int i = 0; i < size; ++i) {
if (buffer[i] > energy) {energy = buffer[i];}
}
return energy; // пиковое значение в заданном буфере
}
Вс янв 14, 2024 23:35:04
Пн янв 15, 2024 15:49:46
Чт янв 18, 2024 15:00:01
Чт янв 18, 2024 15:11:59
Чт янв 18, 2024 22:42:42
Пт янв 19, 2024 15:51:20
Пт янв 19, 2024 20:23:08
Сб янв 20, 2024 11:31:39
olegue писал(а):Я преобразовал свои 8 бит записи к 16 бит...
// Функция для преобразования 8 бит к 16 бит в заданном буфере
void calculateEnergy(int size) {
for (int i = 0; i < size; ++i) {
buffer[i] = (buffer[i] <<4);
}
}
Пн янв 22, 2024 11:36:06
в этом коде я цифрую звук и отправляю его через sim800 в виде udp пакетов. Мне нужно изменить заголовок Udp пакета перед отправкой. Как это сделать:
вот мой код:
void loop() {
if (digitalRead(btnStart) == LOW) {
digitalWrite(ledStart, HIGH);
if (bufByteCount == 32 && bufWrite == 1) {
// Assuming buf01 contains your audio data
modifyUdpHeader(buf01, sizeof(buf01));
// Send the modified UDP packet
myGsm.write(buf01, sizeof(buf01));
}
// Rest of your code...
} else {
digitalWrite(ledStart, LOW);
}
}
void modifyUdpHeader(byte* buffer, int bufferSize) {
// Assuming the UDP header is 8 bytes long
const int udpHeaderSize = 8;
// Modify the UDP header fields as needed
// Example: Set source port to 1234 (2 bytes)
buffer[0] = 0x04;
buffer[1] = 0xD2;
// Example: Set destination port to 5678 (2 bytes)
buffer[2] = 0x16;
buffer[3] = 0xE6;
// Add more modifications as needed...
// Calculate new checksum if needed
// Example: Set checksum to 0 (2 bytes)
buffer[6] = 0x00;
buffer[7] = 0x00;
}
Пн янв 22, 2024 16:28:11
////////////////////////////////////////////////////////////////////////////UDP:
//unsigned char UDP[]={ // 60
//Destination MAC: // 0...5
//0xff,0xff,0xff,0xff,0xff,0xff,
//Source MAC: // 6...11
//0x00,0x08,0xdc,0x01,0x02,0x03,
//Type:
//0x08,0x00, // 12,13- Type: IP (0x0800)
/////////////////////////////////////////////// Protocol IP: 20 bytes
//0x45, // 14- Version: 4, Header length: 20 bytes
//0x00, // 15- Differentiated Services Field...
//(Total Length = Protocol IP(20) + Protocol UDP(8) + Data(18) = 46)
//0x00,0x2e, // 16,17- Total Length: 46
//0x00,0x00, // 18,19- Identification: 0
//0x00,0x00, // 20,21- Fragment offset: Don't fragment: 0
//0x40, // 22- Time to live: 64
//0x11, // 23- Protocol: UDP (17)
//0x00,0x00, // 24,25- Header checksum IP: // начальное =0
//192,168,0,3, // 26...29- Source IP:
//192,168,0,101, // 30...33- Destination IP:
/////////////////////////////////////////////// Protocol UDP
//0x00,0x50, // 34,35- Source port: 80
//0x00,0x50, // 36,37- Destination port: 80
//(Length = Protocol UDP(8) + Data(18) = 26)
//0x00,0x1a, // 38,39- Length: 26
//0x00,0x00, // 40,41- checksum UDP: // начальное =0
/////////////////////////// 42...59- Padding(18 bytes):
//0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//0x00, 0x00
//};
Пн янв 22, 2024 23:22:42
Вт янв 23, 2024 22:19:48
Чт янв 25, 2024 01:45:32
Пт янв 26, 2024 00:46:57
roman.com писал(а):значит нужна буферизация...
void loop() {
if (bufByteCount == 32 && bufWrite == 1)
{
myGsm.write(buf01, sizeof(buf01));
}
if (bufByteCount == 32 && bufWrite == 0)
{
myGsm.write(buf00,sizeof(buf00));
}
} //loop
Пт янв 26, 2024 11:36:10
Чт фев 01, 2024 11:35:49
Пт фев 02, 2024 16:33:21
roman.com писал(а):надо ещё сделать приёмник...
Чт фев 22, 2024 16:17:31
Вт мар 05, 2024 20:12:06