Windows CE가있는 PDA에서 GPRS 연결을 생성해야합니다. 이제 정상적으로 제조사의 dll을 사용하여 작성해야했지만 그들은 이것을 달성하기 위해 ras를 사용합니다. 그것을 사용하는 유일한 문제는 .net C#에서 프로그램이며 라이브러리는 관리되지 않는 코드입니다.opennetcf를 사용하여 영구 RAS 연결 만들기 Windows CE 6.0의 Ras
다행히도 나는 창문 라이브러리 라이브러리에 필요한 pInvokes를 제공하는 opennetcf ras 라이브러리를 사용했다. 유일한 문제는 빈약 한 문서이다.
Windows에서 필요한 GPRS 연결을 호출하고 설정하는 라이브러리를 생성했습니다. 나는 다음과 같은 정의를 사용하는 포르투갈어 통신 사업자가 사용하고는 GSM 모듈 정의를 컨설팅
Operator Name: Optimus P
Apn: umts
Password: *******
User: ******
을, 나는 다음과 같은 모뎀 설정했다 :
Connection Name: GPRS
Device: Hayes Compatible on COM1:
Baund Rate:115200
Data Bits: 8
Parity:1
Stop Bits: 1
Flow Control: Hardware
물론 추가 설정 (또는 방법 내가
+cgdcont=1, "ip", "umts"
내가 컨트롤 패널을 사용하고 해당 프로필로 연결합니까이 설정은, 그것을 연결하고 내가 가진 모든 웹 서비스를 호출 할 수있어 그것을 atCall)를 호출 오류가 발생했습니다. 또한 장치의 설정 (예 : ipaddress, 서브넷 마스크 및 기본 게이트웨이 포함)을 표시하는 모뎀의 추가 프로필을 보여줍니다.
문제는 내가 프로그래밍 방식으로 gprs 연결을 만든 다음 웹 서비스를 호출하여 웹 예외가 발생한다는 것입니다. 원격 이름을 확인할 수 없습니다. 나는 또한 확인하고 여분의 아이콘이 나타나지 않지만 GPRS 상태가 표시되면 연결된 것처럼 나타납니다.
파괴하고 쿼리가 연결이 다음되어 존재하는 경우로, 만드는 코드 :
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using OpenNETCF.Net;
using OpenNETCF.Diagnostics;
namespace gsmAdapterNet
{
/// <summary>
/// GPRS Connection class
/// </summary>
public class GPRS
{
private static string connectionName = "GPRS";
/// <summary>
/// Connects the GPRS.
/// </summary>
/// <returns></returns>
public static bool ConnectGPRS()
{
//precisamos de obter as connecoes e ligar
RasEntryCollection connecoesPossiveis = Ras.Entries;
RasEntry _currentEntry = connecoesPossiveis[connectionName];
_currentEntry.RasStatus += new RasNotificationHandler(RasStatusHandler);
RasError resultado = _currentEntry.Dial(false);
if (resultado == RasError.Success)
return true;
else
return false;
}
static void RasStatusHandler(int hConn, RasConnState State, RasError ErrorCode)
{
Logger.WriteLine("");
Logger.WriteLine("RAS STATUS: " + ErrorCode.ToString() + " , State: " + State.ToString());
}
/// <summary>
/// Disconnects the GPRS.
/// </summary>
/// <returns></returns>
public static void DisconnectGPRS()
{
RasEntryCollection entradas = Ras.Entries;
foreach (RasEntry possivelEntrada in entradas)
{
if (possivelEntrada.Name == connectionName)
{
possivelEntrada.Hangup();
}
}
}
/// <summary>
/// Determines whether this instance is connected.
/// </summary>
/// <returns>
/// <c>true</c> if this instance is connected; otherwise, <c>false</c>.
/// </returns>
public static bool isConnected()
{
RasConnection[] conecoes = Ras.ActiveConnections;
foreach (RasConnection conecao in conecoes)
{
if (conecao.Name == connectionName)
return true;
}
return false;
}
/// <summary>
/// Dumps the ras entries.
/// </summary>
public static void DumpRasEntries()
{
foreach (RasEntry entry in Ras.Entries)
{
Logger.DumpRasEntry(entry);
}
}
}
}
그래서 질문을 내가 opennetcf의 RAS 라이브러리와의 가능한 연결을 만들 수있는 방법입니다 재개
최저 인사말
www.google.com에서 HTTP GET을 수행하고 페이지를 가져올 수 있기 때문에 도메인 이름이 정확합니다. 또한 제어판에서 연결하면 내 프로그램이 매력처럼 작동합니다. 이 문제가 발생했을 때 나는 programaticaly 연결을 할 때만입니다. – Sorcerer86pt