Ejemplo n.º 1
0
void threadRFHumiditySave( void )
{
    PYGMYMESSAGE pygmyMsg;
    PYGMYSOCKET *pygmySocket;
    u8 ucBuffer[ 20 ];
    
    if( msgGet( "humidity", PYGMY_UNMARKEDID, &pygmyMsg ) ){
        print( COM3, "\rMessage Received" );
        
        if( isStringSame( pygmyMsg.Message, "TX" ) ){
            convertIntToString( humidityRead(), "%d", ucBuffer );
            pygmySocket = socketGet( pygmyMsg.Value, pygmyMsg.Value );
            if( pygmySocket ){
                print( COM3, "\rSocket Found" );
                socketSendDataFromString( pygmySocket, ucBuffer ); 
            } else{
                print( COM3, "\rNo Socket Found" );
            } // else
        } else if( isStringSame( pygmyMsg.Message, "RX" ) ){
            print( COM3, "\rHumidity: %d", pygmyMsg.Value );
            convertIntToString( pygmyMsg.Value, "%d", globalHumidity );
            drawForms();
        } // else if
    }
    
    /*PYGMYFILE pygmyFile;
    u8 ucBuffer[ 20 ];
    
    if( fileOpen( &pygmyFile, "humidity.txt", WRITE ) ){
        convertIntToString( humidityRead(), "%d", ucBuffer );
        filePutString( &pygmyFile, ucBuffer );
        fileClose( &pygmyFile );
    } // if
    */
}
Ejemplo n.º 2
0
LOCAL void myCallback(CALLBACK *pCallback)
{
    ab1771IXRecord *precord;
    recordPvt	  *precordPvt;
    int           callLock;

    callbackGetUser(precord,pCallback);
    callLock = interruptAccept;
    if(callLock)dbScanLock((void *)precord);
    precordPvt = precord->dpvt;
    precordPvt->status = (*pabDrv->getStatus)(precordPvt->drvPvt);
    if(precordPvt->status!=abSuccess) {
        switch(precordPvt->msgState) {
	case msgStateWaitInit:
	case msgStateWaitGet:
	    precordPvt->msgState = msgStateInit;
	    break;
        default:
	    errlogPrintf("ILLEGAL myCallback state: record %s\n",precord->name);
	    break;
        }
	issueError(precord,errAb,0);
    } else {
        precordPvt->err = errOK;
        switch(precordPvt->msgState) {
	case msgStateWaitInit:
	    precordPvt->msgState = msgStateGet;
	    break;;
	case msgStateWaitGet:
	    setValMsg(precord,0);
	    msgCompleteGet(precord);
	    issueAsynCallback(precord);
            break;;
        default:
	    errlogPrintf("ILLEGAL myCallback state: record %s\n",precord->name);
	    break;
	}
	if(precordPvt->err == errOK) switch(precordPvt->msgState) {
	    case msgStateInit: msgInit(precord); break;
	    case msgStateGet: msgGet(precord); break;
	    default: break;
	}
    }
    if(precordPvt->err != errOK) issueAsynCallback(precord);
    if(callLock)dbScanUnlock((void *)precord);
}
Ejemplo n.º 3
0
LOCAL long process(ab1771IXRecord *precord)
{
    recordPvt	*precordPvt = (recordPvt *)precord->dpvt;

    if(precordPvt->err == errFatal) {
	precord->pact = TRUE;
	return(0);
    }
    if(!precord->pact) {/* starting new request*/
	if(precord->cmd==ab1771IX_Init) {
	    precordPvt->msgState = msgStateInit;
	    precord->cmd = ab1771IX_CMD_None;
	    db_post_events(precord,&precord->cmd,DBE_VALUE|DBE_LOG);
	}
	precordPvt->err = errOK;
  	/* starting new request*/
	switch(precordPvt->msgState) {
	    case msgStateInit:
	        msgInit(precord);
		break;
	    case msgStateGet:
	    case msgStateDone:
		msgGet(precord);
		break;
	    default: break;
	}/*Note that state may switch because of msgRequest just issued*/
    }
    switch(precordPvt->msgState) {
	case msgStateWaitInit: 
	case msgStateWaitGet: 
	    precord->pact = TRUE;
	    precordPvt->waitAsynComplete = TRUE;
	    return(0);
	default:
	    break;
    }
    precord->pact = TRUE;
    monitor(precord);
    recGblFwdLink(precord);
    precordPvt->waitAsynComplete = FALSE;
    if(precordPvt->err != errFatal) precord->pact = FALSE;
    return(0);
}