Ejemplo n.º 1
0
int ActingAsServer(int argc, char* argv[], bool dbg) {
    SerialCom comm;
    PipeShell shell;
    int nPort = 1;
    int nBaud = 9600;
    int nBits = 8;
    int nStop = 1;
    char cParity = 'N';
    char sIfName[32];
    char sLcdDev[32];
    int distance = 26000;
    int neg_mode = 0;
    bool trace_gws = dbg;
    bool trace_lcd = false;
    bool trace_neg = false;

    memset(sIfName, 0x00, 32);
    memset(sLcdDev, 0x00, 32);
    strcpy(sIfName, "wlan0");
    strcpy(sLcdDev, "/dev/ttyS0");

    if (svrInitInstance()) {
        InitParameters(true);
        BufInit(&local_gws_buff);
        ScInit(&comm, 0); //nonblock mode
        ReadFileConf(&comm, &nPort, &nBaud, &nBits, &nStop, &cParity,
                     sIfName,sLcdDev,&distance,&neg_mode,
                     &trace_gws,&trace_lcd,&trace_neg);
        ReadCmdLine(argc, argv, &nPort, &nBaud, &nBits, &nStop, &cParity,
                    &trace_lcd,&trace_neg);
        if (false == ScOpen(&comm, nPort, nBaud, nBits, nStop, cParity)) {
            ShowStatusBar("%s", "Can not open GWS radio port.\n");
        } else {
            ShowStatusBar("%s", "GWS port OK.\n");
        }
        PipeShellInit(&shell);
        svrInitCommandHandler(&comm,&shell,sIfName,trace_gws);
        ShowStatusBar("%s" VT100_RESET "\n", "gwsman server ready.\n");
        if (lcd_main(sLcdDev,distance,neg_mode,trace_lcd,trace_neg) < 0) {
            printf("\n\n");
            fflush(stdout);
            while (svrTestInstance(static_chp.m_semInstance)) usleep(100000);
        } else fflush(stdout);
        ScExit(&comm);
        BufExit(&local_gws_buff);
        svrExitCommandHandler();
    }
    svrExitInstance();
    return 1;
}
Ejemplo n.º 2
0
/**
 * Show the vital in-game windows.
 */
void ShowVitalWindows()
{
	AllocateToolbar();

	/* Status bad only for normal games */
	if (_game_mode == GM_EDITOR) return;

	ShowStatusBar();
}
Ejemplo n.º 3
0
void STATUSCLASS::ShowContent (HWND hDlg, BOOL updateFilename)
{
		int id ;
		char showBlockSize[25] ;

		ltoa (blocksize, showBlockSize, 10) ;
	 	SetDlgItemText (hDlg, IDD_BLOCKSIZE, showBlockSize) ;
		//SetDlgItemInt  (hDlg, IDD_BLOCKSIZE, (UINT)blocksize, FALSE) ;
		SetDlgItemInt  (hDlg, IDD_BLOCKNO, (UINT)blockno, FALSE) ;
		SetDlgItemInt  (hDlg, IDD_ERROR, (UINT)error, FALSE) ;

		if (updateFilename||writeName)
			SetDlgItemText (hDlg, IDD_FILENAME, filename) ;

		if (bBar)
				ShowStatusBar (hDlg) ;
		else
				for(id=IDD_BAR; id<IDD_BAR+3; id++)
						ShowWindow (GetDlgItem(hDlg, id), SW_HIDE) ;

}
Ejemplo n.º 4
0
bool svrInitCommandHandler(SerialCom* comm,PipeShell* shell,char* sIfName,bool dbg_gws) {
    struct itimerval interval;

    ShowStatusBar("%s", "Handler Init....\n");
    if (NULL == comm || NULL == shell || NULL == sIfName) return false;
    static_chp.m_comm = comm;
    static_chp.m_shell = shell;
    static_chp.m_ifName = sIfName;
    static_chp.m_nQid = OpenMessageQueue(1);
    static_chp.m_pKpi = CreateShm(&static_chp.m_nIdentifier);

    ShowStatusBar("%s", "MSQ & SHM OK\n");
    if (static_chp.m_nQid < 0 || NULL == static_chp.m_pKpi) {
        if (static_chp.m_nQid < 0) {
            ShowStatusBar("Error on create message queue,error=%d", errno);
            svrSetErrorNo(errno);
            return false;
        } else if (NULL == static_chp.m_pKpi) {
            ShowStatusBar("Error on open share memory,error=%d", errno);
            svrSetErrorNo(errno);
            return false;
        }
    }
    ShowStatusBar("%s", "Turnning on GWS Tx....\n");
    ScSend(static_chp.m_comm, "txon\n", 5);
    ShowStatusBar("%s", "Adjusting GWS channel....\n");
    iw_setchannel(-1,static_chp.m_pKpi,static_chp.m_nIdentifier);

    pthread_mutex_init(&mutex_lock_timer,NULL);
    interval.it_value.tv_sec = 0;
    interval.it_value.tv_usec = TIME_SLOT;
    interval.it_interval.tv_sec = 0;
    interval.it_interval.tv_usec = TIME_SLOT;
    static_debug_gws = dbg_gws;
    signal(SIGALRM, svrTimer);
    setitimer(ITIMER_REAL, &interval, NULL);
    ShowStatusBar("%s", "Initialize Handler OK!");
    return true;
}
Ejemplo n.º 5
0
LRESULT CCaptureWindow::OnMessage(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    switch (uMsg) {
    case WM_CREATE:
        m_Preview.Create(hwnd,WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,WS_EX_CLIENTEDGE);
        m_Preview.SetEventHandler(&m_PreviewEventHandler);
        m_Status.Create(hwnd,
                        WS_CHILD | WS_CLIPSIBLINGS | (m_fShowStatusBar?WS_VISIBLE:0),
                        /*WS_EX_STATICEDGE*/0);
        //m_Status.SetEventHandler(pThis);
        if (m_Status.NumItems()==0) {
            if (!m_StatusIcons.IsCreated()) {
                m_StatusIcons.Load(GetAppClass().GetResourceInstance(),IDB_CAPTURE);
            }
            m_Status.AddItem(new CCaptureStatusItem(m_StatusIcons));
            //m_Status.AddItem(new CContinuousStatusItem(m_StatusIcons));
            m_Status.AddItem(new CSaveStatusItem(this,m_StatusIcons));
            m_Status.AddItem(new CCopyStatusItem(this,m_StatusIcons));
        }
        if (m_pImage!=NULL) {
            m_Preview.SetImage(m_pImage);
            SetTitle();
        }
        return 0;

    case WM_SIZE:
    {
        int Width=LOWORD(lParam),Height=HIWORD(lParam);

        if (m_fShowStatusBar) {
            Height-=m_Status.GetHeight();
            m_Status.SetPosition(0,Height,Width,m_Status.GetHeight());
        }
        m_Preview.SetPosition(0,0,Width,Height);
    }
    return 0;

    case WM_KEYDOWN:
        if (m_pEventHandler!=NULL
                && m_pEventHandler->OnKeyDown((UINT)wParam,(UINT)lParam))
            return 0;
        break;

    case WM_ACTIVATE:
        if (m_pEventHandler!=NULL
                && m_pEventHandler->OnActivate(LOWORD(wParam)!=WA_INACTIVE))
            return 0;
        break;

    case WM_COMMAND:
        switch (LOWORD(wParam)) {
        case CM_SAVEIMAGE:
            if (m_pImage!=NULL && m_pEventHandler!=NULL) {
                if (!m_pEventHandler->OnSave(m_pImage)) {
                    ::MessageBox(hwnd,TEXT("画像の保存ができません。"),NULL,
                                 MB_OK | MB_ICONEXCLAMATION);
                }
            }
            return 0;

        case CM_COPY:
            if (m_pImage!=NULL) {
                if (!m_pImage->SetClipboard(hwnd)) {
                    ::MessageBox(hwnd,TEXT("クリップボードにデータを設定できません。"),NULL,
                                 MB_OK | MB_ICONEXCLAMATION);
                }
            }
            return 0;

        case CM_CAPTURESTATUSBAR:
            ShowStatusBar(!m_fShowStatusBar);
            return 0;
        }
        return 0;

    case WM_CLOSE:
        if (m_pEventHandler!=NULL
                && !m_pEventHandler->OnClose())
            return 0;
        break;
    }
    return ::DefWindowProc(hwnd,uMsg,wParam,lParam);
}
Ejemplo n.º 6
0
int svrCmdHandler(SerialCom* comm,GWS_MESSAGE* gws_msg,CommandHandlerPara* para) {
    char command[64];
    char parameter[32];
    int* nTimer = &(para->m_nCommBusy);
    int region = 0;
    int nId = para->m_nIdentifier;
    P_GWS_KPI pKpi = para->m_pKpi;

    RW_KPI_VAR(nId,region,pKpi->m_radio.m_nRegion);
    strcpy(parameter, gws_msg->m_command.m_sPara);
    switch (gws_msg->m_command.m_nReq) {
    case SCAN_CHAN:
    case SCAN_FIXED_CHAN:
        if (MIN_CHANNEL(region) <= para->m_nOriginChannel && para->m_nOriginChannel <= MAX_CHANNEL(region)) {
            COM_LOCK(1000 * MSEC_TICKS);    //occupy serial port for 500 ms
            RW_KPI_VAR(nId,latest_rxcal,pKpi->m_radio.m_bRXCal);
            RW_KPI_VAR(nId,latest_rxgain,pKpi->m_radio.m_nRXGain);
            PRE_SCAN_COMMAND(comm,"setrxcal 0");
            PRE_SCAN_COMMAND(comm,"setrxgain 0");
            para->m_nCurrentChannel = para->m_nOriginChannel;
            CHANNEL_SCAN_ON_OFF(para->m_uChanScan,gws_msg->m_command.m_nReq == SCAN_FIXED_CHAN ?
                                SCANNING_FIXED_INIT : SCANNING_ALL_INIT);
            gws_msg->m_nType = 0;
        } else {
            svrSetErrorNo(GWS_ERROR_INVALIDATE_CHANNEL);
        }
        break;
    case STOP_CHAN:
        if (para->m_uChanScan == SCANNING_FIXED_READ) {
            CHANNEL_SCAN_ON_OFF(para->m_uChanScan, SCANNING_FIXED_DONE);
        } else {
            CHANNEL_SCAN_ON_OFF(para->m_uChanScan, SCANNING_DONE);
            APP_SCAN_COMMAND(comm,static_chp.m_nOriginChannel);
        }
        gws_msg->m_nType = 0;
        break;
    case SET_TXON:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "tx%s\n", parameter);
            ScSend(comm, command, strlen(command));
            gws_msg->m_nType = 0;
        }
        break;
    case SET_RXON:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "rx%s\n", parameter);
            ScSend(comm, command, strlen(command));
            gws_msg->m_nType = 0;
        }
        break;
    case SET_TXCAL:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "settxcal %s\n", parameter);
            ScSend(comm, command, strlen(command));
            gws_msg->m_nType = 0;
        }
    case SET_RXCAL:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "setrxcal %s\n", parameter);
            ScSend(comm, command, strlen(command));
            gws_msg->m_nType = 0;
        }
        break;
    case SET_REGION:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "setregion %s\n", parameter);
            ScSend(comm, command, strlen(command));
            gws_msg->m_nType = 0;
        }
        break;
    case SET_CHAN:
        if (*nTimer <= 0) {
            int new_channel = para->m_nOriginChannel;
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            CHANNEL_SCAN_ON_OFF(para->m_uChanScan,false);
            if (IsNumber(parameter)) {
                new_channel = atoi(parameter);
            } else if (parameter[0] == 'x') {
                new_channel --;
                if (new_channel < MIN_CHANNEL(region)) new_channel = MAX_CHANNEL(region);
            } else if (parameter[0] == 'v') {
                new_channel ++;
                if (new_channel > MAX_CHANNEL(region)) new_channel = MIN_CHANNEL(region);
            }
            para->m_nCurrentChannel = new_channel;
            para->m_nOriginChannel = svrSetChannel(comm, region,para->m_nCurrentChannel,&timer_chan_switch);
            gws_msg->m_nType = 0;
        }
        break;
    case SET_TXPWR:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "settxpwr %s\n", parameter);
            ScSend(comm, command, strlen(command));
            gws_msg->m_nType = 0;
        }
        break;
    case SET_GAIN:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "setrxgain %s\n", parameter);
            ScSend(comm, command, strlen(command));
            gws_msg->m_nType = 0;
        }
        break;
    case SET_MODE:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "config_%s", parameter);
            system(command);
            usleep(1000000);
            system("reboot");
            gws_msg->m_nType = 0;
        }
        break;
    case SET_TXATT:
        if (*nTimer <= 0) {
            COM_LOCK(500 * MSEC_TICKS);    //occupy serial port for 500 ms
            sprintf(command, "settxatten %s\n", parameter);
            ScSend(comm, command, strlen(command));
            gws_msg->m_nType = 0;
        }
        break;
    case SET_BANDWIDTH:
        set_wifi_bandwidth(parameter);
        gws_msg->m_nType = 0;
        break;
    case WIFI_TXPW:
        PipeShellCommand(   para->m_shell, "iw", "dev",
                            para->m_ifName, "set", "txpower", "fixed",
                            gws_msg->m_command.m_sPara, NULL);
        gws_msg->m_nType = 0;
        break;
    case 'Q':
    case 'q':
        CHANNEL_SCAN_ON_OFF(para->m_uChanScan,false);
        SetTimerOut(*nTimer);
        gws_msg->m_nType = 0;
        break;
    case SHUTDOWN:
#ifdef  _GWS_DEBUG
        ShowStatusBar("Shutdown Server.");
#endif
        gws_msg->m_nType = 0;
        return 0;
    default:
        gws_msg->m_nType = 0;
    }
    return 1;
}