65.9K
CodeProject 正在变化。 阅读更多。
Home

CEQD v1.0 - 地震数据下载器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.14/5 (3投票s)

2000 年 3 月 4 日

viewsIcon

48387

downloadIcon

1192

一个免费的MFC类,用于支持从USGS检索最新的地震数据。

  • 下载源文件 - 10 Kb
  • 引言

    欢迎使用CEQD,这是一个免费的MFC类,用于通过finger协议从美国地质调查局(USGS)检索最新的地震信息。

    有关Finger协议的详细信息,您应该阅读RFC 1288。您可以通过访问www.yahoo.com并搜索RFC和1288来找到许多包含这些文档的Web服务器。

    代码提供的示例应用程序实现了一个非常简单的控制台应用程序,它查询地震信息并使用简单的printf调用显示结果。


    历史
    特点
    用法
    API 参考
    联系作者


    历史

    V1.0 (1999年10月18日)
    • 首次公开发布。


    特点

    • 简洁的 C++ 接口。
    • 提供的接口是同步的,这提供了一种比使用异步套接字更简单的编程模型。
    • 代码不依赖于 MFC 套接字类。这些类存在一些缺点,其中一个缺点在使用 NT 服务时会导致问题。
    • 代码可以在控制台应用程序中毫无问题地使用(同样,MFC 套接字类的情况并非如此)。
    • 可以通过主类方法设置连接的可配置超时。


    用法

    • 代码内部使用了作者的另一个类,即CFinger。在编译CEQD之前,您还需要下载CFinger源代码并将finger cpp和h文件复制到解压缩CEQD代码的目录中。
    • 要在您的代码中使用该类,只需将eqd.cppfinger.cpp包含到您的项目中,并在需要调用该类的模块中#include eqd.h
    • 要查看类的实际运行情况,请查看模块main.cpp中main函数中的代码。
    • 您的代码需要静态或动态地包含 MFC。
    • 在调用GetQuakeData()方法之前,您需要安装并正确初始化一个功能正常的Winsock堆栈。根据您的应用程序,这将涉及在应用程序启动时调用WSAStartup()AfxSocketInit()
    • 您还需要在预编译头文件中包含afxpriv.hwinsock.hafxsock.h。该代码在GUI或控制台应用程序中都能正常工作。该代码也应该在多线程应用程序中工作,尽管尚未在此场景中进行显式测试。


    API 参考

    该API包含类CQuakeData和CEQD类的单个公有成员函数GetQuakeData

    CQuakeData
    CEQD::GetQuakeData


    class CQuakeData
    {
       enum MagnitudeType
       {
          Ml,
          Lg,
          Md,
          Mb,
          Ms,
          Mw,
       }
    
       enum LocationQuality
    { A, B, C, D, U, } SYSTEMTIME m_Time; float m_Latitude; float m_Longitude; float m_Depth; MagnitudeType m_MagType; float m_Magnitude; LocationQuality m_Quality; CString m_sComments; };


    成员

    m_Time
    地震发生时的协调世界时。

    m_Latitude
    震中的地理纬度。赤道以北为正,赤道以南为负。

    m_Longitude
    震中的地理经度。格林尼治本初子午线以东为正,子午线以西为负。

    m_Depth
    震中低于海平面的深度(公里)。

    m_MagType
    m_Magnitude中报告的震级类型的枚举。此成员是以下枚举之一:
    • Ml:原始里氏震级
    • Lg:局部或区域震级
    • Md:持续波
    • Mb:体波
    • Ms:面波
    • Mw:矩震级

    m_Magnitude
    里氏震级的地震实际震级。

    m_Quality
    位置确定质量的枚举。此成员是以下枚举之一:
    • A:地震位置“良好”
    • B:地震位置“尚可”
    • C:地震位置“较差”
    • D:地震位置“较差”
    • U:尚未确定地震位置质量

    m_sComments
    这是一个文本描述,通常是地震的位置。

    CQuakeData类表示从CEQD::GetQuakeData()返回的与单个地震相关的数据。


    CEQD::GetQuakeData

    BOOL CEQD::GetQuakeData(CArray<CQuakeData, CQuakeData&>& data, DWORD dwTimeout = 500);

    返回值
    如果函数成功,则返回值为TRUE。如果函数失败,则返回值为FALSE。要获取扩展的错误信息,请调用::GetLastError()

    参数

    • data -- 成功返回后,这将包含一个CQuakeData实例数组,这些实例代表所有最近发生的地震。
    • dwTimeout -- 用于套接字连接的超时值(毫秒)。

    备注
    调用此成员函数以执行地震数据的实际检索。



    联系作者

    PJ Naughter
    电子邮件: pjn@indigo..ie
    网站:http://www.naughter.com
    1999年10月18日


    © . All rights reserved.