А вообще, тут нафиг не нужно работать со строками, преобразовывать их туда-сюда. Все тупо в структуру укладывается. Если бы еще не big endian, то совсем было бы красиво, но и так сойдет:
Код
struct GOOGLE_REQUEST_Y{
unsigned char pre[31];
unsigned long cellid;
unsigned long lac;
unsigned long operatorid;
unsigned long countrycode;
unsigned char post[8];
}send = {
{0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00},
((u_tri.ya.cellid<<24)&0xFF000000) | ((u_tri.ya.cellid<<8)&0x00FF0000) | ((u_tri.ya.cellid>>8)&0x0000FF00) | ((u_tri.ya.cellid>>24)&0x000000FF),
((u_tri.ya.lac<<24)&0xFF000000) | ((u_tri.ya.lac<<8)&0x00FF0000) | ((u_tri.ya.lac>>8)&0x0000FF00) | ((u_tri.ya.lac>>24)&0x000000FF),
((u_tri.ya.operatorid<<24)&0xFF000000) | ((u_tri.ya.operatorid<<8)&0x00FF0000) | ((u_tri.ya.operatorid>>8)&0x0000FF00) | ((u_tri.ya.operatorid>>24)&0x000000FF),
((u_tri.ya.countrycode<<24)&0xFF000000) | ((u_tri.ya.countrycode<<8)&0x00FF0000) | ((u_tri.ya.countrycode>>8)&0x0000FF00) | ((u_tri.ya.countrycode>>24)&0x000000FF),
{0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00}
};
Теперь вот столкнулся с проблемой собственно определения местоположения. Для начала тупо усреднил координаты видимых вышек и получил вполне сравнимый с яндекс-локатором результат. Даже лучче))
Но понятно, что нужно решать некую систему квадратных уравнений. У кого нибудь такое решение может имеется? поделитесь плиз.
Сообщение отредактировал kan35 - Mar 13 2013, 14:28