kopia lustrzana https://gitlab.com/sane-project/backends
				
				
				
			start of motor improvements for G4050
							rodzic
							
								
									d67dac228b
								
							
						
					
					
						commit
						71f1fc1115
					
				| 
						 | 
				
			
			@ -460,13 +460,27 @@ gl843_test_motor_flag_bit (SANE_Byte val)
 | 
			
		|||
  return SANE_FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static uint16_t *get_motor_profile(int motor_type, int exposure)
 | 
			
		||||
{
 | 
			
		||||
  switch(motor_type)
 | 
			
		||||
    {
 | 
			
		||||
    case MOTOR_G4050:
 | 
			
		||||
      return g4050_profile;
 | 
			
		||||
    case MOTOR_KVSS080:
 | 
			
		||||
      return kvss080_profile;
 | 
			
		||||
    default:
 | 
			
		||||
      return kvss080_profile;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int gl843_slope_table(uint16_t *slope,
 | 
			
		||||
		             int       *steps,
 | 
			
		||||
			     int       dpi,
 | 
			
		||||
			     int       exposure,
 | 
			
		||||
			     int       base_dpi,
 | 
			
		||||
			     int       step_type,
 | 
			
		||||
			     int       factor)
 | 
			
		||||
			     int       factor,
 | 
			
		||||
                             int       motor_type)
 | 
			
		||||
{
 | 
			
		||||
int sum, i;
 | 
			
		||||
uint16_t target, *profile;
 | 
			
		||||
| 
						 | 
				
			
			@ -479,7 +493,7 @@ uint16_t target, *profile;
 | 
			
		|||
          slope[i]=target;
 | 
			
		||||
 | 
			
		||||
        /* TODO choose profile to use per motor type, for now only one */
 | 
			
		||||
        profile=kvss080_profile;
 | 
			
		||||
        profile=get_motor_profile(motor_type,exposure);
 | 
			
		||||
 | 
			
		||||
	/* use profile to build table */
 | 
			
		||||
	sum=0;
 | 
			
		||||
| 
						 | 
				
			
			@ -943,7 +957,8 @@ gl843_init_motor_regs_scan (Genesys_Device * dev,
 | 
			
		|||
                              scan_exposure_time,
 | 
			
		||||
                              dev->motor.base_ydpi,
 | 
			
		||||
                              scan_step_type,
 | 
			
		||||
                              factor);
 | 
			
		||||
                              factor,
 | 
			
		||||
                              dev->model->motor_type);
 | 
			
		||||
  RIE(gl843_send_slope_table (dev, SCAN_TABLE, scan_table, scan_steps));
 | 
			
		||||
  RIE(gl843_send_slope_table (dev, BACKTRACK_TABLE, scan_table, scan_steps));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -960,7 +975,8 @@ gl843_init_motor_regs_scan (Genesys_Device * dev,
 | 
			
		|||
                              scan_exposure_time,
 | 
			
		||||
                              dev->motor.base_ydpi,
 | 
			
		||||
                              scan_step_type,
 | 
			
		||||
                              factor);
 | 
			
		||||
                              factor,
 | 
			
		||||
                              dev->model->motor_type);
 | 
			
		||||
  RIE(gl843_send_slope_table (dev, STOP_TABLE, fast_table, fast_steps));
 | 
			
		||||
  RIE(gl843_send_slope_table (dev, FAST_TABLE, fast_table, fast_steps));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1104,6 +1120,12 @@ gl843_init_optical_regs_scan (Genesys_Device * dev,
 | 
			
		|||
  r = sanei_genesys_get_address (reg, REG18);
 | 
			
		||||
  cksel= (r->value & REG18_CKSEL)+1;
 | 
			
		||||
 | 
			
		||||
  /* XXX STEF XXX visible colors are on the left side of the sensor */
 | 
			
		||||
  if (dev->model->ccd_type == CCD_G4050)
 | 
			
		||||
    {
 | 
			
		||||
      cksel*=2;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  DBG (DBG_io2, "%s: cksel=%d\n", __FUNCTION__, cksel);
 | 
			
		||||
  dpiset = used_res * cksel;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2229,7 +2251,7 @@ gl843_end_scan (Genesys_Device * dev, Genesys_Register_Set * reg,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Moves the slider to the home (top) postion slowly */
 | 
			
		||||
/* Moves the slider to the home (top) position slowly */
 | 
			
		||||
#ifndef UNIT_TESTING
 | 
			
		||||
static
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -511,4 +511,8 @@ static Gpio_layout gpios[]={
 | 
			
		|||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * database of motor profile
 | 
			
		||||
 */
 | 
			
		||||
static uint16_t kvss080_profile[]={44444, 34188, 32520, 29630, 26666, 24242, 22222, 19048, 16666, 15686, 14814, 14034, 12402, 11110, 8888, 7618, 6666, 5926, 5228, 4678, 4172, 3682, 3336, 3074, 2866, 2702, 2566, 2450, 2352, 2266, 2188, 2118, 2056, 2002, 1950, 1904, 1860, 1820, 1784, 1748, 1716, 1684, 1656, 1628, 1600, 1576, 1552, 1528, 1506, 1486, 1466, 1446, 1428, 1410, 1394, 1376, 1360, 1346, 1330, 1316, 1302, 1288, 1276, 1264, 1250, 1238, 1228, 1216, 1206, 1194, 1184, 1174, 1164, 1154, 1146, 1136, 1128, 1120, 1110, 1102, 1094, 1088, 1080, 1072, 1064, 1058, 1050, 1044, 1038, 1030, 1024, 1018, 1012, 1006, 1000, 994, 988, 984, 978, 972, 968, 962, 958, 952, 948, 942, 938, 934, 928, 924, 920, 916, 912, 908, 904, 900, 896, 892, 888, 884, 882, 878, 874, 870, 868, 864, 860, 858, 854, 850, 848, 844, 842, 838, 836, 832, 830, 826, 824, 822, 820, 816, 814, 812, 808, 806, 804, 802, 800, 796, 794, 792, 790, 788, 786, 784, 782, 778, 776, 774, 772, 770, 768, 766, 764, 762, 760, 758, 756, 754, 752, 750, 750, 748, 746, 744, 742, 740, 738, 736, 734, 734, 732, 730, 728, 726, 724, 724, 722, 720, 718, 716, 716, 714, 712, 710, 710, 708, 706, 704, 704, 702, 700, 698, 698, 696, 694, 694, 692, 690, 690, 688, 686, 686, 684, 682, 682, 680, 678, 678, 676, 674, 674, 672, 672, 670, 668, 668, 666, 666, 664, 662, 662, 660, 660, 658, 656, 656, 654, 654, 652, 652, 650, 650, 648, 646, 646, 644, 644, 642, 642, 640, 640, 638, 638, 636, 636, 636, 634, 634, 632, 632, 630, 630, 628, 628, 626, 626, 624, 624, 624, 622, 622, 620, 620, 618, 618, 618, 616, 616, 614, 614, 612, 612, 612, 610, 610, 608, 608, 608, 606, 606, 606, 604, 604, 602, 602, 602, 600, 600, 600, 598, 598, 596, 596, 596, 594, 594, 594, 592, 592, 592, 590, 590, 590, 588, 588, 588, 586, 586, 586, 584, 584, 584, 582, 582, 582, 590, 590, 590, 588, 588, 588, 586, 586, 586, 584, 584, 584, 582, 582, 582, 580, 580, 580, 578, 578, 578, 576, 576, 576, 576, 574, 574, 574, 572, 572, 572, 570, 570, 570, 568, 568, 568, 568, 566, 566, 566, 564, 564, 564, 562, 562, 562, 562, 560, 560, 560, 558, 558, 558, 558, 556, 556, 556, 554, 554, 554, 552, 552, 552, 552, 550, 550, 550, 548, 548, 548, 548, 546, 546, 546, 546, 544, 544, 544, 542, 542, 542, 542, 540, 540, 540, 538, 538, 538, 538, 536, 536, 536, 536, 534, 534, 534, 534, 532, 532, 532, 530, 530, 530, 530, 528, 528, 528, 528, 526, 526, 526, 526, 524, 524, 524, 524, 522, 522, 522, 522, 520, 520, 520, 520, 518, 518, 518, 516, 516, 516, 516, 514, 514, 514, 514, 514, 512, 512, 512, 512, 510, 510, 510, 510, 508, 508, 508, 508, 506, 506, 506, 506, 504, 504, 504, 504, 502, 502, 502, 502, 500, 500, 500, 500};
 | 
			
		||||
static uint16_t g4050_profile[]={44444, 34188, 32520, 29630, 26666, 24242, 22222, 19048, 16666, 15686, 14814, 14034, 12402, 11110, 8888, 7618, 6666, 5926, 5228, 4678, 4172, 3682, 3336, 3074, 2866, 2702, 2566, 2450, 2352, 2266, 2188, 2118, 2056, 2002, 1950, 1904, 1860, 1820, 1784, 1748, 1716, 1684, 1656, 1628, 1600, 1576, 1552, 1528, 1506, 1486, 1466, 1446, 1428, 1410, 1394, 1376, 1360, 1346, 1330, 1316, 1302, 1288, 1276, 1264, 1250, 1238, 1228, 1216, 1206, 1194, 1184, 1174, 1164, 1154, 1146, 1136, 1128, 1120, 1110, 1102, 1094, 1088, 1080, 1072, 1064, 1058, 1050, 1044, 1038, 1030, 1024, 1018, 1012, 1006, 1000, 994, 988, 984, 978, 972, 968, 962, 958, 952, 948, 942, 938, 934, 928, 924, 920, 916, 912, 908, 904, 900, 896, 892, 888, 884, 882, 878, 874, 870, 868, 864, 860, 858, 854, 850, 848, 844, 842, 838, 836, 832, 830, 826, 824, 822, 820, 816, 814, 812, 808, 806, 804, 802, 800, 796, 794, 792, 790, 788, 786, 784, 782, 778, 776, 774, 772, 770, 768, 766, 764, 762, 760, 758, 756, 754, 752, 750, 750, 748, 746, 744, 742, 740, 738, 736, 734, 734, 732, 730, 728, 726, 724, 724, 722, 720, 718, 716, 716, 714, 712, 710, 710, 708, 706, 704, 704, 702, 700, 698, 698, 696, 694, 694, 692, 690, 690, 688, 686, 686, 684, 682, 682, 680, 678, 678, 676, 674, 674, 672, 672, 670, 668, 668, 666, 666, 664, 662, 662, 660, 660, 658, 656, 656, 654, 654, 652, 652, 650, 650, 648, 646, 646, 644, 644, 642, 642, 640, 640, 638, 638, 636, 636, 636, 634, 634, 632, 632, 630, 630, 628, 628, 626, 626, 624, 624, 624, 622, 622, 620, 620, 618, 618, 618, 616, 616, 614, 614, 612, 612, 612, 610, 610, 608, 608, 608, 606, 606, 606, 604, 604, 602, 602, 602, 600, 600, 600, 598, 598, 596, 596, 596, 594, 594, 594, 592, 592, 592, 590, 590, 590, 588, 588, 588, 586, 586, 586, 584, 584, 584, 582, 582, 582, 590, 590, 590, 588, 588, 588, 586, 586, 586, 584, 584, 584, 582, 582, 582, 580, 580, 580, 578, 578, 578, 576, 576, 576, 576, 574, 574, 574, 572, 572, 572, 570, 570, 570, 568, 568, 568, 568, 566, 566, 566, 564, 564, 564, 562, 562, 562, 562, 560, 560, 560, 558, 558, 558, 558, 556, 556, 556, 554, 554, 554, 552, 552, 552, 552, 550, 550, 550, 548, 548, 548, 548, 546, 546, 546, 546, 544, 544, 544, 542, 542, 542, 542, 540, 540, 540, 538, 538, 538, 538, 536, 536, 536, 536, 534, 534, 534, 534, 532, 532, 532, 530, 530, 530, 530, 528, 528, 528, 528, 526, 526, 526, 526, 524, 524, 524, 524, 522, 522, 522, 522, 520, 520, 520, 520, 518, 518, 518, 516, 516, 516, 516, 514, 514, 514, 514, 514, 512, 512, 512, 512, 510, 510, 510, 510, 508, 508, 508, 508, 506, 506, 506, 506, 504, 504, 504, 504, 502, 502, 502, 502, 500, 500, 500, 500};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue