private void button1_Click(object sender, EventArgs e) { if (_camera == IntPtr.Zero) { return; } // Zone Setting var selectedItem = comboBox1.SelectedIndex; uint timeZone = (uint)_desc.PropDesc[selectedItem]; if (_timeZone != timeZone) { uint err = EDSDKLib.EDSDK.EdsSetPropertyData(_camera, EDSDKLib.EDSDK.PropID_TimeZone, 0, sizeof(uint), timeZone); } _timeZone = timeZone; // Date / Time : (ex : 2019/09/12 09:11) string localTime = this.textBox1.Text; if (_localTime != localTime) { DateTime dateTime; DateTimeStyles dts = DateTimeStyles.None; var culture = new System.Globalization.CultureInfo("ja-JP"); string format = "yyyy/MM/dd HH:mm"; if (DateTime.TryParseExact(localTime, format, culture, dts, out dateTime)) { // Time difference consideration short timeDiff = (short)(_timeZone & 0x0000ffff); TimeSpan timeSpan = new TimeSpan(0, Convert.ToInt32(this.checkBox1.Checked), timeDiff, 0); dateTime = dateTime.Subtract(timeSpan); EDSDKLib.EDSDK.EdsTime edsDateTime = DateTime2EdsTime(dateTime); uint err = EDSDKLib.EDSDK.EdsSetPropertyData(_camera, EDSDKLib.EDSDK.PropID_UTCTime, 0, Marshal.SizeOf(typeof(EDSDKLib.EDSDK.EdsTime)), edsDateTime); } else { MessageBox.Show("Enter in the \"yyyy/MM/DD HH:mm\" format."); this.DialogResult = DialogResult.None; } } // Daylight Saving Time if (_summerTimeSetting != this.checkBox1.Checked) { uint err = EDSDKLib.EDSDK.EdsSetPropertyData(_camera, EDSDKLib.EDSDK.PropID_SummerTimeSetting, 0, sizeof(uint), Convert.ToUInt32(this.checkBox1.Checked)); } }
private string EdsTime2StrTime(EDSDKLib.EDSDK.EdsTime edsTime) { string strTime = (edsTime.Year).ToString("D4") + "/" + edsTime.Month.ToString("D2") + "/" + edsTime.Day.ToString("D2") + " " + edsTime.Hour.ToString("D2") + ":" + edsTime.Minute.ToString("D2"); return(strTime); }
private DateTime EdsTime2DateTime(EDSDKLib.EDSDK.EdsTime edsTime) { DateTime dateTime = new DateTime(edsTime.Year, edsTime.Month, edsTime.Day, edsTime.Hour, edsTime.Minute, edsTime.Second, edsTime.Milliseconds); return(dateTime); }
public DateTimeZoneSetting(ref CameraController controller) { map.Add(0x00000000, "None"); map.Add(0x00000001, "Chatham Islands"); map.Add(0x00000002, "Wellington"); map.Add(0x00000003, "Solomon Islands"); map.Add(0x00000004, "Sydney"); map.Add(0x00000005, "Adelaide"); map.Add(0x00000006, "Tokyo"); map.Add(0x00000007, "Hong Kong"); map.Add(0x00000008, "Bangkok"); map.Add(0x00000009, "Yangon"); map.Add(0x0000000A, "Dhaka"); map.Add(0x0000000B, "Kathmandu"); map.Add(0x0000000C, "Delhi"); map.Add(0x0000000D, "Karachi"); map.Add(0x0000000E, "Kabul"); map.Add(0x0000000F, "Dubai"); map.Add(0x00000010, "Tehran"); map.Add(0x00000011, "Moscow"); map.Add(0x00000012, "Cairo"); map.Add(0x00000013, "Paris"); map.Add(0x00000014, "London"); map.Add(0x00000015, "Azores"); map.Add(0x00000016, "Fernando"); map.Add(0x00000017, "Sao Paulo"); map.Add(0x00000018, "Newfoundland"); map.Add(0x00000019, "Santiago"); map.Add(0x0000001A, "Caracas"); map.Add(0x0000001B, "New York"); map.Add(0x0000001C, "Chicago"); map.Add(0x0000001D, "Denver"); map.Add(0x0000001E, "Los Angeles"); map.Add(0x0000001F, "Anchorage"); map.Add(0x00000020, "Honolulu"); map.Add(0x00000021, "Samoa"); map.Add(0x00000022, "Riyadh"); map.Add(0x00000023, "Manaus"); map.Add(0x00000100, "UTC"); map.Add(0xffffffff, "unknown"); _controller = controller; _camera = _controller.GetModel().Camera; InitializeComponent(); // Date / Time EDSDKLib.EDSDK.EdsTime utcTime = default(EDSDKLib.EDSDK.EdsTime); if (_camera != IntPtr.Zero) { uint err = EDSDKLib.EDSDK.EdsGetPropertyData(_camera, EDSDKLib.EDSDK.PropID_UTCTime, 0, out utcTime); // Zone Setting err = EDSDKLib.EDSDK.EdsGetPropertyData(_camera, EDSDKLib.EDSDK.PropID_TimeZone, 0, out _timeZone); _desc = new EDSDKLib.EDSDK.EdsPropertyDesc(); err = EDSDKLib.EDSDK.EdsGetPropertyDesc(_camera, EDSDKLib.EDSDK.PropID_TimeZone, out _desc); this.comboBox1.Items.Clear(); for (int i = 0; i < _desc.NumElements; i++) { string outString; bool isGet = map.TryGetValue((uint)_desc.PropDesc[i] >> 16, out outString); if (isGet && !outString.Equals("unknown")) { // Create list of combo box comboBox1.Items.Add(outString); if (_timeZone == _desc.PropDesc[i]) { // Select item of combo box comboBox1.SelectedIndex = i; _timeZone = (uint)_desc.PropDesc[i]; _timeZonePrev = _timeZone; } } } // Daylight Saving Time uint summerTimeSetting; err = EDSDKLib.EDSDK.EdsGetPropertyData(_camera, EDSDKLib.EDSDK.PropID_SummerTimeSetting, 0, out summerTimeSetting); if (summerTimeSetting == 0x01) { this.checkBox1.Checked = true; } _summerTimeSetting = this.checkBox1.Checked; _summerTimeSettingPrev = _summerTimeSetting; // Time difference consideration DateTime dateTime = EdsTime2DateTime(utcTime); short timeDiff = (short)(_timeZone & 0x0000ffff); TimeSpan timeSpan = new TimeSpan(0, Convert.ToInt32(this.checkBox1.Checked), timeDiff, 0); dateTime = dateTime.Add(timeSpan); utcTime = DateTime2EdsTime(dateTime); _localTime = EdsTime2StrTime(utcTime); _localTimePrev = _localTime; this.textBox1.Text = _localTime; } }