Shivanand Gowda / Mbed OS Multi_7_Seg

Dependencies:   SN74CBT3257 Binary_Switch OSL10564_74HC595

Committer:
shivanandgowdakr
Date:
Mon Sep 16 14:58:09 2019 +0000
Revision:
0:5af5cf75b7f0
7 segment display;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shivanandgowdakr 0:5af5cf75b7f0 1 #include "mbed.h"
shivanandgowdakr 0:5af5cf75b7f0 2 #include "EthernetInterface.h"
shivanandgowdakr 0:5af5cf75b7f0 3 #include "TCPServer.h"
shivanandgowdakr 0:5af5cf75b7f0 4 #include "TCPSocket.h"
shivanandgowdakr 0:5af5cf75b7f0 5 #include "SN74CBT3257.h"
shivanandgowdakr 0:5af5cf75b7f0 6 #include "Binary_Switch.h"
shivanandgowdakr 0:5af5cf75b7f0 7 #include "7segLed_HC595.h"
shivanandgowdakr 0:5af5cf75b7f0 8
shivanandgowdakr 0:5af5cf75b7f0 9 #define NUM_OF_DIGIT 4
shivanandgowdakr 0:5af5cf75b7f0 10
shivanandgowdakr 0:5af5cf75b7f0 11
shivanandgowdakr 0:5af5cf75b7f0 12 #define IP "192.168.1.190"
shivanandgowdakr 0:5af5cf75b7f0 13 #define GATEWAY "192.168.1.1"
shivanandgowdakr 0:5af5cf75b7f0 14 #define MASK "255.255.255.0"
shivanandgowdakr 0:5af5cf75b7f0 15
shivanandgowdakr 0:5af5cf75b7f0 16 int Validate_Recieved_Packet(char *Packet,int *num0, int *num1, int * num2,int *num3,
shivanandgowdakr 0:5af5cf75b7f0 17 int * num4, int *num5, int *num6, int *num7);
shivanandgowdakr 0:5af5cf75b7f0 18
shivanandgowdakr 0:5af5cf75b7f0 19 Serial pc(USBTX,USBRX);
shivanandgowdakr 0:5af5cf75b7f0 20 SN74CBT3257 Bus(PD_0,PD_1,PD_2,PD_3,PD_4,PD_5,PD_6,PD_7 );
shivanandgowdakr 0:5af5cf75b7f0 21 BinarySwitch Switch(PD_8,PD_9,PD_10,PD_11,PD_12,PD_13,PD_14,PD_15);
shivanandgowdakr 0:5af5cf75b7f0 22 SevenSegLed led_7segs(PC_12,PC_10, PC_9, PC_8, NUM_OF_DIGIT);
shivanandgowdakr 0:5af5cf75b7f0 23
shivanandgowdakr 0:5af5cf75b7f0 24 int main()
shivanandgowdakr 0:5af5cf75b7f0 25 {
shivanandgowdakr 0:5af5cf75b7f0 26
shivanandgowdakr 0:5af5cf75b7f0 27 int N0,N1,N2,N3;
shivanandgowdakr 0:5af5cf75b7f0 28 int N4,N5,N6,N7;
shivanandgowdakr 0:5af5cf75b7f0 29 int valid=0;
shivanandgowdakr 0:5af5cf75b7f0 30 int SUCCESS=-1;
shivanandgowdakr 0:5af5cf75b7f0 31 printf("TCP server example\n");
shivanandgowdakr 0:5af5cf75b7f0 32
shivanandgowdakr 0:5af5cf75b7f0 33 EthernetInterface eth;
shivanandgowdakr 0:5af5cf75b7f0 34 SocketAddress sockaddr;
shivanandgowdakr 0:5af5cf75b7f0 35
shivanandgowdakr 0:5af5cf75b7f0 36 //eth.disconnect();
shivanandgowdakr 0:5af5cf75b7f0 37 int i=eth.set_network(IP,MASK,GATEWAY);
shivanandgowdakr 0:5af5cf75b7f0 38 printf("set IP status: %i \r\n",i);
shivanandgowdakr 0:5af5cf75b7f0 39 i=eth.connect();
shivanandgowdakr 0:5af5cf75b7f0 40 printf("connect status: %i \r\n",i);
shivanandgowdakr 0:5af5cf75b7f0 41 const char *ip = eth.get_ip_address();
shivanandgowdakr 0:5af5cf75b7f0 42 const char *mac = eth.get_mac_address();
shivanandgowdakr 0:5af5cf75b7f0 43 printf("IP address is: %s\n\r", ip ? ip : "No IP");
shivanandgowdakr 0:5af5cf75b7f0 44 printf("MAC address is: %s\n\r", mac ? mac : "No MAC");
shivanandgowdakr 0:5af5cf75b7f0 45
shivanandgowdakr 0:5af5cf75b7f0 46 printf("set IP status: %i \r\n",i);
shivanandgowdakr 0:5af5cf75b7f0 47 printf("The Server IP address is '%s'\n", eth.get_ip_address());
shivanandgowdakr 0:5af5cf75b7f0 48
shivanandgowdakr 0:5af5cf75b7f0 49 TCPServer srv;
shivanandgowdakr 0:5af5cf75b7f0 50 TCPSocket client_sock;
shivanandgowdakr 0:5af5cf75b7f0 51 SocketAddress client_addr;
shivanandgowdakr 0:5af5cf75b7f0 52 char buffer[200] = {'\0'};
shivanandgowdakr 0:5af5cf75b7f0 53 char Rx_buffer[200] = {'\0'};
shivanandgowdakr 0:5af5cf75b7f0 54 /* Open the server on ethernet stack */
shivanandgowdakr 0:5af5cf75b7f0 55 srv.open(&eth);
shivanandgowdakr 0:5af5cf75b7f0 56
shivanandgowdakr 0:5af5cf75b7f0 57 /* Bind the HTTP port (TCP 80) to the server */
shivanandgowdakr 0:5af5cf75b7f0 58 srv.bind(eth.get_ip_address(), 23);
shivanandgowdakr 0:5af5cf75b7f0 59
shivanandgowdakr 0:5af5cf75b7f0 60 /* Can handle x simultaneous connections */
shivanandgowdakr 0:5af5cf75b7f0 61
shivanandgowdakr 0:5af5cf75b7f0 62 srv.listen(1);
shivanandgowdakr 0:5af5cf75b7f0 63
shivanandgowdakr 0:5af5cf75b7f0 64 while(true)
shivanandgowdakr 0:5af5cf75b7f0 65 {
shivanandgowdakr 0:5af5cf75b7f0 66 srv.accept(&client_sock, &client_addr);
shivanandgowdakr 0:5af5cf75b7f0 67 printf("Accepted %s:%d\n", client_addr.get_ip_address(),
shivanandgowdakr 0:5af5cf75b7f0 68 client_addr.get_port());
shivanandgowdakr 0:5af5cf75b7f0 69 strcpy(buffer, "Hello \n\r");
shivanandgowdakr 0:5af5cf75b7f0 70 SUCCESS= client_sock.send(buffer, strlen(buffer));
shivanandgowdakr 0:5af5cf75b7f0 71 if(SUCCESS>=1)
shivanandgowdakr 0:5af5cf75b7f0 72 {
shivanandgowdakr 0:5af5cf75b7f0 73 printf("Sent : %s\r\n",buffer);
shivanandgowdakr 0:5af5cf75b7f0 74 SUCCESS=client_sock.recv(Rx_buffer, 200);
shivanandgowdakr 0:5af5cf75b7f0 75 }
shivanandgowdakr 0:5af5cf75b7f0 76
shivanandgowdakr 0:5af5cf75b7f0 77 if(SUCCESS>=1)
shivanandgowdakr 0:5af5cf75b7f0 78 {
shivanandgowdakr 0:5af5cf75b7f0 79 printf("Recieved : %s\r\n",Rx_buffer);
shivanandgowdakr 0:5af5cf75b7f0 80 printf("Am Here \r\n");
shivanandgowdakr 0:5af5cf75b7f0 81 }
shivanandgowdakr 0:5af5cf75b7f0 82 // int Floor=Switch.Read_Switch_State();
shivanandgowdakr 0:5af5cf75b7f0 83 // printf(" You are in Floor number %d : \r\n",Floor);
shivanandgowdakr 0:5af5cf75b7f0 84
shivanandgowdakr 0:5af5cf75b7f0 85 valid= Validate_Recieved_Packet(Rx_buffer,&N0,&N1,&N2,&N3,&N4,&N5,&N6,&N7);
shivanandgowdakr 0:5af5cf75b7f0 86 if(valid==1 && SUCCESS>=1)
shivanandgowdakr 0:5af5cf75b7f0 87 {
shivanandgowdakr 0:5af5cf75b7f0 88 valid=-1 ;SUCCESS=-1;
shivanandgowdakr 0:5af5cf75b7f0 89 wait(0.1);
shivanandgowdakr 0:5af5cf75b7f0 90 Bus.Select_Floor_Zero();
shivanandgowdakr 0:5af5cf75b7f0 91
shivanandgowdakr 0:5af5cf75b7f0 92 led_7segs=N0;
shivanandgowdakr 0:5af5cf75b7f0 93 printf("Floor 0 Bays Available :%d \r\n",N0);
shivanandgowdakr 0:5af5cf75b7f0 94 Bus.Select_Floor_One();
shivanandgowdakr 0:5af5cf75b7f0 95 led_7segs=N1;
shivanandgowdakr 0:5af5cf75b7f0 96 wait(0.1);
shivanandgowdakr 0:5af5cf75b7f0 97
shivanandgowdakr 0:5af5cf75b7f0 98 printf("Floor 1 Bays Available : %d\r\n",N1);
shivanandgowdakr 0:5af5cf75b7f0 99 Bus.Select_Floor_Two();
shivanandgowdakr 0:5af5cf75b7f0 100 led_7segs=N2;
shivanandgowdakr 0:5af5cf75b7f0 101 wait(0.1);
shivanandgowdakr 0:5af5cf75b7f0 102 printf("Floor 2 Bays Available : %d\r\n",N2);
shivanandgowdakr 0:5af5cf75b7f0 103 Bus.Select_Floor_Three();
shivanandgowdakr 0:5af5cf75b7f0 104 led_7segs=N3;
shivanandgowdakr 0:5af5cf75b7f0 105 wait(0.1);
shivanandgowdakr 0:5af5cf75b7f0 106 printf("Floor 3 Bays Available : %d\r\n",N3);
shivanandgowdakr 0:5af5cf75b7f0 107
shivanandgowdakr 0:5af5cf75b7f0 108 Bus.Select_Floor_Four();
shivanandgowdakr 0:5af5cf75b7f0 109 led_7segs=N4;
shivanandgowdakr 0:5af5cf75b7f0 110 printf("Floor 4 ays Available : %d\r\n",N4);
shivanandgowdakr 0:5af5cf75b7f0 111 Bus.Select_Floor_Five();
shivanandgowdakr 0:5af5cf75b7f0 112 led_7segs=N5;
shivanandgowdakr 0:5af5cf75b7f0 113 printf("Floor 5 ays Available : %d\r\n",N5);
shivanandgowdakr 0:5af5cf75b7f0 114 Bus.Select_Floor_Six();
shivanandgowdakr 0:5af5cf75b7f0 115 led_7segs=N6;
shivanandgowdakr 0:5af5cf75b7f0 116 wait(0.1);
shivanandgowdakr 0:5af5cf75b7f0 117 printf("Floor 6 ays Available : %d\r\n",N6);
shivanandgowdakr 0:5af5cf75b7f0 118 Bus.Select_Floor_Seven();
shivanandgowdakr 0:5af5cf75b7f0 119 led_7segs=N7;
shivanandgowdakr 0:5af5cf75b7f0 120 wait(0.1);
shivanandgowdakr 0:5af5cf75b7f0 121 printf("Floor 7 ays Available : %d\r\n",N7);
shivanandgowdakr 0:5af5cf75b7f0 122 wait(1);
shivanandgowdakr 0:5af5cf75b7f0 123 }
shivanandgowdakr 0:5af5cf75b7f0 124 client_sock.close();
shivanandgowdakr 0:5af5cf75b7f0 125 }
shivanandgowdakr 0:5af5cf75b7f0 126
shivanandgowdakr 0:5af5cf75b7f0 127 }
shivanandgowdakr 0:5af5cf75b7f0 128
shivanandgowdakr 0:5af5cf75b7f0 129 int Validate_Recieved_Packet(char *Packet,int *num0, int *num1, int *num2,int *num3,
shivanandgowdakr 0:5af5cf75b7f0 130 int *num4, int *num5, int *num6, int *num7)
shivanandgowdakr 0:5af5cf75b7f0 131 {
shivanandgowdakr 0:5af5cf75b7f0 132 if( Packet[0]=='E' && Packet[1]=='S' && Packet[2]=='T' && Packet[3]=='S'
shivanandgowdakr 0:5af5cf75b7f0 133 && Packet[4]==' ' && Packet[12]==',' && Packet[20]==',' && Packet[28]==','
shivanandgowdakr 0:5af5cf75b7f0 134 && Packet[36]==',' && Packet[44]==',' && Packet[52]==',' && Packet[60]==','
shivanandgowdakr 0:5af5cf75b7f0 135 && Packet[68]==' ' && Packet[69]=='E' && Packet[70]=='S' && Packet[71]=='T'
shivanandgowdakr 0:5af5cf75b7f0 136 && Packet[72]=='E')
shivanandgowdakr 0:5af5cf75b7f0 137
shivanandgowdakr 0:5af5cf75b7f0 138 {
shivanandgowdakr 0:5af5cf75b7f0 139 printf("Valid Data R4ecieved \r\n");
shivanandgowdakr 0:5af5cf75b7f0 140
shivanandgowdakr 0:5af5cf75b7f0 141 if(Packet[5]=='0' && Packet[6]=='0')
shivanandgowdakr 0:5af5cf75b7f0 142 {
shivanandgowdakr 0:5af5cf75b7f0 143 printf("Zeroth Floor \r\n");
shivanandgowdakr 0:5af5cf75b7f0 144 int one,two,three,four;
shivanandgowdakr 0:5af5cf75b7f0 145 four=Packet[8]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 146 three=Packet[9]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 147 two=Packet[10]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 148 one=Packet[11]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 149 *num0=four*1000+three*100+two*10+one;
shivanandgowdakr 0:5af5cf75b7f0 150 }
shivanandgowdakr 0:5af5cf75b7f0 151
shivanandgowdakr 0:5af5cf75b7f0 152 if(Packet[13]=='0' && Packet[14]=='1')
shivanandgowdakr 0:5af5cf75b7f0 153 {
shivanandgowdakr 0:5af5cf75b7f0 154 printf("First Floor \r\n");
shivanandgowdakr 0:5af5cf75b7f0 155 int one,two,three,four;
shivanandgowdakr 0:5af5cf75b7f0 156 four=Packet[16]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 157 three=Packet[17]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 158 two=Packet[18]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 159 one=Packet[19]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 160 *num1=four*1000+three*100+two*10+one;
shivanandgowdakr 0:5af5cf75b7f0 161 }
shivanandgowdakr 0:5af5cf75b7f0 162
shivanandgowdakr 0:5af5cf75b7f0 163 if(Packet[21]=='0' && Packet[22]=='2')
shivanandgowdakr 0:5af5cf75b7f0 164 {
shivanandgowdakr 0:5af5cf75b7f0 165 printf("Second Floor \r\n");
shivanandgowdakr 0:5af5cf75b7f0 166 int one,two,three,four;
shivanandgowdakr 0:5af5cf75b7f0 167 four=Packet[24]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 168 three=Packet[25]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 169 two=Packet[26]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 170 one=Packet[27]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 171 *num2=four*1000+three*100+two*10+one;
shivanandgowdakr 0:5af5cf75b7f0 172 }
shivanandgowdakr 0:5af5cf75b7f0 173
shivanandgowdakr 0:5af5cf75b7f0 174 if(Packet[29]=='0' && Packet[30]=='3')
shivanandgowdakr 0:5af5cf75b7f0 175 {
shivanandgowdakr 0:5af5cf75b7f0 176 printf("Three Floor \r\n");
shivanandgowdakr 0:5af5cf75b7f0 177 int one,two,three,four;
shivanandgowdakr 0:5af5cf75b7f0 178 four=Packet[32]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 179 three=Packet[33]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 180 two=Packet[34]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 181 one=Packet[35]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 182 *num3=four*1000+three*100+two*10+one;
shivanandgowdakr 0:5af5cf75b7f0 183 }
shivanandgowdakr 0:5af5cf75b7f0 184
shivanandgowdakr 0:5af5cf75b7f0 185 if(Packet[37]=='0' && Packet[38]=='4')
shivanandgowdakr 0:5af5cf75b7f0 186 {
shivanandgowdakr 0:5af5cf75b7f0 187 printf("Fourth Floor \r\n");
shivanandgowdakr 0:5af5cf75b7f0 188 int one,two,three,four;
shivanandgowdakr 0:5af5cf75b7f0 189 four=Packet[40]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 190 three=Packet[41]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 191 two=Packet[42]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 192 one=Packet[43]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 193 *num4=four*1000+three*100+two*10+one;
shivanandgowdakr 0:5af5cf75b7f0 194 }
shivanandgowdakr 0:5af5cf75b7f0 195
shivanandgowdakr 0:5af5cf75b7f0 196 if(Packet[45]=='0' && Packet[46]=='5')
shivanandgowdakr 0:5af5cf75b7f0 197 {
shivanandgowdakr 0:5af5cf75b7f0 198 printf("Fifth Floor \r\n");
shivanandgowdakr 0:5af5cf75b7f0 199 int one,two,three,four;
shivanandgowdakr 0:5af5cf75b7f0 200 four=Packet[48]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 201 three=Packet[49]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 202 two=Packet[50]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 203 one=Packet[51]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 204 *num5=four*1000+three*100+two*10+one;
shivanandgowdakr 0:5af5cf75b7f0 205 }
shivanandgowdakr 0:5af5cf75b7f0 206
shivanandgowdakr 0:5af5cf75b7f0 207 if(Packet[53]=='0' && Packet[54]=='6')
shivanandgowdakr 0:5af5cf75b7f0 208 {
shivanandgowdakr 0:5af5cf75b7f0 209 printf("Sixth Floor \r\n");
shivanandgowdakr 0:5af5cf75b7f0 210 int one,two,three,four;
shivanandgowdakr 0:5af5cf75b7f0 211 four=Packet[56]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 212 three=Packet[57]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 213 two=Packet[58]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 214 one=Packet[59]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 215 *num6=four*1000+three*100+two*10+one;
shivanandgowdakr 0:5af5cf75b7f0 216 }
shivanandgowdakr 0:5af5cf75b7f0 217
shivanandgowdakr 0:5af5cf75b7f0 218 if(Packet[61]=='0' && Packet[62]=='7')
shivanandgowdakr 0:5af5cf75b7f0 219 {
shivanandgowdakr 0:5af5cf75b7f0 220 int one,two,three,four;
shivanandgowdakr 0:5af5cf75b7f0 221 four=Packet[64]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 222 three=Packet[65]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 223 two=Packet[66]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 224 one=Packet[67]-0x30;
shivanandgowdakr 0:5af5cf75b7f0 225 *num7=four*1000+three*100+two*10+one;
shivanandgowdakr 0:5af5cf75b7f0 226 printf("Seventh Floor : \r\n");
shivanandgowdakr 0:5af5cf75b7f0 227 }
shivanandgowdakr 0:5af5cf75b7f0 228 return 1;
shivanandgowdakr 0:5af5cf75b7f0 229 }
shivanandgowdakr 0:5af5cf75b7f0 230 else
shivanandgowdakr 0:5af5cf75b7f0 231 {
shivanandgowdakr 0:5af5cf75b7f0 232 return -1;
shivanandgowdakr 0:5af5cf75b7f0 233 }
shivanandgowdakr 0:5af5cf75b7f0 234 }
shivanandgowdakr 0:5af5cf75b7f0 235
shivanandgowdakr 0:5af5cf75b7f0 236
shivanandgowdakr 0:5af5cf75b7f0 237
shivanandgowdakr 0:5af5cf75b7f0 238 int Validate_Card_Reply_Packet(char *rbuffer,char *barc_string)
shivanandgowdakr 0:5af5cf75b7f0 239 {
shivanandgowdakr 0:5af5cf75b7f0 240 int i=0,j=0;
shivanandgowdakr 0:5af5cf75b7f0 241 if(rbuffer[0]=='1' &&rbuffer[1]=='1' && rbuffer[2]=='1' &&rbuffer[3]=='1'
shivanandgowdakr 0:5af5cf75b7f0 242 && rbuffer[4]==':' &&rbuffer[19]==',' && rbuffer[20]=='C' &&
shivanandgowdakr 0:5af5cf75b7f0 243 rbuffer[21]=='A' && rbuffer[22]=='R' && rbuffer[23]=='D' && rbuffer[24]==',')
shivanandgowdakr 0:5af5cf75b7f0 244
shivanandgowdakr 0:5af5cf75b7f0 245 {
shivanandgowdakr 0:5af5cf75b7f0 246 //printf("Valid card ................................Reply \r\n");
shivanandgowdakr 0:5af5cf75b7f0 247 i=25;
shivanandgowdakr 0:5af5cf75b7f0 248 while(rbuffer[i]!=',')
shivanandgowdakr 0:5af5cf75b7f0 249 {
shivanandgowdakr 0:5af5cf75b7f0 250 if(rbuffer[i]=='\r'|rbuffer[i]=='\n') {
shivanandgowdakr 0:5af5cf75b7f0 251 i++;
shivanandgowdakr 0:5af5cf75b7f0 252 }
shivanandgowdakr 0:5af5cf75b7f0 253 else {
shivanandgowdakr 0:5af5cf75b7f0 254 barc_string[j]=rbuffer[i];
shivanandgowdakr 0:5af5cf75b7f0 255 i++;
shivanandgowdakr 0:5af5cf75b7f0 256 j++;
shivanandgowdakr 0:5af5cf75b7f0 257 }
shivanandgowdakr 0:5af5cf75b7f0 258 }
shivanandgowdakr 0:5af5cf75b7f0 259 barc_string[i++]='\0';
shivanandgowdakr 0:5af5cf75b7f0 260 //printf(" Valid card reply:%s",barc_string);
shivanandgowdakr 0:5af5cf75b7f0 261 return j;
shivanandgowdakr 0:5af5cf75b7f0 262 }
shivanandgowdakr 0:5af5cf75b7f0 263 else
shivanandgowdakr 0:5af5cf75b7f0 264 return 0;
shivanandgowdakr 0:5af5cf75b7f0 265
shivanandgowdakr 0:5af5cf75b7f0 266 }
shivanandgowdakr 0:5af5cf75b7f0 267
shivanandgowdakr 0:5af5cf75b7f0 268
shivanandgowdakr 0:5af5cf75b7f0 269