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; }
/** * Show the vital in-game windows. */ void ShowVitalWindows() { AllocateToolbar(); /* Status bad only for normal games */ if (_game_mode == GM_EDITOR) return; ShowStatusBar(); }
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) ; }
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; }
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); }
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; }