sdasd

Dependencies:   BLE_API mbed nRF51822

Fork of MEDRON_SNIFFER_ABCD-KIMLIKLI-OLANLARI-TARAMA-YAPAR_30062016 by HAKAN AYDIN

Committer:
Adembay
Date:
Thu Sep 21 09:16:14 2017 +0000
Revision:
15:a88e0135e67e
Parent:
14:59ba4a2a17c7
sda

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 0:332983584a9c 1 #include "mbed.h"
rgrover1 9:69a2ad0bcdb7 2 #include "toolchain.h"
rgrover1 9:69a2ad0bcdb7 3 #include "ble/BLE.h"
Adembay 15:a88e0135e67e 4 #include "spi_master.h"
hknydn 12:f4b869da449c 5
Adembay 15:a88e0135e67e 6
Adembay 15:a88e0135e67e 7 /////////////////////////////SPI//////////////////////
Adembay 15:a88e0135e67e 8 SPIClass SPI1(NRF_SPI1);
Adembay 15:a88e0135e67e 9 //# CS P0_14
Adembay 15:a88e0135e67e 10 //# SCK P0_25
Adembay 15:a88e0135e67e 11 //# MOSI P0_20"
Adembay 15:a88e0135e67e 12 //# MISO P0_22
Adembay 15:a88e0135e67e 13 DigitalOut spi_cs(P0_7);
Adembay 15:a88e0135e67e 14 /////////////////////////////////////////////////////
Adembay 15:a88e0135e67e 15
Adembay 15:a88e0135e67e 16 DigitalIn esp_baglimi(P0_11);
Adembay 15:a88e0135e67e 17
Adembay 15:a88e0135e67e 18 ////////////////////////////////DATA_FORMATIM///////////////////////////////////////////////////////
Adembay 15:a88e0135e67e 19
Adembay 15:a88e0135e67e 20 Serial pc(TX_PIN_NUMBER, P0_3/*RX_PIN_NUMBER*/);
Adembay 15:a88e0135e67e 21
Adembay 15:a88e0135e67e 22 #define ToplamCihaz 1// (10) hakan değiştir 01122016
Adembay 15:a88e0135e67e 23 #define bufferSize 60
Adembay 15:a88e0135e67e 24 uint8_t bulunan_index[ToplamCihaz];
Adembay 15:a88e0135e67e 25 struct Medron_Data
Adembay 15:a88e0135e67e 26 {
Adembay 15:a88e0135e67e 27 uint8_t MacID[6]; // MAC ID leri bunun içinde tutacağız
Adembay 15:a88e0135e67e 28 uint8_t RSSI; // MAC ID leri bunun içinde tutacağız
Adembay 15:a88e0135e67e 29 uint8_t LENGTH;
Adembay 15:a88e0135e67e 30 uint8_t MYDATA[50];
Adembay 15:a88e0135e67e 31 uint8_t PAKET_LENGTH;//SPI'YDAN STM32'YE GÖNDERİLCEK DATANIN TOPLAM
Adembay 15:a88e0135e67e 32 //UZUNLUGU.
Adembay 15:a88e0135e67e 33 } PACKED_Data[ToplamCihaz];
Adembay 15:a88e0135e67e 34 //////////////////////////////////////////////////////////////////////////////////////////////////
Adembay 15:a88e0135e67e 35
Adembay 15:a88e0135e67e 36
Adembay 15:a88e0135e67e 37 ///////////////////////////////////////////////////////////////////////////////////////////////////
Adembay 15:a88e0135e67e 38 // ÖZEL BİR BEACON ALIYORSAK BU KULLANILIR. ARANACAK OLAN BEACON SAYILARI BELİRTİLMELİ
Adembay 15:a88e0135e67e 39 // VE BEACON MAC ID'SI SİSTEME TANITILMALIDIR.
Adembay 15:a88e0135e67e 40 #define ARANAN_MAC_SAYI 6
Adembay 15:a88e0135e67e 41 typedef struct
Adembay 15:a88e0135e67e 42 {
Adembay 15:a88e0135e67e 43 uint8_t mac_id[6];
Adembay 15:a88e0135e67e 44 }Beacon_MAC_ID;
Adembay 15:a88e0135e67e 45 Beacon_MAC_ID b_mac[ARANAN_MAC_SAYI];
Adembay 15:a88e0135e67e 46 uint8_t say=0;
Adembay 15:a88e0135e67e 47
Adembay 15:a88e0135e67e 48 void mac_id_gir()
Adembay 15:a88e0135e67e 49 {
Adembay 15:a88e0135e67e 50
Adembay 15:a88e0135e67e 51 //ISIK SENSOR
Adembay 15:a88e0135e67e 52 b_mac[0].mac_id[5]=0xAC;
Adembay 15:a88e0135e67e 53 b_mac[0].mac_id[4]=0x23;
Adembay 15:a88e0135e67e 54 b_mac[0].mac_id[3]=0x3F;
Adembay 15:a88e0135e67e 55 b_mac[0].mac_id[2]=0xB0;
Adembay 15:a88e0135e67e 56 b_mac[0].mac_id[1]=0x42;
Adembay 15:a88e0135e67e 57 b_mac[0].mac_id[0]=0x12;
sunsmile2015 7:91324daa3bfa 58
Adembay 15:a88e0135e67e 59 //hum+temp s1 SENSOR
Adembay 15:a88e0135e67e 60 b_mac[1].mac_id[5]=0xAC;
Adembay 15:a88e0135e67e 61 b_mac[1].mac_id[4]=0x23;
Adembay 15:a88e0135e67e 62 b_mac[1].mac_id[3]=0x3F;
Adembay 15:a88e0135e67e 63 b_mac[1].mac_id[2]=0xa0;
Adembay 15:a88e0135e67e 64 b_mac[1].mac_id[1]=0x03;
Adembay 15:a88e0135e67e 65 b_mac[1].mac_id[0]=0xcd;
Adembay 15:a88e0135e67e 66
Adembay 15:a88e0135e67e 67
Adembay 15:a88e0135e67e 68 /* //personel SENSOR
Adembay 15:a88e0135e67e 69 b_mac[2].mac_id[5]=0xe7;
Adembay 15:a88e0135e67e 70 b_mac[2].mac_id[4]=0x5e;
Adembay 15:a88e0135e67e 71 b_mac[2].mac_id[3]=0xb3;
Adembay 15:a88e0135e67e 72 b_mac[2].mac_id[2]=0x21;
Adembay 15:a88e0135e67e 73 b_mac[2].mac_id[1]=0x69;*
Adembay 15:a88e0135e67e 74 b_mac[2].mac_id[0]=0xa6; */
Adembay 15:a88e0135e67e 75
Adembay 15:a88e0135e67e 76 //personel SENSOR
Adembay 15:a88e0135e67e 77 b_mac[2].mac_id[5]=0xCF;
Adembay 15:a88e0135e67e 78 b_mac[2].mac_id[4]=0x70;
Adembay 15:a88e0135e67e 79 b_mac[2].mac_id[3]=0x44;
Adembay 15:a88e0135e67e 80 b_mac[2].mac_id[2]=0xD7;
Adembay 15:a88e0135e67e 81 b_mac[2].mac_id[1]=0x12;
Adembay 15:a88e0135e67e 82 b_mac[2].mac_id[0]=0xA8;
Adembay 15:a88e0135e67e 83
Adembay 15:a88e0135e67e 84
Adembay 15:a88e0135e67e 85 //motion SENSOR
Adembay 15:a88e0135e67e 86 b_mac[3].mac_id[5]=0xC7;
Adembay 15:a88e0135e67e 87 b_mac[3].mac_id[4]=0x6E;
Adembay 15:a88e0135e67e 88 b_mac[3].mac_id[3]=0x50;
Adembay 15:a88e0135e67e 89 b_mac[3].mac_id[2]=0x70;
Adembay 15:a88e0135e67e 90 b_mac[3].mac_id[1]=0x64;
Adembay 15:a88e0135e67e 91 b_mac[3].mac_id[0]=0x6E;
Adembay 15:a88e0135e67e 92
Adembay 15:a88e0135e67e 93 //hum+temp s1 SENSOR
Adembay 15:a88e0135e67e 94 b_mac[4].mac_id[5]=0xAC;
Adembay 15:a88e0135e67e 95 b_mac[4].mac_id[4]=0x23;
Adembay 15:a88e0135e67e 96 b_mac[4].mac_id[3]=0x3F;
Adembay 15:a88e0135e67e 97 b_mac[4].mac_id[2]=0xa0;
Adembay 15:a88e0135e67e 98 b_mac[4].mac_id[1]=0x04;
Adembay 15:a88e0135e67e 99 b_mac[4].mac_id[0]=0x43;
Adembay 15:a88e0135e67e 100
Adembay 15:a88e0135e67e 101 //motion SENSOR
Adembay 15:a88e0135e67e 102 b_mac[5].mac_id[5]=0xE6;
Adembay 15:a88e0135e67e 103 b_mac[5].mac_id[4]=0xD0;
Adembay 15:a88e0135e67e 104 b_mac[5].mac_id[3]=0x4C;
Adembay 15:a88e0135e67e 105 b_mac[5].mac_id[2]=0xFC;
Adembay 15:a88e0135e67e 106 b_mac[5].mac_id[1]=0x4C;
Adembay 15:a88e0135e67e 107 b_mac[5].mac_id[0]=0xB8;
Adembay 15:a88e0135e67e 108 }
Adembay 15:a88e0135e67e 109 ////////////////////////////////////////////////////////////////////////////////////////////////
rgrover1 0:332983584a9c 110
Adembay 15:a88e0135e67e 111 void Flash_Buff_WriteBytes(uint16_t addr, uint8_t *pbuf, uint16_t len)
rgrover1 0:332983584a9c 112 {
Adembay 15:a88e0135e67e 113 uint16_t index;
Adembay 15:a88e0135e67e 114
Adembay 15:a88e0135e67e 115 spi_cs = 0;
Adembay 15:a88e0135e67e 116 wait_us(20);
Adembay 15:a88e0135e67e 117 for(index=0; index<len; index++)
Adembay 15:a88e0135e67e 118 {
Adembay 15:a88e0135e67e 119 SPI1.transfer(*pbuf);
Adembay 15:a88e0135e67e 120 pbuf++;
Adembay 15:a88e0135e67e 121 }
Adembay 15:a88e0135e67e 122
Adembay 15:a88e0135e67e 123 wait_us(20);
Adembay 15:a88e0135e67e 124 spi_cs = 1;
rgrover1 0:332983584a9c 125 }
rgrover1 0:332983584a9c 126
rgrover1 9:69a2ad0bcdb7 127 /*
Adembay 15:a88e0135e67e 128 This function is called every time we scan an advertisement.
Adembay 15:a88e0135e67e 129 */
sunsmile2015 6:850f44146c9f 130 void advertisementCallback(const Gap::AdvertisementCallbackParams_t *params)
sunsmile2015 6:850f44146c9f 131 {
Adembay 15:a88e0135e67e 132
Adembay 15:a88e0135e67e 133 /* EXAMPLE
Adembay 15:a88e0135e67e 134
Adembay 15:a88e0135e67e 135 fa 8c b3 c7 1c 61 :MAC ; 6 BYTE
Adembay 15:a88e0135e67e 136 2b:RSSI;1BYTE
Adembay 15:a88e0135e67e 137 0a:UZUNLUK;1BYTE-->0A H=10 D
Adembay 15:a88e0135e67e 138 09 ff cd ab 01 00 4d 52 e8 00 00 00 00 00 00 00 00 00 00 00 ;DATA
Adembay 15:a88e0135e67e 139 1 2 3 4 5 6 7 8 9 10 X X X X X X X X X X ;DATA SAYISI
Adembay 15:a88e0135e67e 140
Adembay 15:a88e0135e67e 141 c8 60 85 e2 73 e2 :MAC:6
Adembay 15:a88e0135e67e 142 37:RSSI:1
Adembay 15:a88e0135e67e 143 08:LENGTH:1
Adembay 15:a88e0135e67e 144 07 ff cd ab 00 00 e7 00:DATA
Adembay 15:a88e0135e67e 145 1 2 3 4 5 6 7 8 ;DATA SAYISI
Adembay 15:a88e0135e67e 146 */
Adembay 15:a88e0135e67e 147
Adembay 15:a88e0135e67e 148 struct AdvertisingData_t
Adembay 15:a88e0135e67e 149 {
Adembay 15:a88e0135e67e 150 uint8_t length; /* doesn't include itself */
Adembay 15:a88e0135e67e 151 GapAdvertisingData::DataType_t dataType;
Adembay 15:a88e0135e67e 152 uint8_t data[0];
Adembay 15:a88e0135e67e 153 } PACKED;
Adembay 15:a88e0135e67e 154
Adembay 15:a88e0135e67e 155 struct ApplicationData_t
Adembay 15:a88e0135e67e 156 {
Adembay 15:a88e0135e67e 157 uint16_t applicationSpecificId; /* An ID used to identify temperature value
Adembay 15:a88e0135e67e 158 in the manufacture specific AD data field */
Adembay 15:a88e0135e67e 159 } PACKED;
Adembay 15:a88e0135e67e 160
Adembay 15:a88e0135e67e 161
Adembay 15:a88e0135e67e 162 for (uint8_t macsay=0; macsay < ARANAN_MAC_SAYI; macsay++)
Adembay 15:a88e0135e67e 163 {
Adembay 15:a88e0135e67e 164
Adembay 15:a88e0135e67e 165 if (( params->peerAddr[5] == b_mac[macsay].mac_id[5] && params->peerAddr[4] == b_mac[macsay].mac_id[4]
Adembay 15:a88e0135e67e 166 && params->peerAddr[3] == b_mac[macsay].mac_id[3] && params->peerAddr[2] == b_mac[macsay].mac_id[2]
Adembay 15:a88e0135e67e 167 && params->peerAddr[1] == b_mac[macsay].mac_id[1] && params->peerAddr[0] == b_mac[macsay].mac_id[0] ))
Adembay 15:a88e0135e67e 168 {
Adembay 15:a88e0135e67e 169
Adembay 15:a88e0135e67e 170 PACKED_Data[say].MacID[5] = params->peerAddr[5];
Adembay 15:a88e0135e67e 171 PACKED_Data[say].MacID[4] = params->peerAddr[4];
Adembay 15:a88e0135e67e 172 PACKED_Data[say].MacID[3] = params->peerAddr[3];
Adembay 15:a88e0135e67e 173 PACKED_Data[say].MacID[2] = params->peerAddr[2];
Adembay 15:a88e0135e67e 174 PACKED_Data[say].MacID[1] = params->peerAddr[1];
Adembay 15:a88e0135e67e 175 PACKED_Data[say].MacID[0] = params->peerAddr[0];
Adembay 15:a88e0135e67e 176 //IŞIK İSE
Adembay 15:a88e0135e67e 177 if (( params->peerAddr[5] ==0xac && params->peerAddr[4] ==0x23
Adembay 15:a88e0135e67e 178 && params->peerAddr[3] ==0x3f && params->peerAddr[2] ==0xb0
Adembay 15:a88e0135e67e 179 && params->peerAddr[1] ==0x42 && params->peerAddr[0] ==0x12))
Adembay 15:a88e0135e67e 180 {
Adembay 15:a88e0135e67e 181 PACKED_Data[say].RSSI = (params->rssi) * -1;
Adembay 15:a88e0135e67e 182 PACKED_Data[say].LENGTH = 10; //params->advertisingDataLen;
Adembay 15:a88e0135e67e 183 PACKED_Data[say].PAKET_LENGTH = 6 + 1 + 1 + 10; //MAC+RSSI+1+LENGTH
Adembay 15:a88e0135e67e 184
Adembay 15:a88e0135e67e 185 pc.printf("TOPLAM PAKET UZUNLUK = (%d ) : ---> ", PACKED_Data[say].PAKET_LENGTH);
Adembay 15:a88e0135e67e 186 PACKED_Data[say].MYDATA[0] = 0x07;
Adembay 15:a88e0135e67e 187 PACKED_Data[say].MYDATA[1] = 0xff;
Adembay 15:a88e0135e67e 188
Adembay 15:a88e0135e67e 189 PACKED_Data[say].MYDATA[2] = 0xef;//medrona ait olmayan beaconlar için, abcd değil
Adembay 15:a88e0135e67e 190 PACKED_Data[say].MYDATA[3] = 0xab;
Adembay 15:a88e0135e67e 191
Adembay 15:a88e0135e67e 192 PACKED_Data[say].MYDATA[4] = 0x08;// tipi elle girilmiş.
Adembay 15:a88e0135e67e 193 PACKED_Data[say].MYDATA[5] = 0x00;
rgrover1 9:69a2ad0bcdb7 194
Adembay 15:a88e0135e67e 195 PACKED_Data[say].MYDATA[6] = params->advertisingData[14];// ISIK
Adembay 15:a88e0135e67e 196 PACKED_Data[say].MYDATA[7] = 0x00;
Adembay 15:a88e0135e67e 197
Adembay 15:a88e0135e67e 198 PACKED_Data[say].MYDATA[8] = params->advertisingData[13];//PİL
Adembay 15:a88e0135e67e 199 PACKED_Data[say].MYDATA[9] = 0x00;
Adembay 15:a88e0135e67e 200 }
Adembay 15:a88e0135e67e 201
Adembay 15:a88e0135e67e 202 if (( params->peerAddr[5] ==0xac && params->peerAddr[4] ==0x23
Adembay 15:a88e0135e67e 203 && params->peerAddr[3] ==0x3f && params->peerAddr[2] ==0xa0
Adembay 15:a88e0135e67e 204 && params->peerAddr[1] ==0x03 && params->peerAddr[0] ==0xcd))
Adembay 15:a88e0135e67e 205 {
Adembay 15:a88e0135e67e 206 PACKED_Data[say].RSSI = (params->rssi) * -1;
Adembay 15:a88e0135e67e 207 PACKED_Data[say].LENGTH = 12; //params->advertisingDataLen;
Adembay 15:a88e0135e67e 208 PACKED_Data[say].PAKET_LENGTH = 6 + 1 + 1 + 12; //MAC+RSSI+1+LENGTH
Adembay 15:a88e0135e67e 209
Adembay 15:a88e0135e67e 210 pc.printf("TOPLAM PAKET UZUNLUK = (%d ) : ---> ", PACKED_Data[say].PAKET_LENGTH);
Adembay 15:a88e0135e67e 211 PACKED_Data[say].MYDATA[0] = 0x07;
Adembay 15:a88e0135e67e 212 PACKED_Data[say].MYDATA[1] = 0xff;
Adembay 15:a88e0135e67e 213
Adembay 15:a88e0135e67e 214 PACKED_Data[say].MYDATA[2] = 0xef;//medrona ait olmayan beaconlar için, abcd değil
Adembay 15:a88e0135e67e 215 PACKED_Data[say].MYDATA[3] = 0xab;
Adembay 15:a88e0135e67e 216
Adembay 15:a88e0135e67e 217 PACKED_Data[say].MYDATA[4] = 0x09;// tipi elle girilmiş.
Adembay 15:a88e0135e67e 218 PACKED_Data[say].MYDATA[5] = 0x00;
Adembay 15:a88e0135e67e 219
Adembay 15:a88e0135e67e 220 PACKED_Data[say].MYDATA[6] = params->advertisingData[14];// temp
Adembay 15:a88e0135e67e 221 PACKED_Data[say].MYDATA[7] = params->advertisingData[15];
Adembay 15:a88e0135e67e 222
Adembay 15:a88e0135e67e 223 PACKED_Data[say].MYDATA[8] = params->advertisingData[16];//hum
Adembay 15:a88e0135e67e 224 PACKED_Data[say].MYDATA[9] = params->advertisingData[17];
Adembay 15:a88e0135e67e 225
Adembay 15:a88e0135e67e 226 PACKED_Data[say].MYDATA[10] = params->advertisingData[13];//PİL
Adembay 15:a88e0135e67e 227 PACKED_Data[say].MYDATA[11] = 0x00;
Adembay 15:a88e0135e67e 228 }
Adembay 15:a88e0135e67e 229
Adembay 15:a88e0135e67e 230 if (( params->peerAddr[5] ==0xac && params->peerAddr[4] ==0x23
Adembay 15:a88e0135e67e 231 && params->peerAddr[3] ==0x3f && params->peerAddr[2] ==0xa0
Adembay 15:a88e0135e67e 232 && params->peerAddr[1] ==0x04 && params->peerAddr[0] ==0x43))
Adembay 15:a88e0135e67e 233 {
Adembay 15:a88e0135e67e 234 PACKED_Data[say].RSSI = (params->rssi) * -1;
Adembay 15:a88e0135e67e 235 PACKED_Data[say].LENGTH = 12; //params->advertisingDataLen;
Adembay 15:a88e0135e67e 236 PACKED_Data[say].PAKET_LENGTH = 6 + 1 + 1 + 12; //MAC+RSSI+1+LENGTH
Adembay 15:a88e0135e67e 237
Adembay 15:a88e0135e67e 238 pc.printf("TOPLAM PAKET UZUNLUK = (%d ) : ---> ", PACKED_Data[say].PAKET_LENGTH);
Adembay 15:a88e0135e67e 239 PACKED_Data[say].MYDATA[0] = 0x07;
Adembay 15:a88e0135e67e 240 PACKED_Data[say].MYDATA[1] = 0xff;
Adembay 15:a88e0135e67e 241
Adembay 15:a88e0135e67e 242 PACKED_Data[say].MYDATA[2] = 0xef;//medrona ait olmayan beaconlar için, abcd değil
Adembay 15:a88e0135e67e 243 PACKED_Data[say].MYDATA[3] = 0xab;
Adembay 15:a88e0135e67e 244
Adembay 15:a88e0135e67e 245 PACKED_Data[say].MYDATA[4] = 0x09;// tipi elle girilmiş.
Adembay 15:a88e0135e67e 246 PACKED_Data[say].MYDATA[5] = 0x00;
Adembay 15:a88e0135e67e 247
Adembay 15:a88e0135e67e 248 PACKED_Data[say].MYDATA[6] = params->advertisingData[14];// temp
Adembay 15:a88e0135e67e 249 PACKED_Data[say].MYDATA[7] = params->advertisingData[15];
Adembay 15:a88e0135e67e 250
Adembay 15:a88e0135e67e 251 PACKED_Data[say].MYDATA[8] = params->advertisingData[16];//hum
Adembay 15:a88e0135e67e 252 PACKED_Data[say].MYDATA[9] = params->advertisingData[17];
Adembay 15:a88e0135e67e 253
Adembay 15:a88e0135e67e 254 PACKED_Data[say].MYDATA[10] = params->advertisingData[13];//PİL
Adembay 15:a88e0135e67e 255 PACKED_Data[say].MYDATA[11] = 0x00;
Adembay 15:a88e0135e67e 256 }
Adembay 15:a88e0135e67e 257
rgrover1 9:69a2ad0bcdb7 258
Adembay 15:a88e0135e67e 259
Adembay 15:a88e0135e67e 260 if (( params->peerAddr[5] ==0xCF && params->peerAddr[4] ==0x70
Adembay 15:a88e0135e67e 261 && params->peerAddr[3] ==0x44 && params->peerAddr[2] ==0xD7
Adembay 15:a88e0135e67e 262 && params->peerAddr[1] ==0x12 && params->peerAddr[0] ==0xA8))
Adembay 15:a88e0135e67e 263 {
Adembay 15:a88e0135e67e 264 PACKED_Data[say].RSSI = (params->rssi) * -1;
Adembay 15:a88e0135e67e 265 PACKED_Data[say].LENGTH = 6; //params->advertisingDataLen;
Adembay 15:a88e0135e67e 266 PACKED_Data[say].PAKET_LENGTH = 6 + 1 + 1 + 6; //MAC+RSSI+1+LENGTH
Adembay 15:a88e0135e67e 267
Adembay 15:a88e0135e67e 268 pc.printf("TOPLAM PAKET UZUNLUK = (%d ) : ---> ", PACKED_Data[say].PAKET_LENGTH);
Adembay 15:a88e0135e67e 269 PACKED_Data[say].MYDATA[0] = 0x07;
Adembay 15:a88e0135e67e 270 PACKED_Data[say].MYDATA[1] = 0xff;
Adembay 15:a88e0135e67e 271
Adembay 15:a88e0135e67e 272 PACKED_Data[say].MYDATA[2] = 0xef;//medrona ait olmayan beaconlar için, abcd değil
Adembay 15:a88e0135e67e 273 PACKED_Data[say].MYDATA[3] = 0xab;
Adembay 15:a88e0135e67e 274
Adembay 15:a88e0135e67e 275 PACKED_Data[say].MYDATA[4] = 0x05;// tipi elle girilmiş.
Adembay 15:a88e0135e67e 276 PACKED_Data[say].MYDATA[5] = 0x00;
Adembay 15:a88e0135e67e 277 }
Adembay 15:a88e0135e67e 278
Adembay 15:a88e0135e67e 279 if (( params->peerAddr[5] ==0xC7 && params->peerAddr[4] ==0x6E
Adembay 15:a88e0135e67e 280 && params->peerAddr[3] ==0x50 && params->peerAddr[2] ==0x70
Adembay 15:a88e0135e67e 281 && params->peerAddr[1] ==0x64 && params->peerAddr[0] ==0x6E))
Adembay 15:a88e0135e67e 282 {
Adembay 15:a88e0135e67e 283 PACKED_Data[say].RSSI = (params->rssi) * -1;
Adembay 15:a88e0135e67e 284 PACKED_Data[say].LENGTH = 6; //params->advertisingDataLen;
Adembay 15:a88e0135e67e 285 PACKED_Data[say].PAKET_LENGTH = 6 + 1 + 1 + 6; //MAC+RSSI+1+LENGTH
Adembay 15:a88e0135e67e 286
Adembay 15:a88e0135e67e 287 pc.printf("TOPLAM PAKET UZUNLUK = (%d ) : ---> ", PACKED_Data[say].PAKET_LENGTH);
Adembay 15:a88e0135e67e 288 PACKED_Data[say].MYDATA[0] = 0x07;
Adembay 15:a88e0135e67e 289 PACKED_Data[say].MYDATA[1] = 0xff;
Adembay 15:a88e0135e67e 290
Adembay 15:a88e0135e67e 291 PACKED_Data[say].MYDATA[2] = 0xef;//medrona ait olmayan beaconlar için, abcd değil
Adembay 15:a88e0135e67e 292 PACKED_Data[say].MYDATA[3] = 0xab;
Adembay 15:a88e0135e67e 293
Adembay 15:a88e0135e67e 294 PACKED_Data[say].MYDATA[4] = 0x07;// tipi elle girilmiş.
Adembay 15:a88e0135e67e 295 PACKED_Data[say].MYDATA[5] = 0x00;
Adembay 15:a88e0135e67e 296 }
Adembay 15:a88e0135e67e 297
Adembay 15:a88e0135e67e 298 /* if (( params->peerAddr[5] ==0xC7 && params->peerAddr[4] ==0x6E
Adembay 15:a88e0135e67e 299 && params->peerAddr[3] ==0x50 && params->peerAddr[2] ==0x70
Adembay 15:a88e0135e67e 300 && params->peerAddr[1] ==0x64 && params->peerAddr[0] ==0x6E))
Adembay 15:a88e0135e67e 301 {
Adembay 15:a88e0135e67e 302 PACKED_Data[say].RSSI = (params->rssi) * -1;
Adembay 15:a88e0135e67e 303 PACKED_Data[say].LENGTH = 14; //params->advertisingDataLen;
Adembay 15:a88e0135e67e 304 PACKED_Data[say].PAKET_LENGTH = 6 + 1 + 1 + 14; //MAC+RSSI+1+LENGTH
Adembay 15:a88e0135e67e 305
Adembay 15:a88e0135e67e 306 pc.printf("TOPLAM PAKET UZUNLUK = (%d ) : ---> ", PACKED_Data[say].PAKET_LENGTH);
Adembay 15:a88e0135e67e 307 PACKED_Data[say].MYDATA[0] = 0x07;
Adembay 15:a88e0135e67e 308 PACKED_Data[say].MYDATA[1] = 0xff;
Adembay 15:a88e0135e67e 309
Adembay 15:a88e0135e67e 310 PACKED_Data[say].MYDATA[2] = 0xef;//medrona ait olmayan beaconlar için, abcd değil
Adembay 15:a88e0135e67e 311 PACKED_Data[say].MYDATA[3] = 0xab;
Adembay 15:a88e0135e67e 312
Adembay 15:a88e0135e67e 313 PACKED_Data[say].MYDATA[4] = 0x06;// tipi elle girilmiş.
Adembay 15:a88e0135e67e 314 PACKED_Data[say].MYDATA[5] = 0x00;
Adembay 15:a88e0135e67e 315
Adembay 15:a88e0135e67e 316 PACKED_Data[say].MYDATA[6] = params->advertisingData[6];// x
Adembay 15:a88e0135e67e 317 PACKED_Data[say].MYDATA[7] = params->advertisingData[7];
Adembay 15:a88e0135e67e 318
Adembay 15:a88e0135e67e 319 PACKED_Data[say].MYDATA[8] = params->advertisingData[8];//y
Adembay 15:a88e0135e67e 320 PACKED_Data[say].MYDATA[9] = params->advertisingData[9];
Adembay 15:a88e0135e67e 321
Adembay 15:a88e0135e67e 322 PACKED_Data[say].MYDATA[10] = params->advertisingData[10];// z
Adembay 15:a88e0135e67e 323 PACKED_Data[say].MYDATA[11] = params->advertisingData[11];
Adembay 15:a88e0135e67e 324
Adembay 15:a88e0135e67e 325 PACKED_Data[say].MYDATA[12] = params->advertisingData[12];// pil
Adembay 15:a88e0135e67e 326 PACKED_Data[say].MYDATA[13] = params->advertisingData[13];
Adembay 15:a88e0135e67e 327
Adembay 15:a88e0135e67e 328 } */
Adembay 15:a88e0135e67e 329
Adembay 15:a88e0135e67e 330 say++;
Adembay 15:a88e0135e67e 331 }
Adembay 15:a88e0135e67e 332
Adembay 15:a88e0135e67e 333 }
Adembay 15:a88e0135e67e 334
Adembay 15:a88e0135e67e 335
Adembay 15:a88e0135e67e 336 static const uint16_t MED_KIMLIK = 0xABEF;
Adembay 15:a88e0135e67e 337 AdvertisingData_t *pAdvData;
Adembay 15:a88e0135e67e 338 size_t index = 0;
Adembay 15:a88e0135e67e 339 while (index < params->advertisingDataLen)
Adembay 15:a88e0135e67e 340 {
Adembay 15:a88e0135e67e 341 pAdvData = (AdvertisingData_t *)&params->advertisingData[index];
Adembay 15:a88e0135e67e 342 if (pAdvData->dataType == GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA)
Adembay 15:a88e0135e67e 343 {
Adembay 15:a88e0135e67e 344 ApplicationData_t *pAppData = (ApplicationData_t *)pAdvData->data;
Adembay 15:a88e0135e67e 345 if (pAppData->applicationSpecificId == MED_KIMLIK)
Adembay 15:a88e0135e67e 346 {
Adembay 15:a88e0135e67e 347
Adembay 15:a88e0135e67e 348 PACKED_Data[say].MacID[5]=params->peerAddr[5];
Adembay 15:a88e0135e67e 349 PACKED_Data[say].MacID[4]=params->peerAddr[4];
Adembay 15:a88e0135e67e 350 PACKED_Data[say].MacID[3]=params->peerAddr[3];
Adembay 15:a88e0135e67e 351 PACKED_Data[say].MacID[2]=params->peerAddr[2];
Adembay 15:a88e0135e67e 352 PACKED_Data[say].MacID[1]=params->peerAddr[1];
Adembay 15:a88e0135e67e 353 PACKED_Data[say].MacID[0]=params->peerAddr[0];
Adembay 15:a88e0135e67e 354 PACKED_Data[say].RSSI=(params->rssi) * -1;
Adembay 15:a88e0135e67e 355 PACKED_Data[say].LENGTH=params->advertisingDataLen;
Adembay 15:a88e0135e67e 356
Adembay 15:a88e0135e67e 357 PACKED_Data[say].PAKET_LENGTH= 6 + 1 + 1 + params->advertisingDataLen;//MAC+RSSI+1+LENGTH
Adembay 15:a88e0135e67e 358
Adembay 15:a88e0135e67e 359 pc.printf("TOPLAM PAKET UZUNLUK = (%d ) : ---> ",PACKED_Data[say].PAKET_LENGTH);
Adembay 15:a88e0135e67e 360
Adembay 15:a88e0135e67e 361 for (unsigned index = 0; index < params->advertisingDataLen; index++)
Adembay 15:a88e0135e67e 362 {
Adembay 15:a88e0135e67e 363 PACKED_Data[say].MYDATA[index]=params->advertisingData[index];
Adembay 15:a88e0135e67e 364 }
Adembay 15:a88e0135e67e 365
Adembay 15:a88e0135e67e 366 for (unsigned index = params->advertisingDataLen; index < 50; index++)
Adembay 15:a88e0135e67e 367 {
Adembay 15:a88e0135e67e 368 PACKED_Data[say].MYDATA[index]=0x00;
Adembay 15:a88e0135e67e 369 }
Adembay 15:a88e0135e67e 370
Adembay 15:a88e0135e67e 371 say++;
Adembay 15:a88e0135e67e 372 break;
Adembay 15:a88e0135e67e 373 }
Adembay 15:a88e0135e67e 374 }
Adembay 15:a88e0135e67e 375 index += (pAdvData->length + 1);
Adembay 15:a88e0135e67e 376 }
Adembay 15:a88e0135e67e 377
Adembay 15:a88e0135e67e 378
Adembay 15:a88e0135e67e 379 for (unsigned i = 0; i < say; i++)
Adembay 15:a88e0135e67e 380 {
Adembay 15:a88e0135e67e 381 uint8_t buffertoSpi[bufferSize];
Adembay 15:a88e0135e67e 382
Adembay 15:a88e0135e67e 383 for (unsigned a = 0; a < bufferSize; a++)
Adembay 15:a88e0135e67e 384 {
Adembay 15:a88e0135e67e 385 buffertoSpi[a]=0x00;
Adembay 15:a88e0135e67e 386 }
Adembay 15:a88e0135e67e 387
Adembay 15:a88e0135e67e 388 buffertoSpi[0]=PACKED_Data[i].PAKET_LENGTH;
Adembay 15:a88e0135e67e 389
Adembay 15:a88e0135e67e 390 for (unsigned a = 1; a < 7; a++)
Adembay 15:a88e0135e67e 391 {
Adembay 15:a88e0135e67e 392 buffertoSpi[a]= PACKED_Data[i].MacID[6-a];
Adembay 15:a88e0135e67e 393 }
Adembay 15:a88e0135e67e 394
Adembay 15:a88e0135e67e 395 buffertoSpi[7]=PACKED_Data[i].RSSI;
Adembay 15:a88e0135e67e 396 buffertoSpi[8]=PACKED_Data[i].LENGTH;
Adembay 15:a88e0135e67e 397
Adembay 15:a88e0135e67e 398 for (unsigned a = 0; a < PACKED_Data[i].LENGTH; a++)
Adembay 15:a88e0135e67e 399 {
Adembay 15:a88e0135e67e 400 buffertoSpi[9+a]=PACKED_Data[i].MYDATA[a];
Adembay 15:a88e0135e67e 401 }
Adembay 15:a88e0135e67e 402
Adembay 15:a88e0135e67e 403 pc.printf("nRF51 to stm32f103 SENT (BEACON NUMBER = %d ) : ",i);
Adembay 15:a88e0135e67e 404
Adembay 15:a88e0135e67e 405 for (unsigned a = 0; a < bufferSize; a++)
Adembay 15:a88e0135e67e 406 {
Adembay 15:a88e0135e67e 407 pc.printf("%02x",buffertoSpi[a]);
Adembay 15:a88e0135e67e 408 }
Adembay 15:a88e0135e67e 409 pc.printf("\r\n");
Adembay 15:a88e0135e67e 410
Adembay 15:a88e0135e67e 411 // SPI ÜZERİDEN HAZIRLANAN OLUŞTURULAN PAKET VERİ STM32F103'E GÖNDERİLİR.
Adembay 15:a88e0135e67e 412 //PAKET VERİMİZİ ŞÖYLEDİR;
Adembay 15:a88e0135e67e 413 /* TPU + MAC_ID + RSSI + LEN + BEACONDAN OKUNAN VERİLER
Adembay 15:a88e0135e67e 414 "
Adembay 15:a88e0135e67e 415 TPU : TOPLAM PAKET BYTE UZUNLUGU
Adembay 15:a88e0135e67e 416 LEN : BEACONDAN OKUNAN VERİLER TOPLAM BYTE UZUNLUGU
Adembay 15:a88e0135e67e 417
Adembay 15:a88e0135e67e 418 */
Adembay 15:a88e0135e67e 419
Adembay 15:a88e0135e67e 420 if(esp_baglimi)
hknydn 13:5f87b9cdeb6f 421 {
Adembay 15:a88e0135e67e 422 Flash_Buff_WriteBytes(0, buffertoSpi, bufferSize); //eger esp nete baglandıysa göndermeye basla // 13072017
Adembay 15:a88e0135e67e 423 }
hknydn 14:59ba4a2a17c7 424
Adembay 15:a88e0135e67e 425
Adembay 15:a88e0135e67e 426 //wait_ms(200); // hakan ekledi 01122016
Adembay 15:a88e0135e67e 427 wait_ms(1);
Adembay 15:a88e0135e67e 428 bulunan_index[i]=0x00;
Adembay 15:a88e0135e67e 429 }
Adembay 15:a88e0135e67e 430 say=0;
rgrover1 0:332983584a9c 431 }
rgrover1 0:332983584a9c 432
andresag 11:16f67d5752e1 433 /**
Adembay 15:a88e0135e67e 434 This function is called when the ble initialization process has failed
Adembay 15:a88e0135e67e 435 */
andresag 11:16f67d5752e1 436 void onBleInitError(BLE &ble, ble_error_t error)
andresag 11:16f67d5752e1 437 {
Adembay 15:a88e0135e67e 438 /* Initialization error handling should go here */
andresag 11:16f67d5752e1 439 }
andresag 11:16f67d5752e1 440
andresag 11:16f67d5752e1 441 /**
Adembay 15:a88e0135e67e 442 Callback triggered when the ble initialization process has finished
Adembay 15:a88e0135e67e 443 */
andresag 11:16f67d5752e1 444 void bleInitComplete(BLE::InitializationCompleteCallbackContext *params)
andresag 11:16f67d5752e1 445 {
Adembay 15:a88e0135e67e 446 BLE& ble = params->ble;
Adembay 15:a88e0135e67e 447 ble_error_t error = params->error;
andresag 11:16f67d5752e1 448
Adembay 15:a88e0135e67e 449 if (error != BLE_ERROR_NONE) {
Adembay 15:a88e0135e67e 450 /* In case of error, forward the error handling to onBleInitError */
Adembay 15:a88e0135e67e 451 onBleInitError(ble, error);
Adembay 15:a88e0135e67e 452 return;
Adembay 15:a88e0135e67e 453 }
andresag 11:16f67d5752e1 454
Adembay 15:a88e0135e67e 455 /* Ensure that it is the default instance of BLE */
Adembay 15:a88e0135e67e 456 if (ble.getInstanceID() != BLE::DEFAULT_INSTANCE) {
Adembay 15:a88e0135e67e 457 return;
Adembay 15:a88e0135e67e 458 }
andresag 11:16f67d5752e1 459
Adembay 15:a88e0135e67e 460 /* Setup and start scanning */
Adembay 15:a88e0135e67e 461 ble.gap().setScanParams(100 /* scan interval */, 100 /* scan window */);
Adembay 15:a88e0135e67e 462 ble.gap().startScan(advertisementCallback);
Adembay 15:a88e0135e67e 463
andresag 11:16f67d5752e1 464 }
andresag 11:16f67d5752e1 465
rgrover1 0:332983584a9c 466 int main(void)
rgrover1 0:332983584a9c 467 {
Adembay 15:a88e0135e67e 468 pc.baud(115200); //local terminal baud
Adembay 15:a88e0135e67e 469 pc.printf("----MEDRON TEKNOLOJİ SNIFFER---- \r\n");
Adembay 15:a88e0135e67e 470 mac_id_gir();
Adembay 15:a88e0135e67e 471
Adembay 15:a88e0135e67e 472 while(!esp_baglimi)
Adembay 15:a88e0135e67e 473 {
Adembay 15:a88e0135e67e 474 wait_ms(1);
Adembay 15:a88e0135e67e 475 }
Adembay 15:a88e0135e67e 476 SPI1.begin();
Adembay 15:a88e0135e67e 477 BLE &ble = BLE::Instance();
Adembay 15:a88e0135e67e 478 ble.init(bleInitComplete);
rgrover1 0:332983584a9c 479
Adembay 15:a88e0135e67e 480 while (true)
Adembay 15:a88e0135e67e 481 {
Adembay 15:a88e0135e67e 482 ble.waitForEvent();
Adembay 15:a88e0135e67e 483 }
rgrover1 0:332983584a9c 484 }