} catch (Exception exFile) {
MessageBox.Show("ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΎΡΠΊΡΡΡΡ " + exFile.ToString());
return;
}
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ IrDA-ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ»ΡΠΆΠ±Ρ.
// ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ»ΡΠΆΠ±Ρ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ
// IrDA-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅
try {
irClient = new IrDAClient(irServiceName);
} catch (SocketException exS) {
MessageBox.Show("ΠΡΠΈΠ±ΠΊΠ° ΡΠΎΠΊΠ΅ΡΠ°: " + exS.Message +
" - ΠΡ ΡΠ΅Π»ΠΊΠ½ΡΠ»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΠΎΠ»ΡΡΠΈΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅?");
return;
}
// ΠΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎΡΠΎΠΊ
Stream baseStream = irClient.GetStream();
// ΠΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
// ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΡΠΎΠΊ
byte[] length = BitConverter.GetBytes((int)fileStream.Length);
baseStream.Write(length, 0, length.Length);
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π±ΡΡΠ΅Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
byte[] buffer = new byte[buffersize];
// ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π±Π°ΠΉΡ
int fileLength = (int)fileStream.Length;
statusBar1.Text = "ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ " + fileLength + " Π±Π°ΠΉΡ";
// Π§ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅
while (fileLength > 0) {
int numRead = fileStream.Read(buffer, 0, buffer.Length);
baseStream.Write(buffer, 0, numRead);
fileLength -= numRead;
}
fileStream.Close();
baseStream.Close();
irClient.Close();
statusBar1.Text = "Π€Π°ΠΉΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½";
}
private void butReceive_Click(object sender, EventArgs e) {
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΉΠ»Π°
Stream writeStream;
try {
writeStream = new FileStream(fileReceive, FileMode.OpenOrCreate);
} catch (Exception) {
MessageBox.Show("ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΎΡΠΊΡΡΡΡ "+ fileReceive + " Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ");
return;
}
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° IrDAEndPoint
// Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°
// ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΡΠ»ΡΡΠΊΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
// ΠΈΠ· ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ IrDAListener
try {
int i = listBox1.SelectedIndex;
irEndP = new IrDAEndPoint(irDevices[i].DeviceID, irServiceName);
irListen = new IrDAListener(irEndP);
irListen.Start();
} catch (SocketException exSoc) {
MessageBox.Show("ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ Π½Π° ΡΠ»ΡΠΆΠ±Π΅ " + irServiceName + ": " +
exSoc.ErrorCode);
}
// ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
statusBar1.Text = "ΠΡΠΎΡΠ»ΡΡΠΊΠ° " + listBox1.SelectedItem.ToString();
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
// Π΄Π»Ρ ΡΠ»ΡΠΆΠ±Ρ, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ»ΡΡΠΊΠΎΠΉ
IrDAClient irClient;
try {
irClient = irListen.AcceptIrDAClient();
} catch (SocketException exp) {
MessageBox.Show("ΠΠ΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠΎΠΊΠ΅Ρ "+ exp.ErrorCode);
return;
}
// ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΠΈΠ΄Π΅Ρ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠ°ΠΉΠ»Π°
if (irListen.Pending() == true)
statusBar1.Text = "ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈΠ· " + irClient.RemoteMachineName;
else
statusBar1.Text = "ΠΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ· " + irClient.RemoteMachineName;
// ΠΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎΡΠΎΠΊ ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
Stream baseStream = irClient.GetStream();
int numToRead;
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π±ΡΡΠ΅Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
byte[] buffer = new byte[buffersize];
// Π§ΠΈΡΠ°Π΅ΠΌ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
// Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
numToRead = 4;
while (numToRead > 0) {
int numRead = baseStream.Read(buffer, 0, numToRead);
numToRead -= numRead;
}
// ΠΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ° Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π°
// ΡΠΈΡΠ»Π° Π±Π°ΠΉΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ»
numToRead = BitConverter.ToInt32(buffer, 0);
statusBar1.Text = "ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ "+ numToRead + " Π±Π°ΠΉΡ";
// ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠΎΠΊ Π² ΡΠ°ΠΉΠ» Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ,
// ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΠΈΡΠ°Π½Ρ Π²ΡΠ΅ Π±Π°ΠΉΡΡ
while (numToRead > 0) {
int numRead = baseStream.Read(buffer, 0, buffer.Length);
numToRead -= numRead;
writeStream.Write(buffer, 0, numRead);
}
// Π‘ΠΎΠΎΠ±ΡΠ°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½
statusBar1.Text = "Π€Π°ΠΉΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½";
baseStream.Close();
writeStream.Close();
irListen.Stop();
irClient.Close();
}
ΠΡΠ°ΠΊ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π²ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ°ΠΉΠ». ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ send.txt Ρ Π»ΡΠ±ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ. ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ ΠΈΠ½ΡΡΠ°ΠΊΡΠ°ΡΠ½ΡΠ΅ Π΄Π°ΡΡΠΈΠΊΠΈ Π΄Π²ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΠΊΠ°ΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΠΈΡΠΊ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΈΠΌΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠ°ΡΠ΅ΠΌ Π½Π° Π²ΡΠΎΡΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π½Π°Π΄ΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΠΈΠ½ΡΡΡ, Π° Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΠΏΡΠ°Π²ΠΈΡΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Π°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° send.txt Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π½Π° Π΄ΡΡΠ³ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ Π² ΡΠ°ΠΉΠ»Π΅ receive.txt.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅Π»ΡΠ·Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠΌΡΠ»ΡΡΠΎΡΠ΅. ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° Π½Π°ΡΡΠΎΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΠΠ, Ρ ΡΠ΅ΡΠΈΠ» Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ²ΠΎΠΈΠΌ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠΌ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows Mobile 2005. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ IrDA_Smartphone_CS ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΌΠ΅ΡΡΠΎ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ ΠΌΠ΅Π½Ρ, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ListBox β ΡΠ»Π΅ΠΌΠ΅Π½Ρ ComboBox. ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΈ Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΠΏΡΠΎΡΡΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΈΠΎΠ±ΡΠ΅Π»Π° Π±Ρ ΡΠ΅ΡΡΡ ΡΠ°ΡΠ°. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ³ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ°ΡΡΠ²ΡΡΡ Π΄Π²Π° ΠΈΠ³ΡΠΎΠΊΠ°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΠ°ΠΊΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠΌ Ρ ΠΎΠ΄Π΅ Π² ΡΠ°Ρ ΠΌΠ°ΡΠ°Ρ .
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Bluetooth
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ²ΠΎΡ Π΄Π΅ΡΠ΅Π²ΠΈΠ·Π½Ρ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ, ΠΈΠ½ΡΡΠ°ΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ². Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΡΠ°Π΄ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²ΡΠ·ΠΈ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΏΡΡΠΌΠΎΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΈΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² Π»ΠΈΡΠ΅Π½ΠΎ Bluetooth-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
ΠΠΎ ΠΈ ΡΡΡ Π½Π΅ ΠΎΠ±ΠΎΡΠ»ΠΎΡΡ Π±Π΅Π· Π»ΠΎΠΆΠΊΠΈ Π΄Π΅Π³ΡΡ Π² Π±ΠΎΡΠΊΠ΅ ΠΌΠ΅Π΄Π°. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Bluetooth-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ .NET Compact Framework. ΠΡΠΈΠΌΠ΅ΡΡ Ρ Bluetooth-ΡΠ²ΡΠ·ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows Mobile 5.0, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Bluetooth-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° .NET Compact Framework Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ Bluetooth, ΡΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Windows API, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 12.6.
ΠΠΈΡΡΠΈΠ½Π³ 12.6public enum RadioMode {
Off = 0,
Connectable = 1,
Discoverable = 2
}
/// <summary>
/// ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ°ΡΡΡ bluetooth
/// </summary>
/// <param name="dwMode">ΡΠ»Π°Π³ΠΈ</param>
/// <returns></returns>
[DllImport("BthUtil.dll")]
public static extern int BthGetMode(out RadioMode dwMode);
/// <summary>
/// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ bluetooth
/// </summary>
/// <param name="dwMode">ΡΠ»Π°Π³ΠΈ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°</param>
/// <returns></returns>
[DllImport("BthUtil.dll")]
public static extern int BthSetMode(RadioMode dwMode);
private void mnuOn_Click(object sender, EventArgs e) {
BthSetMode(RadioMode.Connectable);
lblStatus.Text = RadioMode.Connectable.ToString();
}
private void Form1_Load(object sender, EventArgs e) {
RadioMode mode;
int ret = BthGetMode(out mode);
lblStatus.Text = mode.ToString();
}
private void mnuOff_Click(object sender, EventArgs e) {
ΠthSetMode(RadioMode.Off);
lblStatus.Text = RadioMode.Off.ToString();
}
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ Bluetooth ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ BthGetMode, Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ Bluetooth-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ BthSetMode.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ² ΠΎ ΡΠ²ΡΠ·ΠΈ
ΠΠ΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π±ΡΠ΄Ρ ΡΠΎ ΡΠΌΠ°ΡΡΡΠΎΠ½ ΠΈΠ»ΠΈ ΠΠΠ, ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π½Π° ΡΠΎΠ»Ρ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π±ΡΠ»ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π±ΠΈΡΠ°ΡΡ ΠΎΠ±ΠΎΡΠΎΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΈΠ΄Ρ ΡΠ²ΡΠ·ΠΈ, ΠΊΠ°ΠΊ Wi-Fi, GPS ΠΈ GPRS. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠΌΠ΅ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ Π΄Π»Ρ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ Π²Π΅ΡΡ ΡΠΏΠ΅ΠΊΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
ΠΠ»Π°Π²Π° 13
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° .NET Compact Framework ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ Π·Π°Π΄Π°Ρ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠ±Π΅Π³Π°ΡΡ ΠΊ Π²ΡΠ·ΠΎΠ²Π°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ Windows API. Π Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Windows API Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.