Browse Source

Z991239-527 #comment feature: 添加对GPS的测试案例和注释说明

gifur 5 năm trước cách đây
mục cha
commit
57f53b3815
3 tập tin đã thay đổi với 36 bổ sung2 xóa
  1. 3 1
      Common/SpBase.h
  2. 0 1
      spbase/SpMisc.cpp
  3. 33 0
      spbase/test/SpBaseMiscTest.cpp

+ 3 - 1
Common/SpBase.h

@@ -319,7 +319,7 @@ public:
 };
 
 /** for GPS, for longitude, east is +, west is -, for latitude, north is +, south is - */
-/*   e.g. N22:33:09 convert to float is 22. 5525 */
+/*   e.g. N22:33:09 convert to float is 22.5525 */
 class SPBASE_API CSphereVector
 {
 private:
@@ -330,7 +330,9 @@ public:
 	inline float GetLatitude(){return m_fLatitude;}
 	inline CSphereVector(float fLongitude,float fLatitude):m_fLongitude(fLongitude),m_fLatitude(fLatitude){}
 	inline CSphereVector() : m_fLatitude(0), m_fLongitude(0) {}
+	/*将浮点型的经度转成度分秒表示法,第4个字节表示经度方向,负浮点数表示西部,返回'W',正浮点数表示东部,返回 'E'*/
 	void GetBinaryLongitude(BYTE longitude[4]);
+	/*将浮点型的纬度转成度分秒表示法,第4个字节表示纬度方向,负浮点数表示南部,返回'S',正浮点数表示北部,返回 'N'*/
 	void GetBinaryLatitude(BYTE latitude[4]);
 };
 

+ 0 - 1
spbase/SpMisc.cpp

@@ -165,7 +165,6 @@ CUUID CUUID::Create(const CUUID &LastUUID)
 /// CSphereVector
 /////////////////////////////////////////////////////////////////////////////////////////////////////
 
-// 将float转成度分秒表示法,第4个字节表示经度或纬度方向
 void CSphereVector::GetBinaryLongitude(BYTE longitude[4])
 {
 	float fTemp = m_fLongitude;

+ 33 - 0
spbase/test/SpBaseMiscTest.cpp

@@ -60,3 +60,36 @@ TEST(SpCommTest, MachineTypeTest)
 	ASSERT_STREQ("Unkown", SP::MachineFormat::Type2Str(SP::MachineFormat::RVC_UNKNOWN));
 }
 
+TEST(SpBaseTest, CSphereVectorTest)
+{
+	CSphereVector  gps(22.5525f, 22.5525f);
+	EXPECT_TRUE(gps.GetLongitude() == 22.5525f);
+	EXPECT_TRUE(gps.GetLatitude() == 22.5525f);
+
+	BYTE longitude[4] = {0};
+	BYTE latitude[4] = {0};
+
+	gps.GetBinaryLongitude(longitude);
+	gps.GetBinaryLatitude(latitude);
+
+	EXPECT_TRUE((int)longitude[0] == 22);
+	EXPECT_TRUE((int)longitude[1] == 33);
+	EXPECT_TRUE((int)longitude[2] == 9);
+	EXPECT_TRUE((int)longitude[3] == (int)('E'));
+
+	EXPECT_TRUE((int)latitude[0] == 22);
+	EXPECT_TRUE((int)latitude[1] == 33);
+	EXPECT_TRUE((int)latitude[2] == 9);
+	EXPECT_TRUE((int)latitude[3] == (int)('N'));
+
+	std::cout << "Longtitude: " << (int)longitude[0] << ":" << (int)longitude[1] << ":" << (int)longitude[2] << longitude[3] << "\n";
+	std::cout << "Latitude: " << (int)latitude[0] << ":" << (int)latitude[1] << ":" << (int)latitude[2] << latitude[3] << "\n";
+}
+
+int main(int argc, char** argv)
+{
+	printf("Running main() from %s\n", __FILE__);
+	testing::InitGoogleTest(&argc, argv);
+	return RUN_ALL_TESTS();
+}
+