From 4525c22d902e1eff47d6a8a64d022d885ac3a76a Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sat, 30 Jun 2012 09:58:06 +0100 Subject: version 1.0 --- src/obtsDevice.cpp | 97 ++++++++++++++++++++++++++++-------------------------- src/testApp.cpp | 8 ++++- 2 files changed, 57 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/obtsDevice.cpp b/src/obtsDevice.cpp index 7138475..630af69 100644 --- a/src/obtsDevice.cpp +++ b/src/obtsDevice.cpp @@ -108,7 +108,7 @@ float obtsDevice::timeCoord(float t){ //function to map time to the z dimension //timescale is the number of pixels per second //return t*timeScale; - return log10(t+1)*(ofGetHeight()/5); + return log10(t+1)*(ofGetHeight()/4); } void obtsDevice::draw(float t) @@ -131,54 +131,57 @@ void obtsDevice::draw(float t) //colour based on IMSI, excitation and movement //sms and calls coloured based on the phone that made them. - float rf=sin((coords.y/(ofGetWidth()*0.9))*TWO_PI); - ofSetColor(colour); //*rf); - float endPos; - for (vector::iterator i=connectionHistory.begin();i!=connectionHistory.end();i++){ - float startPos=-timeCoord(now-(*i).startTime); - endPos=(*i).endTime>0.0f?-timeCoord(now-(*i).endTime):0.0f; - ofLine(cos(coords.x)*coords.y,sin(coords.x)*coords.y,startPos,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); - //printf("%f drawing %f,%f,%f to %f,%f,%f\n",ofGetElapsedTimef(),cos(coords.x)*coords.y,sin(coords.x)*coords.y,startPos,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); - } - - for (vector::iterator i=smsHistory.begin();i!=smsHistory.end();i++){ - float timepos=-timeCoord(now-(*i).time); - ofLine(cos(coords.x)*coords.y,sin(coords.x)*coords.y,timepos,cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,timepos); - } + if (connectionHistory.size()) { - ofEnableAlphaBlending(); - - for (vector::iterator i=callHistory.begin();i!=callHistory.end();i++){ - float stimepos=-timeCoord(now-(*i).startTime); - float etimepos=((*i).endTime>0.0f?-timeCoord(now-(*i).endTime):0.0f); - float ctimepos=(*i).connected?-timeCoord(now-(*i).connectedTime):0.0f; - if ((*i).connectedTime>(*i).startTime||!(*i).connected) { //draw ringing section - ofSetColor(colour.r,colour.g,colour.b,0x2f); - glBegin(GL_QUADS); - glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,stimepos); - glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,stimepos); - glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,ctimepos); - glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,ctimepos); - glEnd(); + float rf=sin((coords.y/(ofGetWidth()*0.9))*TWO_PI); + ofSetColor(colour); //*rf); + float endPos; + for (vector::iterator i=connectionHistory.begin();i!=connectionHistory.end();i++){ + float startPos=-timeCoord(now-(*i).startTime); + endPos=(*i).endTime>0.0f?-timeCoord(now-(*i).endTime):0.0f; + ofLine(cos(coords.x)*coords.y,sin(coords.x)*coords.y,startPos,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); + //printf("%f drawing %f,%f,%f to %f,%f,%f\n",ofGetElapsedTimef(),cos(coords.x)*coords.y,sin(coords.x)*coords.y,startPos,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); + } + + for (vector::iterator i=smsHistory.begin();i!=smsHistory.end();i++){ + float timepos=-timeCoord(now-(*i).time); + ofLine(cos(coords.x)*coords.y,sin(coords.x)*coords.y,timepos,cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,timepos); } - if ((*i).connected) { //draw connected section - ofSetColor(colour.r,colour.g,colour.b,0x4f); - glBegin(GL_QUADS); - glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,ctimepos); - glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,ctimepos); - glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,etimepos); - glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,etimepos); - glEnd(); + + ofEnableAlphaBlending(); + + for (vector::iterator i=callHistory.begin();i!=callHistory.end();i++){ + float stimepos=-timeCoord(now-(*i).startTime); + float etimepos=((*i).endTime>0.0f?-timeCoord(now-(*i).endTime):0.0f); + float ctimepos=(*i).endTime<.01f&&!(*i).connected?0.0f:-timeCoord(now-(*i).connectedTime); + if (((*i).connectedTime>(*i).startTime)||((!(*i).connected)&&((*i).endTime<.01f))) { //draw ringing section + ofSetColor(colour.r,colour.g,colour.b,0x2f); + glBegin(GL_QUADS); + glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,stimepos); + glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,stimepos); + glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,ctimepos); + glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,ctimepos); + glEnd(); + } + if ((*i).connectedTime>0.0f) { //draw connected section + ofSetColor(colour.r,colour.g,colour.b,0x4f); + glBegin(GL_QUADS); + glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,ctimepos); + glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,ctimepos); + glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,etimepos); + glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,etimepos); + glEnd(); + } } + + ofDisableAlphaBlending(); + + int greylev=0x7f+((int)(128.0f*exciteLevel)); + //printf("%s %i\n",number.c_str(),greylev); + ofSetColor(greylev,greylev,greylev,0xff); + ofSetDrawBitmapMode(OF_BITMAPMODE_MODEL_BILLBOARD); + ofDrawBitmapString(number,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); + ofSetDrawBitmapMode(OF_BITMAPMODE_SIMPLE); + exciteLevel=pow(exciteLevel,1+(timeSeg*decay)); } - - ofDisableAlphaBlending(); - - int greylev=0x7f+((int)(128.0f*exciteLevel)); - //printf("%s %i\n",number.c_str(),greylev); - ofSetColor(greylev,greylev,greylev,0xff); - ofSetDrawBitmapMode(OF_BITMAPMODE_MODEL_BILLBOARD); - ofDrawBitmapString(number,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); - ofSetDrawBitmapMode(OF_BITMAPMODE_SIMPLE); - exciteLevel=pow(exciteLevel,1+(timeSeg*decay)); } diff --git a/src/testApp.cpp b/src/testApp.cpp index 9de5fab..7b28acd 100644 --- a/src/testApp.cpp +++ b/src/testApp.cpp @@ -215,13 +215,16 @@ void testApp::update(){ float r=ofRandom(windowWidth/3)+(windowWidth/6); devices[number]=obtsDevice(imsi,imei,number,icons,ofVec2f(a,r)); } - devices[number].excite(); //whenever an event concerns a device it brightens + + if(tokens[3].find("retreived")==string::npos) devices[number].excite(); //whenever an event concerns a device it brightens + if(tokens[3].find("joined network")!=string::npos) devices[number].connect(); if(tokens[3].find("leaving network")!=string::npos) devices[number].disconnect(); if(tokens[3].find("queued")!=string::npos) { string t_number=split(tokens[3],' ')[4]; printf(">>> SMS from %s to %s (%i)\n",number.c_str(),t_number.c_str(),devices.count(t_number)); if (devices.count(t_number)) { + devices[t_number].connect(); //just in case it hasnt been recognised devices[number].sms(&devices[t_number]); } } @@ -229,6 +232,7 @@ void testApp::update(){ string t_number=split(tokens[3],' ')[3]; printf(">>> call from %s to %s\n",number.c_str(),t_number.c_str()); if (devices.count(t_number)) { + devices[t_number].connect(); //just in case it hasnt been recognised devices[number].call(&devices[t_number]); } else devices[number].call(&devices["default"]); @@ -237,6 +241,7 @@ void testApp::update(){ string t_number=split(tokens[3],' ')[4]; printf(">>> ringing from %s to %s\n",number.c_str(),t_number.c_str()); if (devices.count(t_number)) { + devices[t_number].connect(); //just in case it hasnt been recognised devices[number].ringing(&devices[t_number]); } } @@ -244,6 +249,7 @@ void testApp::update(){ string t_number=split(tokens[3],' ')[3]; printf(">>> call connected from %s to %s\n",number.c_str(),t_number.c_str()); if (devices.count(t_number)) { + devices[t_number].connect(); //just in case it hasnt been recognised devices[number].connectCall(); } } -- cgit v1.2.3