Question: I WANT THIS CODE TO BE WRITTEN IN PYTHON. def calculateCRC(block,divisor, agent): dividend = block; reminder = []; zeroDivisor = []; frame = []; if

I WANT THIS CODE TO BE WRITTEN IN PYTHON.

def calculateCRC(block,divisor, agent):

dividend = block;

reminder = [];

zeroDivisor = [];

frame = [];

if (agent == 'transmitter'):

for i in range(0, len(divisor)-1):

dividend.append(0);

for i in range(0, len(divisor)):

frame.append(block[i]);

reminder.append(0);

zeroDivisor.append(0);

pointer = len(divisor);

while(pointer<=len(dividend)):

activeDivisor = [];

if (frame[0]== 1):

activeDivisor = divisor.copy();

else:

activeDivisor = zeroDivisor.copy();

for i in range(0, len(frame)):

reminder[i] = 0 if frame[i] == activeDivisor[i] else 1;

for i in range(0, len(frame)-1):

frame[i] = reminder[i+1];

if (pointer< len(dividend)):

frame[len(frame)-1] = dividend[pointer];

pointer = pointer +1;

crc = '';

for i in range(1, len(reminder)):

crc = crc + str(reminder[i]);

return crc;

import socket

import time

#print("start")

sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

server_address=('199.223.115.24',9991)

with open('umdlogo.jpg','rb') as f:

buff=f.read()

#print(buff)

#print("buff",buff)

message=['{:02X}'.format(b) for b in buff]

#print("msg",message)

result=bytes([int(h,16) for h in message])

#print("res",result)

header = "01111110"

#header = bytes(int(header,16))

#print(len(result))

#with open('1.jpg','wb') as f:

# f.write(result)

count = 0

div = [1,1,1,0,1]

err = 0

i = 0

total = 0

finaldata = ""

while i < 73:

total = total + 1

datapck = [header]

packet=buff[0 + count:128 + count]

#print(len(packet))

#if i == 0:

# print(packet)

hpck=['{0:b}'.format(p) for p in packet]

framecounter = 0

for j in hpck:

if len(j) < 8:

temp = ""

for z in range(8 - len(j)):

temp = temp + "0"

temp = temp + j

hpck[framecounter] = temp

framecounter += 1

counter = '{0:b}'.format(i)

if len(counter) < 8:

temp = ""

for z in range(8 - len(counter)):

temp = temp + "0"

temp = temp + counter

counter = temp

datapck.extend(hpck)

datapck.append(counter)

#print(type(datapck[1]),datapck[1])

#print(datapck)

sndpack = []

for k in datapck:

sndpack.extend(list(k))

item = 0

for q in sndpack:

sndpack[item] = int(q)

item = item + 1

#print(sndpack)

crcs = calculateCRC(sndpack.copy(), div.copy(),"transmitter")

tmp = datapck.copy()

datapck = ['0000']

datapck.extend(tmp)

datapck.append(crcs)

datapck = ''.join(datapck)

#print(datapck, type(datapck))

seg = []

itertr = 0

while(len(datapck) > itertr):

seg.append(datapck[itertr : 8 + itertr])

itertr = itertr + 8

#print(len(seg),seg)

b = bytes([int(h,2) for h in seg])

#print(len(b))

#print(b)

sent=sock.sendto(b, server_address)

#receive from server

data,server = sock.recvfrom(2048)

#datahex = data.hex()

datahex=['{:02X}'.format(b) for b in data]

#print(datahex, type(datahex))

#print(len(datahex))

databin = ["{0:b}".format(int(a,16)) for a in datahex]

framecounter = 0

for j in databin:

if len(j) < 8:

temp = ""

for z in range(8 - len(j)):

temp = temp + "0"

temp = temp + j

databin[framecounter] = temp

framecounter += 1

#print(databin)

rcvdpack = []

for k in databin:

rcvdpack.extend(list(k))

item = 0

for l in rcvdpack:

rcvdpack[item] = int(l)

item = item + 1

#print(databin)

#print(rcvdpack)

crcr = calculateCRC(rcvdpack.copy(), div.copy(),"receiver")

if(crcr != '0000'):

err = err + 1

else:

count = count + 128

i = i + 1

temp = ""

for bit in rcvdpack:

temp += str(bit)

#print(type(temp), temp)

#print(len(temp))

finaldata += temp[12:-12]

#print(len(finaldata))

print(crcr)

#print(temp)

#print(finaldata)

time.sleep(0.1)

itertr = 0

seg = []

while(len(finaldata) > itertr):

seg.append(finaldata[itertr : 8 + itertr])

itertr = itertr + 8

#print(seg)

result=bytes([int(h,2) for h in seg])

#print(result)

print(len(result))

#print("res",result)

with open('reconstructed_image.jpg','wb') as f:

f.write(result)

print("Total Error:",err)

print("Total Iteration:",total)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!