Fix 'delete-trx1' command of bs11_config (we can now delete TRX1)

This commit is contained in:
Harald Welte 2009-03-28 16:53:25 +00:00
parent 1047940dce
commit 273feca77f
3 changed files with 19 additions and 5 deletions

View File

@ -1,7 +1,8 @@
#ifndef _RS232_H
#define _RS232_H
int rs232_setup(const char *serial_port, unsigned int delay_ms);
int rs232_setup(const char *serial_port, unsigned int delay_ms,
struct gsm_bts *bts);
int handle_serial_msg(struct msgb *msg);

View File

@ -440,14 +440,23 @@ static int handle_state_resp(enum abis_bs11_phase state)
fprintf(stderr, "No valid Software file \"%s\"\n",
fname_software);
} else if (!strcmp(command, "delete-trx1")) {
printf("Locing BBSIG and PA objects of TRX1\n");
abis_nm_chg_adm_state(g_bts, NM_OC_BS11,
BS11_OBJ_BBSIG, 0, 1,
NM_STATE_LOCKED);
abis_nm_chg_adm_state(g_bts, NM_OC_BS11,
BS11_OBJ_PA, 0, 1,
NM_STATE_LOCKED);
sleep(1);
printf("Deleting BBSIG and PA objects of TRX1\n");
abis_nm_bs11_delete_object(g_bts, BS11_OBJ_BBSIG, 1);
abis_nm_bs11_delete_object(g_bts, BS11_OBJ_PA, 1);
sleep(5);
sleep(1);
abis_nm_bs11_factory_logon(g_bts, 0);
command = NULL;
} else if (!strcmp(command, "create-trx1")) {
create_trx1(g_bts);
sleep(5);
sleep(1);
abis_nm_bs11_factory_logon(g_bts, 0);
command = NULL;
} else if (!strcmp(command, "oml-tei")) {
@ -701,7 +710,7 @@ int main(int argc, char **argv)
}
g_bts = &gsmnet->bts[0];
rc = rs232_setup(serial_port, delay_ms);
rc = rs232_setup(serial_port, delay_ms, g_bts);
if (rc < 0) {
fprintf(stderr, "Problem setting up serial port\n");
exit(1);

View File

@ -44,6 +44,7 @@ struct serial_handle {
unsigned int rxmsg_bytes_missing;
unsigned int delay_ms;
struct gsm_bts *bts;
};
/* FIXME: this needs to go */
@ -128,6 +129,7 @@ static int handle_ser_read(struct bsc_fd *bfd)
if (!sh->rx_msg) {
sh->rx_msg = msgb_alloc(SERIAL_ALLOC_SIZE);
sh->rx_msg->l2h = NULL;
sh->rx_msg->trx = sh->bts->c0;
}
msg = sh->rx_msg;
@ -197,7 +199,8 @@ static int serial_fd_cb(struct bsc_fd *bfd, unsigned int what)
return rc;
}
int rs232_setup(const char *serial_port, unsigned int delay_ms)
int rs232_setup(const char *serial_port, unsigned int delay_ms,
struct gsm_bts *bts)
{
int rc, serial_fd;
struct termios tio;
@ -234,6 +237,7 @@ int rs232_setup(const char *serial_port, unsigned int delay_ms)
ser_handle->fd.cb = serial_fd_cb;
ser_handle->fd.data = ser_handle;
ser_handle->delay_ms = delay_ms;
ser_handle->bts = bts;
rc = bsc_register_fd(&ser_handle->fd);
if (rc < 0) {
fprintf(stderr, "could not register FD: %s\n",