# import the libraries so that we can create a socket import socket import re def cmuCamParse(string, split): string1 = list(string) string2 = "" x = 0 #flag = 1 for s in string1: s1 = s if str(s).isdigit(): string2 += s string2 += split #flag = 1 x += 1 continue string2 = string2.split(split) return string2 def cmuCamGetInts(sock): return cmuCamParse(cmuCamReadline(sock), ' ') def cmuCamConnect(server, port): # create a socket object sock = socket.socket ( socket.AF_INET, socket.SOCK_STREAM ) # now connect the the server sock.connect ( ( server, port ) ) return sock def cmuCamClose(sock): sock.close() def cmuCamSend(sock, message, newline): returnVal = sock.send(message) returnVal2 = 0 if (newline): returnVal2 = sock.send('\r') if ((returnVal > -1) & (returnVal2 > -1)): return (returnVal + returnVal2) return -1 def cmuCamReadCheck(sock): line = cmuCamReadline(sock) return cmuCamCheck(line) def cmuCamReadline(sock): line = "" char = "" while 1: if ((char == '\n') | (char == '\r')): return (line + char) else: char = sock.recv(1) # Get a character line = line + char #print(line) def cmuCamCheck(line): result = re.search("ACK\n",line) if (result != None): return 1 else: return 0 # This function checks to see if the cmuCam is ready. It will also exit out of a looping command def cmuCam_ping(sock): cmuCamSend(sock,"\r",0) return(cmuCamReadCheck(sock)) def cmuCam_bufferMode(sock, mode): message = "bm " mode = str(mode) cmuCamSend(sock,message+mode,1) return(cmuCamReadCheck(sock)) def cmuCam_cameraRegister(sock,reg,value): message = "cr " reg = str(reg) value = str(value) cmuCamSend(sock,message+reg+" "+value,1) return(cmuCamReadCheck(sock)) def cmuCam_cameraPower(sock,value): message = "cp " value = str(value) cmuCamSend(sock,message+value,1) return(cmuCamReadCheck(sock)) def cmuCam_cameraType(sock,value): message = "cp " value = str(value) cmuCamSend(sock,message+value,1) return(cmuCamReadCheck(sock)) def cmuCam_differencingChannel(sock,channel): message = "dc " channel = str(channel) cmuCamSend(sock,message+channel,1) return(cmuCamReadCheck(sock)) def cmuCam_delayMode(sock,value): message = "dm " value = str(value) cmuCamSend(sock,message+value,1) return(cmuCamReadCheck(sock)) def cmuCam_downSampling(sock,x_factor,y_factor): message = "ds " x_factor = str(x_factor) y_factor = str(y_factor) cmuCamSend(sock,message+x_factor+" "+y_factor,1) return(cmuCamReadCheck(sock)) def cmuCam_frameDifferencing(sock,threshold): message = "fd " threshold = str(threshold) cmuCamSend(sock,message+threshold,1) return(cmuCamReadCheck(sock)) def cmuCam_frameStreaming(sock,value): message = "fs " value = str(value) cmuCamSend(sock,message+value,1) return(cmuCamReadCheck(sock)) def cmuCam_getButton(sock): message = "gb" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_getHistrogram(sock,channel): message = "gh " channel = str(channel) if channel == "-1": channel = "" cmuCamSend(sock,message+channel,1) return(cmuCamReadCheck(sock)) def cmuCam_getInput(sock): message = "gi" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_getMean(sock): message = "gm" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_getServo(sock,servo): message = "gs " servo = str(servo) cmuCamSend(sock,message+servo,1) return(cmuCamReadCheck(sock)) def cmuCam_getTracking(sock): message = "gt" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_getVersion(sock): message = "gv" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_getWindow(sock): message = "gw" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_histogramConfigure(sock,bins,scale): message = "hc" bins = str(bins) scale = str(scale) cmuCamSend(sock,message+bins+" "+scale,1) return(cmuCamReadCheck(sock)) def cmuCam_hiresDifferencing(sock,mode): message = "hd " mode = str(mode) cmuCamSend(sock,message+mode,1) return(cmuCamReadCheck(sock)) def cmuCam_hiresMode(sock,mode): message = "hr " mode = str(mode) cmuCamSend(sock,message+mode,1) return(cmuCamReadCheck(sock)) def cmuCam_histogramTracking(sock,mode): message = "ht " mode = str(mode) cmuCamSend(sock,message+mode,1) return(cmuCamReadCheck(socsock)) def cmuCam_led(sock,led,mode): message = "l" led = str(led) mode = str(mode) cmuCamSend(sock,message+led+" "+mode,1) return(cmuCamReadCheck(sock)) def cmuCam_loadFrame(sock): message ="lf" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_lineMode(sock,type,mode): message = "lm " type = str(type) mode = str(mode) cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_maskDifferences(sock,threshold): message = "md " threshold = str(threshold) cmuCamSend(sock,message+threshold,1) return(cmuCamReadCheck(sock)) def cmuCam_noiseFilter(sock,threshold): message = "nf " threshold = str(threshold) cmuCamSend(sock,message+threshold,1) return(cmuCamReadCheck(sock)) def cmuCam_outputMask(sock,output,mask): message = "om " output = str(output) mask = str(mask) cmuCamSend(sock,message+mask,1) return(cmuCamReadCheck(sock)) def cmuCam_pixelDifferencing(sock,mode): message = "pd " mode = str(mode) cmuCamSend(sock,message+mode,1) return(cmuCamReadCheck(sock)) def cmuCam_packetFiltering(sock,mode): message = "pf " mode = str(mode) cmuCamSend(sock,message+mode,1) return(cmuCamReadCheck(sock)) def cmuCam_pollMode(sock,mode): message = "pm " mode = str(mode) cmuCamSend(sock,message+mode,1) return(cmuCamReadCheck(sock)) def cmuCam_packetSkipping(sock,number): message = "ps " number = str(number) cmuCamSend(sock,message+number,1) return(cmuCamReadCheck(sock)) def cmuCam_readFrame(sock): message = "rf" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_rawMode(sock,bit_flags): message = "rm " cmuCamSend(sock,message+bit_flags,1) return(cmuCamReadCheck(sock)) def cmuCam_reset(sock): message = "rs" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_sleepDeeply(sock): message = "sd" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_sendFrame(sock,channel): message = "sf " channel = str(channel) if (channel > "-1"): channel = "" cmuCamSend(sock,message+channel,1) return(cmuCamReadCheck(sock)) def cmuCam_sleep(sock): message = "sl 1" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_servoMask(sock,bit_mask): message = "sm " strcat(message, bit_mask) cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_servoOutput(sock, servo, level): message = "so " servo = str(servo) level = str(level) cmuCamSend(sock,message+servo+" "+level,1) return(cmuCamReadCheck(sock)) def cmuCam_servoParameters(sock, pan_range_far, pan_range_near, pan_step, tilt_range_far, tilt_range_near, tilt_step): message = "sp " pan_range_far = str(pan_range_far) pan_range_near = str(man_range_near) pan_step = str(pan_step) tilt_range_far = str(tilt_range_far) tilt_range_near = str(tilt_range_near) tile_step = str(tilt_step) cmuCamSend(sock,message+pan_range_far+" "+pan_range_near+" "+pan_step+" "+tilt_range_far+" "+tilt_range_near+" "+tilt_step,1) return(cmuCamReadCheck(sock)) def cmuCam_setTracking(sock, rMin, rMax, gMin, gMax, bMin, bMax): message = "st " rMin = str(rMin) rMax = str(rMax) gMin = str(gMin) gMax = str(gMax) bMin = str(bMin) gMax = str(bMax) cmuCamSend(sock,message+rMin+" "+rMax+" "+gMin+" "+gMax+" "+bMin+" "+bMax,1) return(cmuCamReadCheck(sock)) def cmuCam_servo(sock, servo, position): message = "sv " servo = str(servo) position = str(position) cmuCamSend(sock,message+servo+" "+position,1) return(cmuCamReadCheck(sock)) def cmuCam_trackColor(sock, rMin, rMax, gMin, gMax, bMin, bMax): message = "tc " rMin = str(rMin) rMax = str(rMax) gMin = str(gMin) gMax = str(gMax) bMin = str(bMin) gMax = str(bMax) cmuCamSend(sock,message+rMin+" "+rMax+" "+gMin+" "+gMax+" "+bMin+" "+bMax,1) return(cmuCamReadCheck(sock)) def cmuCam_trackInverted(sock,mode): message = "ti " mode = str(mode) cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_trackWindow(sock): message = "tw" cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_uploadDifferencing(sock, data): message = "ud " data = str(data) strcat(data,message) cmuCamSend(sock,message,1) return(cmuCamReadCheck(sock)) def cmuCam_virtualWindow(sock, x, y, x2, y2): message = "vw " x = str(x) y = str(y) x2 = str(x2) y2 = str(y2) cmuCamSend(sock,message+x+" "+y+" "+x2+" "+y2,1) return(cmuCamReadCheck(sock))