]> rtime.felk.cvut.cz Git - linux-lin.git/blobdiff - lin_config/src/pcl_config.c
lin_config: Basic sllin frame cache configuration
[linux-lin.git] / lin_config / src / pcl_config.c
index 61e07e281263d12ba6631302fbc57588f3fd03e3..1b313e8902dcefb0b54b2af426e62e795c51aa23 100644 (file)
@@ -206,7 +206,7 @@ void pcl_set_slave_id_and_data_configuration(int tty, struct linc_lin_state *lin
        for (i = 0; i < 0x3F; i++) {
                int len;
 
-               if (linc_lin_state->frame_entry[i].status == PCL_ACTIVE) {
+               if (linc_lin_state->frame_entry[i].status == 1) { /* Is Active */
                        pkt.stx = PCL_STX;
                        pkt.seq_no = 0x0;
                        pkt.seq_frlen = linc_lin_state->frame_entry[i].data_len + 2;
@@ -320,8 +320,8 @@ int pcl_lin_init(int tty, struct linc_lin_state *linc_lin_state)
        pkt.seq_frlen = 0x2;
        pkt.ctrl_tiface = PCL_PACKET_LIN_IFACE;
        pkt.ctrl_comc = 0x1F;
-       pkt.parms[0] = 0x00;
-       pkt.parms[1] = 0x4B; /* 19200 kBit/s */
+       pkt.parms[0] = linc_lin_state->baudrate & 0xFF;
+       pkt.parms[1] = (linc_lin_state->baudrate >> 8) & 0xFF;
 
        pcl_send_frame(tty, &pkt);
        pcl_read_response(tty);
@@ -420,7 +420,7 @@ int pcl_lin_init(int tty, struct linc_lin_state *linc_lin_state)
        return 0;
 }
 
-int pcl_config(struct linc_lin_state *linc_lin_state, unsigned int flags)
+int pcl_config(struct linc_lin_state *linc_lin_state)
 {
        int tty;
 
@@ -433,22 +433,24 @@ int pcl_config(struct linc_lin_state *linc_lin_state, unsigned int flags)
        pcl_set_input_mode(tty);
 
 
-       if (flags & RESET_DEVICE_fl) {
+       if (linc_lin_state->flags & RESET_DEVICE_fl) {
                pcl_reset_device(tty);
                        return 0;
        }
 
        pcl_lin_init(tty, linc_lin_state);
 
-       if (flags & FLASH_CONF_fl) {
+       if (linc_lin_state->flags & FLASH_CONF_fl) {
                pcl_flash_config(tty);
                pcl_reset_device(tty);
        }
 
+       // FIXME add warning on unrecognized flags
+       //if (flags & (RESET_DEVICE_fl | FLASH_CONF_fl))
+
        pcl_reset_input_mode(tty);
        close(tty);
 
-       return 0;
+       return LIN_EXIT_OK;
 }
 
-