예제 #1
0
    def __init__(self):
        self.file = LogWriter.LogWriter('log.txt')

        graph = facebook.GraphAPI(
            '1415774871877416|jzA-PuQwDbOG2m1vPgUYlPJtpn8')
        resp = graph.get_object('me/friends')

        for page in resp['data']:
            print(page)

        pass
예제 #2
0
 def CalculateNumsInColoum(self, workType):
     '''计算选中列的每行的值之和'''
     totalData = 0
     colNums = self.GetColNumFromName(self.dataNameDict[workType])
     #ctrl = control.Controler()
     #print colNums
     #print self.fileName
     self.readCSV()
     rowLength = len(self.csvReader.next())
     self.csvReader.next()  #csv文件的第一行是表项名,第二行是单位,第三行开始是数据
     #i = 3
     for row in self.csvReader:
         if not rowLength == len(row):
             logOut = LogWriter.Log()
             logOut.Write(row)
         else:
             rowSum = 0
             for col in colNums:
                 # 当需要计算的列是csv文件的最后一列时,若该列中的一个值是空,
                 # 则会使得提取出的row长度小于col的值,从而导致列表下标越界。
                 if len(row) > col:
                     rowSum += float(row[col])
                     if colNums.index(col) == (len(colNums) - 1):
                         #print workType, len(colNums)
                         if workType == "WCDMAErl":
                             #如果是计算3G话务量,则最后一列要乘以2,总数再除以60
                             rowSum += float(row[col])
                             #rowSum *= self.SP
                             rowSum /= 60
                         elif workType == "WCDMAUpData" or workType == "WCDMADownData":
                             #如果是计算3G上下行数据,则分两种情况
                             #1)若是从67109508文件中读入的则正常计算各列值之和
                             #2)若是从67109471或67109390文件中读入,则只有一列,且该列的值要乘以8
                             #下面的if条件,利用2)中只有一列这个特性来区分两种情况
                             if not len(colNums) > 1:
                                 rowSum += 7 * float(row[col])
                                 #print "7*", float(row[col])
                             #rowSum /= 8000
                         else:
                             pass
                     else:
                         pass
                 else:
                     #这里输出“脏”数据到log
                     pass
             totalData += rowSum
             #self.dict.SaveToDict(workType, float(row[col]), row[0], row[2])
             self.dict.SaveToDict(workType, rowSum, row[0], row[2])
     return totalData
예제 #3
0
 def __init__(self):
     self.controller = SC.clientSock()
     self.log = logw.LogWriter()
예제 #4
0
#!/usr/bin/env python

from DroneSimulator import *
from IpController import *
from LogWriter import *
from TimerThread import *
from ZTEmodem import *

from traceback import format_exception
import signal, sys

closeServerApp = False  # Main loop control (True=stop this app)

customDir = "."

logWriter = LogWriter(customDir + "/logs/simulator")


def topExceptHook(type, value, traceback):
    global logWriter
    exceptMsg = format_exception(type, value, traceback)
    try:
        logWriter.noteEvent("MainThread: unhandled Exception ", str(exceptMsg))
    except:
        pass  #can't handle logWriter exceptions here

    print "MainThread: unhandled Exception "
    for line in format_exception(type, value, traceback):
        print line,

    endHandler(None, None)
from DroneControler import DroneController
from ControlData import *
import time
from LogWriter import *
import struct

RB2 = "/dev/ttyAMA0"
RB3 = "/dev/ttyS0"


def onReceiveUsart(debugData):
    print 'Recived:', str(debugData)


logWriter = LogWriter('logs')
droneControler = DroneController(RB2, 115200, logWriter)

droneControler.setOnReceiveEvent(onReceiveUsart)

# time parameters of test
duration = 15.0  # [s]
sendingFreq = 2.0  # [Hz]

i = 0
while i < sendingFreq * duration:
    i += 1
    droneControler.sendCommData(ControlData.SomeValidControlCommand())
    time.sleep(1 / sendingFreq)

i = 0
while i < sendingFreq * 1:
예제 #6
0
  print "ERROR: can't find log dir: "+str(logsDIR)
  sys.exit(1)

###########################################################################
## LOAD SETTINGS
###########################################################################
SETTINGS = Settings(configFileName)
if customPort:
  SETTINGS.PORT=customPort

###########################################################################
## INIT
###########################################################################
#TODO make log writer global

logWriter = LogWriter(customDIR+"/logs/")

modem=ZTEmodem()

##UART part
droneController=DroneController(SETTINGS.UARTDEVICE,
                                SETTINGS.UARTBAUDRATE,
                                logWriter)
##-------

##IP part
server_name = ""  # "localhost"
ipController = IpController( (server_name, SETTINGS.PORT),
                             SETTINGS.TCPSIMULATOR,
                             True,
                             SETTINGS.BINDRETRYNUM,
예제 #7
0
from IpController import *
from LogWriter import *

logWriter = LogWriter('logs/')

receiver = IpController('',
                        True,
                        False,
                        10,
                        logWriter)


def onReveiveControlDataFromIP(controlData):
    print "MainThread: ", str(controlData)

receiver.setOnReceiveEvent(onReveiveControlDataFromIP)


print('MainThread: waiting for a connection')
receiver.acceptConnection()
while receiver.keepConnection():
    receiver.forwardIncomingPacket()
print('MainThread: connection closed')

logWriter.noteEvent("MainThread: endHandler")
receiver.close()
logWriter.close()

print "DONE"
예제 #8
0
    print "ERROR: can't find log dir: " + str(logsDIR)
    sys.exit(1)

###########################################################################
## LOAD SETTINGS
###########################################################################
SETTINGS = Settings(configFileName)
if customPort:
    SETTINGS.PORT = customPort

###########################################################################
## INIT
###########################################################################
#TODO make log writer global

logWriter = LogWriter(customDIR + "/logs/")

modem = ZTEmodem()

##UART part
droneController = DroneController(SETTINGS.UARTDEVICE, SETTINGS.UARTBAUDRATE,
                                  logWriter)
##-------

##IP part
server_name = ""  # "localhost"
ipController = IpController((server_name, SETTINGS.PORT),
                            SETTINGS.TCPSIMULATOR, True, SETTINGS.BINDRETRYNUM,
                            logWriter)

##--
from IpController import *
from LogWriter import *

logWriter = LogWriter('logs/')

receiver = IpController('', True, False, 10, logWriter)


def onReveiveControlDataFromIP(controlData):
    print "MainThread: ", str(controlData)


receiver.setOnReceiveEvent(onReveiveControlDataFromIP)

print('MainThread: waiting for a connection')
receiver.acceptConnection()
while receiver.keepConnection():
    receiver.forwardIncomingPacket()
print('MainThread: connection closed')

logWriter.noteEvent("MainThread: endHandler")
receiver.close()
logWriter.close()

print "DONE"
예제 #10
0
def LinePost():
    """  LINE からメッセージがポストされたとき  """
    logWriter       = LogWriter.LogWriter( STORAGE_NAME, STORAGE_KEY )

    logWriter.WriteLog( "***** メッセージが LINE から POST されました。 *****" )
    try:
        szText  = "";

        for szKey, szValue in request.headers.items():
            szText += str( szKey ) + " : " + str( szValue ) + "\r\n"
        #for
        szText += "\r\n"

        # get request body as text
        body = request.get_data( as_text = True )
        app.logger.info( "Request body: " + body )
        szText += body;
        logWriter.WriteLog(
            "HTTP の内容\r\n" + szText
        );

        logWriter.WriteLog( "ヘッダーから 'X-Line-Signature' 取得中……" );
        signature = request.headers[ 'X-Line-Signature' ]

        # parse webhook body
        logWriter.WriteLog( "webhook body を解析中……" );
        try:
            events = parser.parse( body, signature )
        except InvalidSignatureError as e:
            #WriteLog( "parser.parse() failed." + "\r\n" + e.message );
            logWriter.WriteLog( "X-Line-Signature と LINE_CHANNEL_SECRET が一致しません。" );
            abort(400)
        except:
            raise;
        #}try

        # if event is MessageEvent and message is TextMessage, then echo text
        logWriter.WriteLog( "events を解析……" );
        for event in events:
            #// MessageEvent 型ではない
            if not isinstance( event, MessageEvent ):
                continue

            logWriter.WriteLog( "ユーザー ID 取得中……" );
            szUserID    = "";
            szUserName  = "";
            try:
                if( event.source.type == "user" ):
                    szUserID    = event.source.user_id;
                    logWriter.WriteLog( "ユーザー名取得中……" );
                    pProfile    = line_bot_api.get_profile( szUserID );
                    szUserName  = pProfile.display_name + " さん";
                    logWriter.WriteLog( szUserName );
                #}if
            except Exception as e:
                logWriter.WriteLog( str( e ) );
            #}try

            if isinstance( event.message, TextMessage ):
                logWriter.WriteLog( "テキスト メッセージです。" );
                szMessage   = "{0}\r\n「{1}」の QR コードを作成しました。".format( szUserName, event.message.text );

                #logWriter.WriteLog( "QR コードを作成中です。" );
                #pQrBuffer   = MakeQRCode( event.message.text );
                #szFileName  = szUserID + "\\qr-" + str( uuid.uuid4() );

                ##// オリジナル画像をストレージに保存する
                #logWriter.WriteLog( "オリジナル画像を保存中です。" );
                #szTempFileName  = szFileName + ".jpg";
                #logWriter.WriteBlob( szTempFileName, pQrBuffer[ 0 ] );
                #szOrgUri    = logWriter.MakeBlobUri( szTempFileName );
                #logWriter.WriteLog( "場所 '{0}'".format( szOrgUri ) );

                ##// サムネイル画像をストレージに保存する
                #logWriter.WriteLog( "サムネイル画像を保存中です。" );
                #szTempFileName  = szFileName + "_s.jpg";
                #logWriter.WriteBlob( szTempFileName, pQrBuffer[ 1 ] );
                #szThumbUri  = logWriter.MakeBlobUri( szTempFileName );
                #logWriter.WriteLog( "場所 '{0}'".format( szThumbUri ) );

                ReplyMessage(
                    event,
                    [
                    TextSendMessage(
                        text = szMessage
                    ),
                    #ImageSendMessage(
                    #    original_content_url    = szOrgUri,
                    #    preview_image_url       = szThumbUri
                    #)
                    TextSendMessage(
                        text = "かと思ったら、ライブラリー内でエラーが発生するため頓挫しました。"
                    ),
                    ]
                )
            elif isinstance( event.message, ImageMessage ):
                logWriter.WriteLog( "画像 メッセージです。" );

                logWriter.WriteLog( "画像コンテンツを取得中……" );
                message_id      = event.message.id
                message_content = line_bot_api.get_message_content( message_id )

                szImageFileName = szUserID + "\\" + str( uuid.uuid4() ) + r".jpg";
                logWriter.WriteLog( "画像コンテンツをストレージに保存しています。(ファイル名:" + szImageFileName + ")" );
                logWriter.WriteBlob( szImageFileName, message_content.content );

                image = io.BytesIO( message_content.content )

                logWriter.WriteLog( "Azure Computer Vision にインスタンス作成。" );
                pRestApi    = AnalyzeImage.AnalyzeImage( COMPUTER_VISION_KEY );
                logWriter.WriteLog( "Azure Computer Vision にリクエスト送信。" );
                szJson      = pRestApi.Request( image );

                logWriter.WriteLog( szJson );

                pRoot   = json.loads( szJson );

                szReply     = "";
                szExplicit  = "";

                #//  とりあえず説明文を取得する
                pDesc   = pRoot[ "description" ];
                szCaption       = "";
                lfConfidence    = 0.0;

                for pCap in pDesc[ "captions" ]:
                    if( lfConfidence < pCap[ "confidence" ] ):
                        szCaption       = pCap[ "text" ];
                        lfConfidence    = pCap[ "confidence" ];
                    #}if
                #}for

                #// Explicit
                #"adult":{"isAdultContent":false,"isRacyContent":false,"adultScore":0.045499119907617569,"racyScore":0.034160565584897995}
                pAdult  = pRoot[ "adult" ];
                szExplicit  += "KENZEN ポイント: {0}pt.".format( int( pAdult[ "adultScore" ] * 100 ) );
                szExplicit  += "\r\n";
                szExplicit  += "判定: ";
                if( pAdult[ "isAdultContent" ] ):
                    szExplicit  += "けしからん";
                else:
                    szExplicit  += "健全";
                #}if
                szExplicit  += "\r\n";
                szExplicit  += "ギリギリポイント: {0}pt.".format( int( pAdult[ "racyScore" ] * 100 ) );
                szExplicit  += "\r\n";
                szExplicit  += "判定: ";
                if( pAdult[ "isRacyContent" ] ):
                    szExplicit  += "けしからん";
                else:
                    szExplicit  += "健全";
                #}if
                szExplicit  += "\r\n";

                if( 0 < len( szCaption ) ):
                    #// 英語の解説を日本語に変換
                    pTransApi   = TranslatorText.Translate( TRANSLATOR_TEXT_KEY );
                    logWriter.WriteLog( "英語を日本語に翻訳中。({0})".format( szCaption ) );
                    szJson      = pTransApi.Request( szCaption );
                    logWriter.WriteLog( szJson );
                    pRoot       = json.loads( szJson );
                    szTrans     = "";
                    for pTransRoot in pRoot:
                        #logWriter.WriteLog( str( pTransRoot ) );
                        for pTrans in pTransRoot[ "translations" ]:
                            logWriter.WriteLog( str( pTrans ) );
                            szTrans += pTrans[ "text" ];
                            #for pTextRoot in pTrans:
                            #    logWriter.WriteLog( str( pTextRoot ) );
                    #}for

                    szReply = szUserName + "、この絵は「" + szTrans  + "(" + szCaption + ")」"
                    if( 0.8 <= lfConfidence ):
                        szReply += "です。";
                    elif( 0.6 <= lfConfidence ):
                        szReply += "かと思います。";
                    elif( 0.4 <= lfConfidence ):
                        szReply += "かな。";
                    elif( 0.2 <= lfConfidence ):
                        szReply += "です。たぶん……";
                    else:
                        szReply += "だと思うけど違っていそうです。";
                    #}if
                    szReply += "(正確度:{0}%)".format( int( lfConfidence * 100 ) );
                else:
                    szReply = szUserName + "、申し訳ありませんが、何の絵か全くわかりません。";
                #}if

                pReplyList  = list();
                if( 0 < len( szReply ) ):
                    pReplyList.append(
                        TextSendMessage(
                            text = szReply
                        )
                    )
                #}if
                if( 0 < len( szExplicit ) ):
                    pReplyList.append(
                        TextSendMessage(
                            text = szExplicit
                        )
                    )
                #}if

                ReplyMessage(
                    event,
                    pReplyList
                )
            else:
                logWriter.WriteLog( "type:{0} のメッセージです。現在、サポートしていません。".format( type( event ) ) );
                ReplyMessage(
                    event,
                    TextSendMessage(
                        text = "Sorry, this input resource is not supported."
                    )
                );
            #}if
        #}for event in events:

        logWriter.WriteLog( "OK" );
    except Exception as e:
        #WriteLog( szProgress + "でエラー発生。" + "\r\n" + e.message );
        szMsg   = str( e ) + "\r\n" + "でエラー発生。";
        ReplyMessage(
            event,
            TextSendMessage(
                text = szMsg
            )
        );
        logWriter.WriteLog( szMsg + "\r\n" + traceback.format_exc() );
        abort(400)
    #}try

    logWriter.WriteLog( "Exit LinePost()." );

    return 'OK'
예제 #11
0
def log_to_file(file='pyLog.log'):
    global LOG_TO_FILE
    LOG_TO_FILE = log.LogWriter(file)
    LOG_TO_FILE.open()