From 36697bf25a21be934e7f04504a2d053c6587e764 Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Fri, 30 Nov 2012 10:31:59 +1100 Subject: [PATCH] various changes --- statemon.c | 94 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 58 insertions(+), 36 deletions(-) diff --git a/statemon.c b/statemon.c index 0c6de683..fdbbdba3 100644 --- a/statemon.c +++ b/statemon.c @@ -117,22 +117,26 @@ static int StateInterest(int iEvent, void *pEvent, void *pUser) printf("Bad StateInterest in statemon\n"); return 0; } else if (pCon == pStateMonDummyCon) { - if(iEvent == STSTART){ - snprintf(buffer,255,"SUID MSG STARTED = %s", device); - SCWrite(pStateMonDummyCon,buffer,eError); - } - if(iEvent == STEND){ - snprintf(buffer,255,"SUID MSG FINISH = %s", device); - SCWrite(pStateMonDummyCon,buffer,eError); + if (iEvent == STSTART) { + snprintf(buffer, 255, "SUID MSG STARTED = %s", device); + SCWrite(pStateMonDummyCon, buffer, eError); } - pVar = (pSicsVariable)FindCommandData(pServ->pSics,SICS_SUID,"SicsVariable"); - if (pVar == NULL) { - SCWrite(pStateMonDummyCon,"ERROR: StateMon.c: Could not find SUID SicsVariable",eError); + if (iEvent == STEND) { + snprintf(buffer, 255, "SUID MSG FINISH = %s", device); + SCWrite(pStateMonDummyCon, buffer, eError); + } + pVar = + (pSicsVariable) FindCommandData(pServ->pSics, SICS_SUID, + "SicsVariable"); + if (pVar == NULL) { + SCWrite(pStateMonDummyCon, + "ERROR: StateMon.c: Could not find SUID SicsVariable", + eError); return 0; } (pVar->iVal)++; - InvokeCallBack(pVar->pCall, VALUECHANGE, pVar); - } else { + InvokeCallBack(pVar->pCall, VALUECHANGE, pVar); + } else { if (iEvent == STSTART) { snprintf(buffer, 255, "STARTED = %s", device); SCWrite(pCon, buffer, eWarning); @@ -141,6 +145,22 @@ static int StateInterest(int iEvent, void *pEvent, void *pUser) snprintf(buffer, 255, "FINISH = %s", device); SCWrite(pCon, buffer, eWarning); } + if (iEvent == STPAUSE) { + snprintf(buffer, 255, "PAUSE = %s", device); + SCWrite(pCon, buffer, eWarning); + } + if (iEvent == STCONTINUE) { + snprintf(buffer, 255, "CONTINUE = %s", device); + SCWrite(pCon, buffer, eWarning); + } + if (iEvent == STBUSY) { + snprintf(buffer, 255, "BUSY = %s", device); + SCWrite(pCon, buffer, eWarning); + } + if (iEvent == STIDLE) { + snprintf(buffer, 255, "IDLE = %s", device); + SCWrite(pCon, buffer, eWarning); + } } return 1; } @@ -254,7 +274,7 @@ static void killStateMon(void *pData) if (self->pCall != NULL) { DeleteCallBackInterface(self->pCall); } - if(pStateMonDummyCon != NULL) { + if (pStateMonDummyCon != NULL) { SCDeleteConnection(pStateMonDummyCon); } free(self); @@ -313,7 +333,7 @@ int StateMonFactory(SConnection * pCon, SicsInterp * pSics, void *pData, if (argc > 1) { pPtr = FindCommandData(pSics, argv[1], "ScanObject"); if (pPtr == NULL) { - SCWrite(pCon,"ERROR: failed to locate scan object",eError); + SCWrite(pCon, "ERROR: failed to locate scan object", eError); } else { target = GetCallbackInterface(pPtr); assert(target != NULL); @@ -324,15 +344,17 @@ int StateMonFactory(SConnection * pCon, SicsInterp * pSics, void *pData, } /* Make dummy connection for SUID (instrument state id) */ pStateMonDummyCon = SCCreateDummyConnection(pSics); - lID = RegisterCallback(pNew->pCall, STSTART, StateInterest, pStateMonDummyCon, NULL); - SCRegister(pStateMonDummyCon,pSics, pNew->pCall,lID); - lID = RegisterCallback(pNew->pCall, STEND, StateInterest, pStateMonDummyCon, NULL); - SCRegister(pStateMonDummyCon,pSics, pNew->pCall,lID); - pRes = VarCreate(usInternal,veInt,SICS_SUID); - AddCommand(pSics,SICS_SUID,VarWrapper,(KillFunc)VarKill,pRes); - /* - * TODO: add kill functions - */ + lID = RegisterCallback(pNew->pCall, STSTART, StateInterest, + pStateMonDummyCon, NULL); + SCRegister(pStateMonDummyCon, pSics, pNew->pCall, lID); + lID = RegisterCallback(pNew->pCall, STEND, StateInterest, + pStateMonDummyCon, NULL); + SCRegister(pStateMonDummyCon, pSics, pNew->pCall, lID); + pRes = VarCreate(usInternal, veInt, SICS_SUID); + AddCommand(pSics, SICS_SUID, VarWrapper, (KillFunc) VarKill, pRes); + /* + * TODO: add kill functions + */ AddCommand(pSics, "statemon", StateMonAction, killStateMon, pNew); return 1; } @@ -386,7 +408,7 @@ int StateMonAction(SConnection * pCon, SicsInterp * pSics, void *pData, lID = SCgetCallbackID(pCon, self->pCall); if (lID >= 0) { RemoveCallback(self->pCall, lID); - SCUnregisterID(pCon,lID); + SCUnregisterID(pCon, lID); } } SCSendOK(pCon); @@ -419,30 +441,30 @@ int StateMonAction(SConnection * pCon, SicsInterp * pSics, void *pData, return 1; } return 0; - } else if(strcmp(argv[1],"pause") == 0) { - if(argc > 2){ - InvokeCallBack(self->pCall,STPAUSE,argv[2]); + } else if (strcmp(argv[1], "pause") == 0) { + if (argc > 2) { + InvokeCallBack(self->pCall, STPAUSE, argv[2]); SCSendOK(pCon); return 1; } return 0; - } else if(strcmp(argv[1],"continue") == 0) { - if(argc > 2){ - InvokeCallBack(self->pCall,STCONTINUE,argv[2]); + } else if (strcmp(argv[1], "continue") == 0) { + if (argc > 2) { + InvokeCallBack(self->pCall, STCONTINUE, argv[2]); SCSendOK(pCon); return 1; } return 0; - } else if(strcmp(argv[1],"busy") == 0) { - if(argc > 2){ - InvokeCallBack(self->pCall,STBUSY,argv[2]); + } else if (strcmp(argv[1], "busy") == 0) { + if (argc > 2) { + InvokeCallBack(self->pCall, STBUSY, argv[2]); SCSendOK(pCon); return 1; } return 0; - } else if(strcmp(argv[1],"idle") == 0) { - if(argc > 2){ - InvokeCallBack(self->pCall,STIDLE,argv[2]); + } else if (strcmp(argv[1], "idle") == 0) { + if (argc > 2) { + InvokeCallBack(self->pCall, STIDLE, argv[2]); SCSendOK(pCon); return 1; }