Exemplo n.º 1
0
static int		recv_idlist	(CalcHandle* handle, uint8_t* id)
{
	int ret;

	ret = nsp_session_open(handle, NSP_SID_DEV_INFOS);
	if (!ret)
	{
		ret = nsp_cmd_s_dev_infos(handle, NSP_CMD_DI_VERSION);
		if (!ret)
		{
			uint32_t size;
			uint8_t cmd, *data;

			ret = nsp_cmd_r_dev_infos(handle, &cmd, &size, &data);
			if (!ret)
			{
				strncpy((char *)id, (char*)(data + 82), 28);
				id[28] = 0;
				g_free(data);
			}
		}

		DO_CLOSE_SESSION(handle);
	}

	return ret;
}
Exemplo n.º 2
0
static int		get_memfree	(CalcHandle* handle, uint32_t* ram, uint32_t* flash)
{
	uint32_t size;
	uint8_t cmd, *data;
	//int i;

	TRYF(nsp_session_open(handle, SID_DEV_INFOS));

	TRYF(nsp_cmd_s_dev_infos(handle, CMD_DI_VERSION));
	TRYF(nsp_cmd_r_dev_infos(handle, &cmd, &size, &data));

	//i = 0;
	//*flash = (uint32_t)GUINT64_FROM_BE(*((uint64_t *)(data + i)));
	*flash = (  (((uint32_t)data[4]) << 24)
	          | (((uint32_t)data[5]) << 16)
	          | (((uint32_t)data[6]) <<  8)
	          | (((uint32_t)data[7])      ));

	//i = 16;
	//*ram = (uint32_t)GUINT64_FROM_BE(*((uint64_t *)(data + i)));
	*ram = (  (((uint32_t)data[20]) << 24)
	        | (((uint32_t)data[21]) << 16)
	        | (((uint32_t)data[22]) <<  8)
	        | (((uint32_t)data[23])      ));

	g_free(data);
	TRYF(nsp_session_close(handle));

	return 0;
}
Exemplo n.º 3
0
static int		recv_idlist	(CalcHandle* handle, uint8_t* id)
{
	uint32_t size;
	uint8_t cmd, *data;

	TRYF(nsp_session_open(handle, SID_DEV_INFOS));

	TRYF(nsp_cmd_s_dev_infos(handle, CMD_DI_VERSION));
	TRYF(nsp_cmd_r_dev_infos(handle, &cmd, &size, &data));

	strncpy((char *)id, (char*)(data + 82), 28);

	g_free(data);
	TRYF(nsp_session_close(handle));

	return 0;
}
Exemplo n.º 4
0
static int		get_memfree	(CalcHandle* handle, uint32_t* ram, uint32_t* flash)
{
	int ret;

	ret = nsp_session_open(handle, NSP_SID_DEV_INFOS);
	if (!ret)
	{
		ret = nsp_cmd_s_dev_infos(handle, NSP_CMD_DI_VERSION);
		if (!ret)
		{
			uint32_t size;
			uint8_t cmd, *data;

			ret = nsp_cmd_r_dev_infos(handle, &cmd, &size, &data);
			if (!ret)
			{
				*flash = (  (((uint32_t)data[4]) << 24)
				          | (((uint32_t)data[5]) << 16)
				          | (((uint32_t)data[6]) <<  8)
				          | (((uint32_t)data[7])      ));

				*ram = (  (((uint32_t)data[20]) << 24)
				        | (((uint32_t)data[21]) << 16)
				        | (((uint32_t)data[22]) <<  8)
				        | (((uint32_t)data[23])      ));

				g_free(data);

			}
		}

		DO_CLOSE_SESSION(handle);
	}

	return ret;
}
Exemplo n.º 5
0
static int		get_version	(CalcHandle* handle, CalcInfos* infos)
{
	int ret;

	ret = nsp_session_open(handle, NSP_SID_DEV_INFOS);
	if (ret)
	{
		return ret;
	}

	do
	{
		uint32_t size;
		uint8_t cmd, *data;

		ret = nsp_cmd_s_dev_infos(handle, NSP_CMD_DI_MODEL);
		if (ret)
		{
			break;
		}
		ret = nsp_cmd_r_dev_infos(handle, &cmd, &size, &data);
		if (ret)
		{
			break;
		}

		ticalcs_strlcpy(infos->product_name, (char *)data, sizeof(infos->product_name));
		infos->mask = INFOS_PRODUCT_NAME;

		g_free(data);

		ret = nsp_cmd_s_dev_infos(handle, NSP_CMD_DI_VERSION);
		if (ret)
		{
			break;
		}
		ret = nsp_cmd_r_dev_infos(handle, &cmd, &size, &data);
		if (ret)
		{
			break;
		}

		infos->model = CALC_NSPIRE;

		infos->flash_free = (  (((uint64_t)data[ 0]) << 56)
		                     | (((uint64_t)data[ 1]) << 48)
		                     | (((uint64_t)data[ 2]) << 40)
		                     | (((uint64_t)data[ 3]) << 32)
		                     | (((uint64_t)data[ 4]) << 24)
		                     | (((uint64_t)data[ 5]) << 16)
		                     | (((uint64_t)data[ 6]) <<  8)
		                     | (((uint64_t)data[ 7])      ));
		infos->mask |= INFOS_FLASH_FREE;

		infos->flash_phys = (  (((uint64_t)data[ 8]) << 56)
		                     | (((uint64_t)data[ 9]) << 48)
		                     | (((uint64_t)data[10]) << 40)
		                     | (((uint64_t)data[11]) << 32)
		                     | (((uint64_t)data[12]) << 24)
		                     | (((uint64_t)data[13]) << 16)
		                     | (((uint64_t)data[14]) <<  8)
		                     | (((uint64_t)data[15])      ));
		infos->mask |= INFOS_FLASH_PHYS;

		infos->ram_free = (  (((uint64_t)data[16]) << 56)
		                   | (((uint64_t)data[17]) << 48)
		                   | (((uint64_t)data[18]) << 40)
		                   | (((uint64_t)data[19]) << 32)
		                   | (((uint64_t)data[20]) << 24)
		                   | (((uint64_t)data[21]) << 16)
		                   | (((uint64_t)data[22]) <<  8)
		                   | (((uint64_t)data[23])      ));
		infos->mask |= INFOS_RAM_FREE;

		infos->ram_phys = (  (((uint64_t)data[24]) << 56)
		                   | (((uint64_t)data[25]) << 48)
		                   | (((uint64_t)data[26]) << 40)
		                   | (((uint64_t)data[27]) << 32)
		                   | (((uint64_t)data[28]) << 24)
		                   | (((uint64_t)data[29]) << 16)
		                   | (((uint64_t)data[30]) <<  8)
		                   | (((uint64_t)data[31])      ));
		infos->mask |= INFOS_RAM_PHYS;

		infos->battery = (data[32] == 0x01) ? 0 : 1;
		infos->mask |= INFOS_BATTERY;

		infos->clock_speed = data[35];
		infos->mask |= INFOS_CLOCK_SPEED;

		ticalcs_slprintf(infos->os_version, sizeof(infos->os_version), "%1i.%1i.%04i", data[36], data[37], (((int)data[38]) << 8) | data[39]);
		infos->mask |= INFOS_OS_VERSION;

		ticalcs_slprintf(infos->boot_version, sizeof(infos->boot_version), "%1i.%1i.%04i", data[40], data[41], (((int)data[42]) << 8) | data[43]);
		infos->mask |= INFOS_BOOT_VERSION;

		ticalcs_slprintf(infos->boot2_version, sizeof(infos->boot2_version), "%1i.%1i.%04i", data[44], data[45], (((int)data[46]) << 8) | data[47]);
		infos->mask |= INFOS_BOOT2_VERSION;

		infos->hw_version = (  (((uint32_t)data[48]) << 24)
		                     | (((uint32_t)data[49]) << 16)
		                     | (((uint32_t)data[50]) <<  8)
		                     | (((uint32_t)data[51])      ));
		infos->mask |= INFOS_HW_VERSION;

		infos->run_level = data[53];
		infos->mask |= INFOS_RUN_LEVEL;

		infos->lcd_width = (  (((uint16_t)data[58]) << 8)
		                    | (((uint16_t)data[59])     ));
		infos->mask |= INFOS_LCD_WIDTH;

		infos->lcd_height = (  (((uint16_t)data[60]) << 8)
		                     | (((uint16_t)data[61])     ));
		infos->mask |= INFOS_LCD_HEIGHT;

		infos->bits_per_pixel = data[62];
		infos->mask |= INFOS_BPP;

		infos->device_type = data[64];
		infos->mask |= INFOS_DEVICE_TYPE;

		memset(infos->main_calc_id, 0, sizeof(infos->main_calc_id));
		strncpy(infos->main_calc_id, (char*)(data + 82), 28);
		infos->mask |= INFOS_MAIN_CALC_ID;
		memset(infos->product_id, 0, sizeof(infos->product_id));
		strncpy(infos->product_id, (char*)(data + 82), 28);
		infos->mask |= INFOS_PRODUCT_ID;

		g_free(data);
	} while (0);

	DO_CLOSE_SESSION(handle);

	return ret;
}
Exemplo n.º 6
0
static int		get_version	(CalcHandle* handle, CalcInfos* infos)
{
	uint32_t size;
	uint8_t cmd, *data;
	//int i;

	TRYF(nsp_session_open(handle, SID_DEV_INFOS));

	TRYF(nsp_cmd_s_dev_infos(handle, CMD_DI_MODEL));
	TRYF(nsp_cmd_r_dev_infos(handle, &cmd, &size, &data));

	strcpy(infos->product_name, (char*)data);
	infos->mask |= INFOS_PRODUCT_NAME;

	TRYF(nsp_cmd_s_dev_infos(handle, CMD_DI_VERSION));
	TRYF(nsp_cmd_r_dev_infos(handle, &cmd, &size, &data));

	infos->model = CALC_NSPIRE;

	//i = 0;
	//infos->flash_free = GUINT64_FROM_BE(*((uint64_t *)(data + i)));
	infos->flash_free = (  (((uint64_t)data[ 0]) << 56)
	                     | (((uint64_t)data[ 1]) << 48)
	                     | (((uint64_t)data[ 2]) << 40)
	                     | (((uint64_t)data[ 3]) << 32)
	                     | (((uint64_t)data[ 4]) << 24)
	                     | (((uint64_t)data[ 5]) << 16)
	                     | (((uint64_t)data[ 6]) <<  8)
	                     | (((uint64_t)data[ 7])      ));
	infos->mask |= INFOS_FLASH_FREE;

	//i = 8;
	//infos->flash_phys = GUINT64_FROM_BE(*((uint64_t *)(data + i)));
	infos->flash_phys = (  (((uint64_t)data[ 8]) << 56)
	                     | (((uint64_t)data[ 9]) << 48)
	                     | (((uint64_t)data[10]) << 40)
	                     | (((uint64_t)data[11]) << 32)
	                     | (((uint64_t)data[12]) << 24)
	                     | (((uint64_t)data[13]) << 16)
	                     | (((uint64_t)data[14]) <<  8)
	                     | (((uint64_t)data[15])      ));
	infos->mask |= INFOS_FLASH_PHYS;

	//i = 16;
	//infos->ram_free = GUINT64_FROM_BE(*((uint64_t *)(data + i)));
	infos->ram_free = (  (((uint64_t)data[16]) << 56)
	                   | (((uint64_t)data[17]) << 48)
	                   | (((uint64_t)data[18]) << 40)
	                   | (((uint64_t)data[19]) << 32)
	                   | (((uint64_t)data[20]) << 24)
	                   | (((uint64_t)data[21]) << 16)
	                   | (((uint64_t)data[22]) <<  8)
	                   | (((uint64_t)data[23])      ));
	infos->mask |= INFOS_RAM_FREE;

	//i = 24;
	//infos->ram_phys = GUINT64_FROM_BE(*((uint64_t *)(data + i)));
	infos->ram_phys = (  (((uint64_t)data[24]) << 56)
	                   | (((uint64_t)data[25]) << 48)
	                   | (((uint64_t)data[26]) << 40)
	                   | (((uint64_t)data[27]) << 32)
	                   | (((uint64_t)data[28]) << 24)
	                   | (((uint64_t)data[29]) << 16)
	                   | (((uint64_t)data[30]) <<  8)
	                   | (((uint64_t)data[31])      ));
	infos->mask |= INFOS_RAM_PHYS;

	//i = 32;
	infos->battery = (data[32] == 0x01) ? 0 : 1;
	infos->mask |= INFOS_BATTERY;

	//i = 35;
	infos->clock_speed = data[35];
	infos->mask |= INFOS_CLOCK_SPEED;

	//i = 36;
	g_snprintf(infos->os_version, sizeof(infos->os_version), "%1i.%1i.%04i",
		data[36], data[37], (data[38] << 8) | data[39]);
	infos->mask |= INFOS_OS_VERSION;

	//i = 40;
	g_snprintf(infos->boot_version, sizeof(infos->boot_version), "%1i.%1i.%04i",
		data[40], data[41], (data[42] << 8) | data[43]);
	infos->mask |= INFOS_BOOT_VERSION;

	//i = 44;
	g_snprintf(infos->boot2_version, sizeof(infos->boot2_version), "%1i.%1i.%04i",
		data[44], data[45], (data[46] << 8) | data[47]);
	infos->mask |= INFOS_BOOT2_VERSION;

	//i = 48;
	//infos->hw_version = GUINT32_FROM_BE(*((uint32_t *)(data + i)));
	infos->hw_version = (  (((uint32_t)data[48]) << 24)
	                     | (((uint32_t)data[49]) << 16)
	                     | (((uint32_t)data[50]) <<  8)
	                     | (((uint32_t)data[51])      ));
	infos->mask |= INFOS_HW_VERSION;

	//i = 52;
	//infos->run_level = (uint8_t)GUINT16_FROM_BE(*((uint16_t *)(data + i)));
	infos->run_level = data[53];
	infos->mask |= INFOS_RUN_LEVEL;

	//i = 58;
	//infos->lcd_width = GUINT16_FROM_BE(*((uint16_t *)(data + i)));
	infos->lcd_width = (  (((uint16_t)data[58]) << 8)
	                    | (((uint16_t)data[59])     ));
	infos->mask |= INFOS_LCD_WIDTH;

	//i = 60;
	//infos->lcd_height = GUINT16_FROM_BE(*((uint16_t *)(data + i)));
	infos->lcd_height = (  (((uint16_t)data[60]) << 8)
	                     | (((uint16_t)data[61])     ));
	infos->mask |= INFOS_LCD_HEIGHT;

	//i = 62;
	infos->bits_per_pixel = data[62];
	infos->mask |= INFOS_BPP;

	//i = 64;
	infos->device_type = data[64];
	infos->mask |= INFOS_DEVICE_TYPE;

	memset(infos->main_calc_id, 0, sizeof(infos->main_calc_id));
	strncpy(infos->main_calc_id, (char*)(data + 82), 28);
	infos->mask |= INFOS_MAIN_CALC_ID;
	memset(infos->product_id, 0, sizeof(infos->product_id));
	strncpy(infos->product_id, (char*)(data + 82), 28);
	infos->mask |= INFOS_PRODUCT_ID;

	g_free(data);
	TRYF(nsp_session_close(handle));

	return 0;
}