/** * process_channel_scan() * ---------------------- * run through channel scan, acquiring information about available * access points to monitor **/ void process_channel_scan(struct packet_info *packet) { struct p802_11b_info *info = NULL; float signal_str = 0; if (packet->error_status) return; if (packet->driver_proto == AIRONET_MOD){ signal_str = packet->driver_pkt->signal; } if (packet->mac_proto == p802_11){ info = parse_p802_11b_hdr((wlan_hdr_t *)packet->mac_pkt); } else if (packet->mac_proto == hfa384x){ signal_str = ((prism2_hdr_t *)packet->mac_pkt)->frame_descriptor.signal; info = parse_hfa384x_hdr((prism2_hdr_t *)packet->mac_pkt); } else if (packet->mac_proto == wlanngp2){ signal_str = ((wlan_ng_hdr_t *)packet->mac_pkt)->signal.data; info = parse_wlanngp2_hdr((wlan_ng_hdr_t *)packet->mac_pkt); } else{ return; } if (!info->status){ return; } update_channel(info, signal_str); }
void av::vrpn::Wiimote::setRumbleCB(const av::SFBool::SetValueEvent& event) { const bool rumbling = (event.getValue()); // std::cout << "Rumbling: " << rumbling << std::endl; update_channel(RUMBLE_CHANNEL, rumbling); }
bool av::vrpn::Wiimote::set_mode(const int mode, bool value) { switch(mode) { case VRPN_WIIMOTE_CHANNEL_MODE_IR: case VRPN_WIIMOTE_CHANNEL_MODE_MOTION_SENSE: return update_channel(mode, value); default: return false; } }
bool av::vrpn::Wiimote::setLeds(int leds, bool on) { vrpn_int32 channel = 0; switch(leds) { case 1: channel = VRPN_WIIMOTE_CHANNEL_LED_1; break; case 2: channel = VRPN_WIIMOTE_CHANNEL_LED_2; break; case 3: channel = VRPN_WIIMOTE_CHANNEL_LED_3; break; case 4: channel = VRPN_WIIMOTE_CHANNEL_LED_4; break; default: return false; } std::cout << "LED: " << leds << " (channel=" << channel << ")\n"; return update_channel(channel, on); }
void __attribute__((interrupt, no_auto_psv)) _IC8Interrupt(void) { IFS1bits.IC8IF = 0; while(IC8CONbits.ICBNE) update_channel(channel_8, IC8BUF); }
void __attribute__((interrupt, no_auto_psv)) _IC2Interrupt(void) { IFS0bits.IC2IF = 0; while(IC2CONbits.ICBNE) update_channel(channel_2, IC2BUF); }
LRESULT CALLBACK EdfReaderDlgHandler( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { EDF_READEROBJ * st; int x; static int actchn; char strfloat[21]; st = (EDF_READEROBJ *) actobject; if ((st==NULL)||(st->type!=OB_EDF_READER)) return(FALSE); switch( message ) { case WM_INITDIALOG: actchn=0; update_header(hDlg,&st->header); update_channelcombo(hDlg, st->channel, st->header.channels); update_channel(hDlg,st->channel,actchn); update_state(hDlg,st->state); sprintf(strfloat,"%.2f",(float)st->offset/(float)PACKETSPERSECOND); SetDlgItemText(hDlg,IDC_OFFSET,strfloat); if (st->edffile!=INVALID_HANDLE_VALUE) SetDlgItemText(hDlg, IDC_EDFFILE, st->filename); else SetDlgItemText(hDlg, IDC_EDFFILE, "none"); return TRUE; case WM_CLOSE: EndDialog(hDlg, LOWORD(wParam)); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_SELECT: st->filename[0]=0; if ((st->edffile=open_edf_file(&st->header,st->channel,st->filename))==INVALID_HANDLE_VALUE) st->state=0; else if (st->header.channels==0) { SendMessage(hDlg,WM_COMMAND,IDC_CLOSE,0); report("EDF-File contained no channel inforamtion, file closed."); st->state=0; } else st->state=1; update_state(hDlg,st->state); if (!st->state) break; st->calc_session_length(); get_session_length(); //set_session_pos(0); st->session_pos(0); st->packetcount=0; st->sampos=0; if (st->outports!=st->header.channels) { for (x=0;x<MAX_CONNECTS;x++) { st->out[x].from_port=-1; st->out[x].to_port=-1; st->out[x].to_object=-1; } for (x=0;x<MAX_PORTS;x++) st->out_ports[x].out_name[0]=0; } st->outports=st->header.channels; st->height=CON_START+st->outports*CON_HEIGHT+5; update_header(hDlg,&st->header); update_channelcombo(hDlg, st->channel, st->header.channels); update_channel(hDlg,st->channel,actchn); st->get_captions(); update_dimensions(); SetDlgItemText(hDlg, IDC_EDFFILE, st->filename); EnableWindow(GetDlgItem(hDlg, IDC_CLOSE), TRUE); EnableWindow(GetDlgItem(hDlg, IDC_SELECT), FALSE); InvalidateRect(ghWndDesign,NULL,TRUE); break; case IDC_CLOSE: st->state=0; update_state(hDlg,st->state); SetDlgItemText(hDlg, IDC_EDFFILE, "none"); add_to_listbox(hDlg,IDC_LIST, "file closed."); strcpy(st->filename,"none"); if (st->edffile==INVALID_HANDLE_VALUE) break; CloseHandle(st->edffile); st->edffile=INVALID_HANDLE_VALUE; get_session_length(); InvalidateRect(ghWndDesign,NULL,TRUE); break; case IDC_APPLYOFFSET: GetDlgItemText(hDlg, IDC_OFFSET, strfloat, 20); st->offset = (int)((float)atof(strfloat) * (float) PACKETSPERSECOND); st->calc_session_length(); get_session_length(); break; case IDC_CHANNELCOMBO: if (HIWORD(wParam)==CBN_SELCHANGE) { get_channel(hDlg, st->channel, actchn); actchn=SendMessage(GetDlgItem(hDlg, IDC_CHANNELCOMBO), CB_GETCURSEL , 0, 0); update_channel(hDlg, st->channel,actchn); } break; } return TRUE; case WM_SIZE: case WM_MOVE: update_toolbox_position(hDlg); break; return TRUE; } return FALSE; }
LRESULT CALLBACK TcpReceiveDlgHandler( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { TCP_RECEIVEOBJ * st; char writebuf[100],szdata[100]; char readbuf[readbuflength]; int result; static int actchn; st = (TCP_RECEIVEOBJ *) actobject; if ((st==NULL)||(st->type!=OB_TCP_RECEIVER)) return(FALSE); switch( message ) { case WM_INITDIALOG: SetDlgItemText(hDlg, IDC_HOST, st->host); EnableWindow(GetDlgItem(hDlg, IDC_SELECTCOMBO), FALSE); actchn=0; update_header(hDlg,&st->header); update_channelcombo(hDlg, st->channel, st->header.channels); update_channel(hDlg,st->channel,actchn); if (st->sock) { char actsession[30]; EnableWindow(GetDlgItem(hDlg, IDC_CONNECT), FALSE); if (st->watching) { add_to_listbox(hDlg,IDC_LIST, "Watching Values from Server."); EnableWindow(GetDlgItem(hDlg, IDC_WATCH), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_STOP), TRUE); EnableWindow(GetDlgItem(hDlg, IDC_CLOSE), FALSE); } else { add_to_listbox(hDlg,IDC_LIST, "Socket connected."); if (st->streamnum>=0) EnableWindow(GetDlgItem(hDlg, IDC_WATCH), TRUE); else { EnableWindow(GetDlgItem(hDlg, IDC_WATCH), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_SELECTCOMBO), TRUE); } EnableWindow(GetDlgItem(hDlg, IDC_STOP), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_CLOSE), TRUE); get_connections(hDlg,st); } if (st->streamnum>=0) { sprintf(actsession,"%d:EEG",st->streamnum); SetDlgItemText(hDlg, IDC_SELECTCOMBO, actsession); } } else { add_to_listbox(hDlg,IDC_LIST, "No Socket connected."); EnableWindow(GetDlgItem(hDlg, IDC_CONNECT), TRUE); EnableWindow(GetDlgItem(hDlg, IDC_WATCH), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_STOP), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_CLOSE), FALSE); } return TRUE; case WM_CLOSE: EndDialog(hDlg, LOWORD(wParam)); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_CONNECT: GetDlgItemText(hDlg, IDC_HOST, st->host, sizeof(st->host)); if ((strlen(st->host)<8)||(!st->connect())) { add_to_listbox(hDlg,IDC_LIST, "Could not connect to Server"); break; } SendDlgItemMessage(hDlg,IDC_LIST, LB_ADDSTRING, 0, (LPARAM) "Socket connection successful."); strcpy(writebuf,"display\n"); result = SDLNet_TCP_Send(st->sock, writebuf, strlen(writebuf)); add_to_listbox(hDlg,IDC_LIST, "sending:DISPLAY"); st->read_tcp(readbuf, readbuflength); strncpy(szdata,readbuf,6);szdata[6]=0; if (strcmp(szdata,"200 OK")) { add_to_listbox(hDlg,IDC_LIST,"Could not select Display-mode"); break;} add_to_listbox(hDlg,IDC_LIST, "OK"); if (!st->sock) { add_to_listbox(hDlg,IDC_LIST,"Socket not connected"); break;} if (!get_connections(hDlg,st)) { add_to_listbox(hDlg,IDC_LIST, "No Sessions available."); st->reset(); InvalidateRect(ghWndMain,NULL,TRUE); break; } EnableWindow(GetDlgItem(hDlg, IDC_CONNECT), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_STOP), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_CLOSE), TRUE); break; case IDC_SELECTCOMBO: if (HIWORD(wParam)!=CBN_SELCHANGE) break; if (!st->sock) { add_to_listbox(hDlg,IDC_LIST, "No Channels available."); st->streamnum=-1; st->out[0].from_port=-1; st->outports=0; break; } st->streamnum=SendDlgItemMessage(hDlg,IDC_SELECTCOMBO,CB_GETITEMDATA, (WPARAM) SendDlgItemMessage(hDlg,IDC_SELECTCOMBO, CB_GETCURSEL , 0, 0), 0); st->clear_buffer(); // SELECT SESSION sprintf(writebuf,"getheader %d\n",st->streamnum); result = SDLNet_TCP_Send(st->sock, writebuf, strlen(writebuf)); add_to_listbox(hDlg,IDC_LIST, "sending:GETHEADER"); st->read_tcp(readbuf, sizeof(readbuf)-1); strncpy(szdata,readbuf,6); szdata[6]=0; if (strcmp(szdata,"200 OK")) { add_to_listbox(hDlg,IDC_LIST,"Could not get EDF-header.");break;} add_to_listbox(hDlg,IDC_LIST, "OK"); strcpy(st->edfheader,readbuf+8); // report(st->edfheader); EnableWindow(GetDlgItem(hDlg, IDC_SELECTCOMBO), FALSE); st->syncloss=0; add_to_listbox(hDlg,IDC_LIST, "Parsing Header"); parse_edf_header(&st->header,st->channel, st->edfheader); add_to_listbox(hDlg,IDC_LIST, "clear OK"); st->outports=st->header.channels; st->height=CON_START+st->outports*CON_HEIGHT+5; st->get_captions(); update_header(hDlg,&st->header); update_channelcombo(hDlg, st->channel, st->header.channels); update_channel(hDlg,st->channel,actchn); add_to_listbox(hDlg,IDC_LIST, "OK"); EnableWindow(GetDlgItem(hDlg, IDC_WATCH), TRUE); InvalidateRect(ghWndDesign,NULL,TRUE); break; case IDC_WATCH: if ((st->outports>0)&&(st->sock)) { add_to_listbox(hDlg,IDC_LIST, "sending:WATCH"); st->clear_buffer(); st->syncloss=0; result=st->start_watching(); if (result!=200) { add_to_listbox(hDlg,IDC_LIST,"Could not enter Watch-Mode"); break;} add_to_listbox(hDlg,IDC_LIST, "OK"); EnableWindow(GetDlgItem(hDlg, IDC_WATCH), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_CLOSE), FALSE); // EnableWindow(GetDlgItem(hDlg, IDC_SELECTCOMBO), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_STOP), TRUE); if (!GLOBAL.running) start_timer(); } else add_to_listbox(hDlg,IDC_LIST, "No Channels available."); break; case IDC_EMPTY: st->bufstart=st->bufend; add_to_listbox(hDlg,IDC_LIST, "buffer cleared."); break; case IDC_STOP: add_to_listbox(hDlg,IDC_LIST, "sending:UNWATCH"); st->unwatch(); EnableWindow(GetDlgItem(hDlg, IDC_WATCH), TRUE); EnableWindow(GetDlgItem(hDlg, IDC_CLOSE), TRUE); EnableWindow(GetDlgItem(hDlg, IDC_STOP), FALSE); // EnableWindow(GetDlgItem(hDlg, IDC_SELECTCOMBO), TRUE); break; case IDC_CLOSE: add_to_listbox(hDlg,IDC_LIST, "sending:CLOSE"); st->reset(); EnableWindow(GetDlgItem(hDlg, IDC_CONNECT), TRUE); // EnableWindow(GetDlgItem(hDlg, IDC_SELECTCOMBO), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_WATCH), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_CLOSE), FALSE); InvalidateRect(ghWndDesign,NULL,TRUE); break; case IDC_CHANNELCOMBO: if (HIWORD(wParam)==CBN_SELCHANGE) { get_channel(hDlg, st->channel, actchn); actchn=SendMessage(GetDlgItem(hDlg, IDC_CHANNELCOMBO), CB_GETCURSEL , 0, 0); update_channel(hDlg, st->channel,actchn); } break; } return TRUE; case WM_SIZE: case WM_MOVE: update_toolbox_position(hDlg); break; return TRUE; } return FALSE; }