/**m* SpringCardApplication/RtdWifiHandoverControl.GetContentEx * * SYNOPSIS * public RtdHandoverSelector GetContentEx() * * DESCRIPTION * Constructs a RtdHandoverSelector object, containing a wifi handover, using the values of the different fields in the form * and returns this object * **/ public RtdHandoverSelector GetContentEx() { byte power_status = 0x01; switch (cbPowerState.SelectedIndex) { case 0: power_status = 0x01; break; case 1: power_status = 0x00; break; case 2: power_status = 0x02; break; case 3: power_status = 0x03; break; default: break; } string wifi_parameters = ""; switch (cbKeyType.SelectedIndex) { case 0: wifi_parameters = "wifi://" + tbSSID.Text + "/open/"; break; case 1: wifi_parameters = "wifi://" + tbSSID.Text + "/wep/" + tbKey.Text; break; case 2: wifi_parameters = "wifi://" + tbSSID.Text + "/wpa/" + tbKey.Text; break; default: break; } SaveString("Wifi.PowerState", cbPowerState.Text); SaveString("Wifi.SSID", tbSSID.Text); SaveString("Wifi.KeyType", cbKeyType.Text); SaveString("Wifi.Key", tbKey.Text); RtdAlternativeCarrier alternative_carrier = new RtdAlternativeCarrier("0", power_status); AbsoluteUri related_absolute_uri = new AbsoluteUri("0", wifi_parameters); RtdHandoverSelector HandoverSelector = new RtdHandoverSelector(alternative_carrier, related_absolute_uri); return(HandoverSelector); }
/**m* SpringCardApplication/RtdWifiHandoverControl.SetContent * * SYNOPSIS * public void SetContent(RtdHandoverSelector handoverSelector) * * DESCRIPTION * Only called by the "public override void SetContent(Ndef ndef)" method, if the ndef is an RtdHandoverSelector object. * It prints on the form the content of the RtdHandoverSelector object passed as a parameter, only if it is a wifi handover. * If the content is not a wifi handover (a bluetooth handover for example), nothing is printed. * **/ public void SetContent(RtdHandoverSelector handoverSelector) { ClearContent(); string carrierDataReference = ""; /* We try to print the first wifi handover found on the handoverSelector */ for (int i = 0; i < handoverSelector.AlternativeCarriers.Length; i++) { carrierDataReference = handoverSelector.AlternativeCarriers[i].CarrierDataReference; for (int j = 0; j < handoverSelector.RelatedAbsoluteUris.Length; j++) { if (carrierDataReference.Equals(System.Text.Encoding.ASCII.GetString(handoverSelector.RelatedAbsoluteUris[j].ID))) { string content_string = System.Text.Encoding.ASCII.GetString(handoverSelector.RelatedAbsoluteUris[j].PAYLOAD); switch (handoverSelector.AlternativeCarriers[i].CarrierPowerState) { case 0x00: cbPowerState.Text = "Inactive"; break; case 0x01: cbPowerState.Text = "Active"; break; case 0x02: cbPowerState.Text = "Activating"; break; case 0x03: cbPowerState.Text = "Unknown"; break; } if (!content_string.StartsWith("wifi://")) { MessageBox.Show("This Tag contains a valid Handover Selector, but this application doesn't know how to display it, as it only displays wifi connexions.", "This Handover Selector is not supported"); return; } char[] delimiterChar = { '/' }; string[] wifi_parameters = content_string.Split(delimiterChar); tbSSID.Text = wifi_parameters[2]; if (wifi_parameters[3].Equals("open")) { cbKeyType.Text = "None"; } else if (wifi_parameters[3].Equals("wep")) { cbKeyType.Text = "WEP"; } else if (wifi_parameters[3].Equals("wpa")) { cbKeyType.Text = "WPA/WPA2"; } tbKey.Text = wifi_parameters[4]; } } } }