#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#×÷Õß : eggxp
|
|
import struct
|
import string
|
import math
|
import datetime
|
import IPY_XMLLoader
|
import os
|
|
#È¡µÃ°Ñ×ÓÀàÖ¸Õëת»»Îª¸¸ÀàÖ¸Õë
|
#import weakref
|
#weakref.proxy(b)
|
|
#¶ÁÈ¡Îļþ
|
#+b ±íʾ¶þ½øÖÆ´ò¿ª
|
|
#´´½¨Îļþ¼Ð
|
#os.makedirs(name, mode)
|
|
#×Ö·û´®ÔÑùÊä³ö
|
#repr(xxx)
|
|
#ÎļþÊÇ·ñ´æÔÚ
|
#os.path.exists(path)
|
|
#¸³ÖµÎļþµÄ·½·¨:
|
#import shutil
|
#shutil.copy('c:\cccc.txt', 'd:\\')
|
|
#»ñµÃÎļþ·¾¶
|
#os.path.dirname
|
|
#È¡µÃÎļþºó׺
|
#os.path.splitext(file)
|
|
#ÁгöĿ¼
|
#files = os.listdir(curPath)
|
#for file in files:
|
|
#pythonдÎļþ:
|
# f = file('c:\\fuck.txt', 'a') #'a' ±íʾ׷¼Ó
|
# f.write(mapObsData)
|
|
|
|
#µÈ´ýÊäÈë: raw_input()
|
|
#´´½¨Socket
|
#s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
|
#s.bind(('192.168.0.81', 6112))
|
#s.listen(1)
|
|
#»ñµÃ×ÓĿ¼:
|
#os.path.abspath
|
|
#µÈ´ýÊäÈë:
|
#raw_input()
|
|
#µÃµ½±¾Ä¿Â¼:
|
#os.getcwd()
|
|
#µÃµ½²ÎÊý:
|
#os.sys.argv
|
|
#µÃµ½python·¾¶
|
#os.sys.executable
|
|
#ÔËÐÐÍⲿÎļþ/½áÊøÍⲿÎļþ
|
#processID = os.spawnl(os.P_NOWAIT, pythonPath, '-p', os.path.join(curPath, 'test.py'))
|
#win32api.TerminateProcess(processID, 0)
|
|
|
#pythonµÄ¶ÁÈ¡/дÈë¿â
|
|
#------------------------¶ÁÈ¡
|
def ReadBYTE(buf, pos):
|
curValue = struct.unpack_from('B', buf, pos)
|
pos += 1
|
return curValue[0], pos
|
|
def ReadWORD(buf, pos):
|
curValue = struct.unpack_from('H', buf, pos)
|
pos += 2
|
return curValue[0], pos
|
|
def ReadDWORD(buf, pos):
|
curValue = struct.unpack_from('I', buf, pos)
|
pos += 4
|
return curValue[0], pos
|
|
def ReadFloat(buf, pos):
|
curValue = struct.unpack_from('f', buf, pos)
|
pos += 4
|
return curValue[0], pos
|
|
def ReadDouble(buf, pos):
|
curValue = struct.unpack_from('d', buf, pos)
|
pos += 8
|
return curValue[0], pos
|
|
def ReadString(buf, pos, _len):
|
curValue = struct.unpack_from('%ds'%_len, buf, pos)
|
pos += _len
|
return curValue[0], pos
|
|
|
#----------------------дÈë
|
def WriteBYTE(buf, value):
|
buf += struct.pack('B', value)
|
return buf
|
|
def WriteWORD(buf, value):
|
buf += struct.pack('H', value)
|
return buf
|
|
def WriteDWORD(buf, value):
|
buf += struct.pack('I', value)
|
return buf
|
|
def WriteFloat(buf, value):
|
buf += struct.pack('f', value)
|
return buf
|
|
def WriteDouble(buf, value):
|
buf += struct.pack('d', value)
|
return buf
|
|
def WriteString(buf, len, value):
|
buf += struct.pack('%ds'%len, value)
|
return buf
|
|
def GetDistance(srcX, srcY, destX, destY):
|
return math.sqrt(pow(srcX - destX, 2) + pow(srcY - destY, 2))
|
|
def MovePos(srcX, srcY, destX, destY, curMoveDist):
|
if curMoveDist == 0:
|
return srcX, srcY
|
|
totalDist = GetDistance(srcX, srcY, destX, destY)
|
if totalDist == 0:
|
return srcX, srcY
|
|
resultX = curMoveDist / float(totalDist) * (destX - srcX) + srcX
|
resultY = curMoveDist / float(totalDist) * (destY - srcY) + srcY
|
return resultX, resultY
|
|
|
##²âÊÔ´úÂë:
|
#strs = 'ÃÀÏãÊÇÖí'
|
#buf = ''
|
#buf = WriteString(buf, len(strs), strs)
|
#value, pos = ReadString(buf, 0, len(strs))
|
#print value
|
|
#»ñµÃµ±Ç°ÏµÍ³Ê±¼ä
|
def GetCurrentDataTimeStr():
|
curTime = datetime.datetime.today()
|
curTimeStr = str(curTime)
|
curTimeStr = curTimeStr.split(".")[0]
|
return curTimeStr
|
|
#»ñµÃϵͳʱ¼ä(²ÎÊý -> ʱ¼äÁбí)
|
def GetDateTimeByStr(timeStr):
|
timeStr = timeStr.split(".")[0]
|
return datetime.datetime.strptime(timeStr, "%Y-%m-%d %H:%M:%S")
|
|
|
|
#×Ö·û´®×ª»»ÎªÕûÐÍ, Èç¹û²»ÄÜת»», ·µ»ØÄ¬ÈÏÖµ
|
def ToIntDef(input, defValue = 0):
|
try:
|
result = int(input)
|
return result
|
except ValueError:
|
return defValue
|
|
#16½øÖÆÑÕɫת»»
|
#"#FFFFFF"--"255,255,255"
|
def HcToSc(h):
|
h="0x"+h[1:7]
|
red=string.atoi(h[:2]+h[2:4], base=16)
|
green=string.atoi(h[:2]+h[4:6], base=16)
|
blue=string.atoi(h[:2]+h[6:8], base=16)
|
cStr=str(red)+","+str(green)+","+str(blue)
|
return cStr
|
|
#"255,255,255"--"#FFFFFF"
|
def ScToHc(s):
|
red=hex(string.atoi(s.split(",")[0]))[2:]
|
green=hex(string.atoi(s.split(",")[1]))[2:]
|
blue=hex(string.atoi(s.split(",")[2]))[2:]
|
hStr="#"+str(red+green+blue)
|
return hStr
|
|
#16½øÖÆ×ª»»
|
#"0xFFFFFF"--"255,255,255"
|
def HdToSd(h):
|
red=string.atoi(h[0:2]+h[2:4], base=16)
|
green=string.atoi(h[0:2]+h[4:6], base=16)
|
blue=string.atoi(h[0:2]+h[6:8], base=16)
|
cStr=str(red)+","+str(green)+","+str(blue)
|
return cStr
|
|
#"255,255,255"--"0xFFFFFF"
|
def SdToHd(s):
|
red=hex(string.atoi(s.split(",")[0]))[2:]
|
green=hex(string.atoi(s.split(",")[1]))[2:]
|
blue=hex(string.atoi(s.split(",")[2]))[2:]
|
hStr="0x"+str(red+green+blue)
|
return hStr
|
|
def GetPercent(value1, value2):
|
if value2 == 0:
|
return 0
|
return int(float(value1) / float(value2) * 100)
|
|
|
#ÔÚµ±Ç°½ÚµãÖмÓÈëxml×Ö·û´®
|
def AddXML(curNode, xmlStr,xmlName):
|
head = '<?xml version="1.0" encoding="GB2312"?><Head>'
|
curXMLStr = head + xmlStr + '</Head>'
|
curXML = IPY_XMLLoader.IPY_XMLLoader()
|
curXML.LoadFromXML(xmlName,curXMLStr)
|
headNode = curXML.GetNodeList().FindNode('Head')
|
for i in range(headNode.GetChildCount()):
|
curNode.ChildNodes().Add(headNode.GetChild(i).CloneNode(True))
|
return
|
|
def DelXML(curNode):
|
nodes = curNode.ChildNodes()
|
while(nodes.GetCount()):
|
nodes.Delete(0)
|
return
|
|
def OpenFileForWrite(fileName):
|
dirName = os.path.dirname(fileName)
|
if not os.path.isdir(dirName):
|
os.makedirs(dirName)
|
|
if os.path.isfile(fileName):
|
return file(fileName, 'w')
|
return file(fileName, 'a')
|
|