view simtool/lndwrite.c @ 47:b0cf75d0bb2d

doc/Serial-SIM-readers article written
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 Mar 2021 04:32:18 +0000
parents ddd767f6e15b
children
line wrap: on
line source

/*
 * This module implements lnd-write and lnd-erase commands.
 */

#include <sys/types.h>
#include <string.h>
#include <strings.h>
#include <stdio.h>
#include <stdlib.h>
#include "curfile.h"

cmd_lnd_write(argc, argv)
	char **argv;
{
	int rc;
	u_char record[255], *fixp;

	rc = select_ef_lnd();
	if (rc < 0)
		return(rc);
	memset(record, 0xFF, curfile_record_len);
	fixp = record + curfile_record_len - 14;
	rc = encode_phone_number_arg(argv[1], fixp, 0);
	if (rc < 0)
		return(rc);
	if (argv[2]) {
		rc = qstring_arg_to_gsm7(argv[2], record,
					 curfile_record_len - 14);
		if (rc < 0)
			return(rc);
	}
	return update_rec_op(0, 0x03, record, curfile_record_len);
}

cmd_lnd_erase(argc, argv)
	char **argv;
{
	int rc;
	u_char record[255];
	unsigned count;

	rc = select_ef_lnd();
	if (rc < 0)
		return(rc);
	memset(record, 0xFF, curfile_record_len);
	for (count = 0; count < curfile_record_count; count++) {
		rc = update_rec_op(0, 0x03, record, curfile_record_len);
		if (rc < 0)
			return(rc);
	}
	return(0);
}