• 大小: 46KB
    文件类型: .cs
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: C#
  • 标签: GPS  软件  C#  源码  

资源简介

C# 编写的 蓝牙GPS定位软件 可通过蓝牙GPS 校准时间

资源截图

代码片段和文件信息

using System;
using System.IO;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;
using System.Runtime.InteropServices;   
using System.Collections;

interface ComPort{
void Open();
void Close();
void SetPortName(string name);
string GetPortName();
void SetBaudRate(int rate);
int GetBaudRate();
string ReadLine();
void SetLocalTime();
int ReadByte();
}

public struct SystemTime{
public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds;
}


  public   class   CommPort:ComPort  
  {   
  private   string  portName;     
  private   int    baudRate;   
  private   byte    Parity;   //   0-4=nooddevenmarkspace     
  private   byte    StopBits;   //   012   =   1   1.5   2     
  private   int    hComm   =   -1;   
  private   bool    opened   =   false;   
  private   const   uint   GENERIC_READ   =   0x80000000;   
  private   const   uint   GENERIC_WRITE   =   0x40000000;   
  private   const   int   OPEN_EXISTING   =   3;           
  private   const   int   INVALID_HANDLE_VALUE   =   -1;   
  
  public CommPort(){
  portName   = portName==null?“COM!“:portName;   
  baudRate = baudRate==0?4800:baudRate;   
  Parity=   0;   
  StopBits   =1;   
//   ReadTimeout   =5000;   
  }
  public bool Opened{
   get{
   return opened;
   }
   set{
   opened = value;
   }
  }
  public string PortName{
   set{
   portName = value;
   }
   get{
   return portName;
   }
  }
  public void SetPortName(string name){
   portName = name;
  }
  public string GetPortName(){
   return portName;
}
  public int BaudRate{
   set{
   baudRate = value;
   }
   get{
   return baudRate;
   }
  }
  public void SetBaudRate(int rate){
   baudRate = rate;
  }
  public int GetBaudRate(){
   return baudRate;
  }
                        
//读写串口的超时有两种:间隔超时和总超时。间隔超时是指在接收时两个字符之间的最大时延。
//总超时是指读写操作总共花费的最大时间。写操作只支持总超时,而读操作两种超时均支持。
//用COMMTIMEOUTS结构可以规定读写操作的超时。成员都以毫秒为单位.总超时的计算公式是:
//总超时=时间系数×要求读/写的字符数+时间常量 
//例如,要读入10个字符,那么读操作的总超时的计算公式为:
//读总超时=ReadTotalTimeoutMultiplier×10+ReadTotalTimeoutConstant 
//可以看出:间隔超时和总超时的设置是不相关的,这可以方便通信程序灵活地设置各种超时。 
//如果所有写超时参数均为0,那么就不使用写超时。如果ReadIntervalTimeout为0,
// 那么就不使用读间隔超时。如果ReadTotalTimeoutMultiplier 和 ReadTotalTimeoutConstant 都为0,
// 则不使用读总超时。如果读间隔超时被设置成MAXDWORD并且读时间系数和读时间常量都为0,
// 那么在读一次输入缓冲区的内容后读操作就立即返回,而不管是否读入了要求的字符。
  // 在用重叠方式读写串口时,虽然ReadFile和WriteFile在完成操作以前就可能返回,
// 但超时仍然是起作用的。在这种情况下,超时规定的是操作的完成时间,
//而不是ReadFile和WriteFile的返回时间. 
  private   struct   COMMTIMEOUTS     
  {       
  public   uint  ReadIntervalTimeout;  //读间隔超时
  public   int   ReadTotalTimeoutMultiplier; ////读时间系数
  public   int   ReadTotalTime

评论

共有 条评论