⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fake.c

📁 NOKIA手机开发包
💻 C
字号:
/*  $Id: fake.c,v 1.19 2003/03/06 21:17:12 pkot Exp $  G N O K I I  A Linux/Unix toolset and driver for the mobile phones.  This file is part of gnokii.  Gnokii is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License as published by  the Free Software Foundation; either version 2 of the License, or  (at your option) any later version.  Gnokii is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.  You should have received a copy of the GNU General Public License  along with gnokii; if not, write to the Free Software  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  Copyright (C) 2002 Pavel Machek  This file provides functions for some functionality testing (eg. SMS)*/#include <string.h>#include <stdlib.h>#include <ctype.h>#include "config.h"#include "compat.h"#include "misc.h"#include "gnokii.h"#include "phones/generic.h"#include "gnokii-internal.h"/* Some globals */static gn_error fake_functions(gn_operation op, gn_data *data, struct gn_statemachine *state);gn_driver driver_fake = {	NULL,	pgen_incoming_default,	/* Mobile phone information */	{		"fake",      /* Supported models */		7,                     /* Max RF Level */		0,                     /* Min RF Level */		GN_RF_Percentage,      /* RF level units */		7,                     /* Max Battery Level */		0,                     /* Min Battery Level */		GN_BU_Percentage,      /* Battery level units */		GN_DT_DateTime,        /* Have date/time support */		GN_DT_TimeOnly,	       /* Alarm supports time only */		1,                     /* Alarms available - FIXME */		60, 96,                /* Startup logo size - 7110 is fixed at init */		21, 78,                /* Op logo size */		14, 72                 /* Caller logo size */	},	fake_functions,	NULL};/* Initialise is the only function allowed to 'use' state */static gn_error fake_initialise(struct gn_statemachine *state){	gn_data data;	char model[10];	dprintf("Initializing...\n");	/* Copy in the phone info */	memcpy(&(state->driver), &driver_fake, sizeof(gn_driver));	dprintf("Connecting\n");	/* Now test the link and get the model */	gn_data_clear(&data);	data.model = model;	return GN_ERR_NONE;}static gn_error at_sms_write(gn_data *data, struct gn_statemachine *state, char* cmd){	unsigned char req[10240], req2[5120];	int length, tmp, offset = 0;	if (!data->raw_sms) return GN_ERR_INTERNALERROR;	/* Do not fill message center so we don't have to emulate that */	offset += 0;	req2[offset + 1] = 0x01 | 0x10; /* Validity period in relative format */	if (data->raw_sms->reject_duplicates) req2[offset + 1] |= 0x04;	if (data->raw_sms->report) req2[offset + 1] |= 0x20;	if (data->raw_sms->udh_indicator) req2[offset + 1] |= 0x40;	if (data->raw_sms->reply_via_same_smsc) req2[offset + 1] |= 0x80;	req2[offset + 2] = 0x00; /* Message Reference */	tmp = data->raw_sms->remote_number[0];	if (tmp % 2) tmp++;	tmp /= 2;	memcpy(req2 + offset + 3, data->raw_sms->remote_number, tmp + 2);	offset += tmp + 1;	req2[offset + 4] = data->raw_sms->pid;	req2[offset + 5] = data->raw_sms->dcs;	req2[offset + 6] = 0x00; /* Validity period */	req2[offset + 7] = data->raw_sms->length;	memcpy(req2 + offset + 8, data->raw_sms->user_data, data->raw_sms->user_data_length);	length = data->raw_sms->user_data_length + offset + 8;	/* Length in AT mode is the length of the full message minus SMSC field length */	fprintf(stdout, "AT+%s=%d\n", cmd, length - 1);	bin2hex(req, req2, length);	req[length * 2] = 0x1a;	req[length * 2 + 1] = 0;	fprintf(stdout, "%s\n", req);	return GN_ERR_NONE;}static gn_error fake_functions(gn_operation op, gn_data *data, struct gn_statemachine *state){	switch (op) {	case GN_OP_Init:		return fake_initialise(state);	case GN_OP_Terminate:		return GN_ERR_NONE;	case GN_OP_SendSMS:		return at_sms_write(data, state, "???");	case GN_OP_GetSMSCenter:		return GN_ERR_NONE;	default:		return GN_ERR_NOTIMPLEMENTED;	}	return GN_ERR_INTERNALERROR;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -