sdasd
Dependencies: BLE_API mbed nRF51822
Fork of MEDRON_SNIFFER_ABCD-KIMLIKLI-OLANLARI-TARAMA-YAPAR_30062016 by
main.cpp@15:a88e0135e67e, 2017-09-21 (annotated)
- Committer:
- Adembay
- Date:
- Thu Sep 21 09:16:14 2017 +0000
- Revision:
- 15:a88e0135e67e
- Parent:
- 14:59ba4a2a17c7
sda
Who changed what in which revision?
User | Revision | Line number | New 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 *)¶ms->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 | } |