| | |
| | | # å²èæºå°åéç¢ç©é
ç½®æä»¶ |
| | | # çææ¶é´ï¼2025-12-23T18:40:37.614553600 |
| | | # çææ¶é´ï¼2025-12-23T19:10:14.326740700 |
| | | # åæ ç³»ï¼WGS84ï¼åº¦åæ ¼å¼ï¼ |
| | | |
| | | # ============ å°ååºåç«é
ç½® ============ |
| | |
| | | #Dikuai Properties |
| | | #Tue Dec 23 18:41:03 CST 2025 |
| | | #Tue Dec 23 19:10:14 CST 2025 |
| | | LAND1.angleThreshold=-1 |
| | | LAND1.baseStationCoordinates=3949.89151752,N,11616.79267501,E |
| | | LAND1.boundaryCoordinates=-99.64,193.56;185.77,182.30;61.84,424.89;237.59,415.88;235.34,539.80;-26.03,544.31 |
| | | LAND1.boundaryCoordinates=-58.32,-476.37;85.99,-289.22;354.31,-329.80;293.43,-559.79 |
| | | LAND1.boundaryOriginalCoordinates=39.831522,116.279873,49.25;39.831524,116.279878,49.25;39.831525,116.279878,49.24;39.831524,116.279912,49.30;39.831524,116.279911,49.29;39.831523,116.279911,49.23;39.831521,116.279915,49.31;39.831517,116.279925,49.34;39.831514,116.279940,49.30;39.831514,116.279957,49.28;39.831516,116.279974,49.28;39.831518,116.279991,49.29;39.831521,116.280008,49.24;39.831524,116.280025,49.30;39.831526,116.280042,49.24;39.831529,116.280059,49.29;39.831529,116.280076,49.26;39.831530,116.280093,49.32;39.831531,116.280110,49.28;39.831533,116.280127,49.28;39.831535,116.280144,49.26;39.831539,116.280161,49.27;39.831544,116.280175,49.25;39.831551,116.280190,49.24;39.831558,116.280204,49.26;39.831566,116.280219,49.26;39.831574,116.280234,49.22;39.831583,116.280248,49.24;39.831591,116.280260,49.24;39.831600,116.280272,49.23;39.831608,116.280285,49.18;39.831615,116.280298,49.12;39.831618,116.280312,49.11;39.831618,116.280328,49.12;39.831615,116.280342,49.15;39.831610,116.280356,49.21;39.831602,116.280369,49.23;39.831592,116.280379,49.25;39.831581,116.280388,49.25;39.831569,116.280394,49.19;39.831559,116.280395,49.23;39.831552,116.280387,49.28;39.831547,116.280373,49.32;39.831544,116.280357,49.33;39.831541,116.280340,49.29;39.831539,116.280324,49.27;39.831536,116.280307,49.24;39.831534,116.280290,49.25;39.831531,116.280273,49.26;39.831527,116.280257,49.28;39.831522,116.280242,49.21;39.831514,116.280232,49.28;39.831504,116.280229,49.24;39.831491,116.280230,49.33;39.831478,116.280233,49.34;39.831466,116.280236,49.31;39.831454,116.280239,49.31;39.831441,116.280242,49.26;39.831429,116.280244,49.23;39.831416,116.280247,49.25;39.831402,116.280250,49.22;39.831389,116.280253,49.25;39.831376,116.280256,49.26;39.831364,116.280258,49.24;39.831351,116.280261,49.25;39.831338,116.280265,49.26;39.831324,116.280268,49.20;39.831311,116.280271,49.16;39.831298,116.280274,49.17;39.831285,116.280277,49.22;39.831271,116.280278,49.16;39.831261,116.280273,49.23 |
| | | LAND1.boundaryOriginalXY=-1 |
| | | LAND1.boundaryPointInterval=-1 |
| | |
| | | LAND1.mowingSafetyDistance=0.53 |
| | | LAND1.mowingTrack=-1 |
| | | LAND1.mowingWidth=200 |
| | | LAND1.plannedPath=-25.601252,543.772523;-98.992501,194.064867;184.886062,182.865285;60.950435,425.466300;237.049774,416.438391;234.819374,539.278905;-25.601252,543.772523;-24.583154,543.754955;-97.979107,194.024887;-95.952319,193.944926;-22.546959,543.719820;-20.510764,543.684685;-93.925532,193.864965;-91.898744,193.785004;-18.474569,543.649550;-16.438374,543.614415;-89.871956,193.705043;-87.845169,193.625082;-14.402179,543.579280;-12.365984,543.544145;-85.818381,193.545122;-83.791593,193.465161;-10.329789,543.509010;-8.293594,543.473875;-81.764806,193.385200;-79.738018,193.305239;-6.257399,543.438740;-4.221204,543.403605;-77.711230,193.225278;-75.684443,193.145317;-2.185009,543.368470;-0.148814,543.333335;-73.657655,193.065356;-71.630868,192.985396;1.887381,543.298200;3.923576,543.263065;-69.604080,192.905435;-67.577292,192.825474;5.959771,543.227930;7.995966,543.192795;-65.550505,192.745513;-63.523717,192.665552;10.032161,543.157660;12.068356,543.122525;-61.496929,192.585591;-59.470142,192.505630;14.104551,543.087390;16.140746,543.052255;-57.443354,192.425670;-55.416566,192.345709;18.176941,543.017120;20.213136,542.981985;-53.389779,192.265748;-51.362991,192.185787;22.249331,542.946850;24.285526,542.911715;-49.336204,192.105826;-47.309416,192.025865;26.321721,542.876580;28.357916,542.841445;-45.282628,191.945904;-43.255841,191.865944;30.394110,542.806310;32.430305,542.771175;-41.229053,191.785983;-39.202265,191.706022;34.466500,542.736040;36.502695,542.700905;-37.175478,191.626061;-35.148690,191.546100;38.538890,542.665770;40.575085,542.630635;-33.121903,191.466139;-31.095115,191.386178;42.611280,542.595500;44.647475,542.560365;-29.068327,191.306218;-27.041540,191.226257;46.683670,542.525230;48.719865,542.490095;-25.014752,191.146296;-22.987964,191.066335;50.756060,542.454960;52.792255,542.419825;-20.961177,190.986374;-18.934389,190.906413;54.828450,542.384690;56.864645,542.349555;-16.907601,190.826452;-14.880814,190.746491;58.900840,542.314420;60.937035,542.279285;-12.854026,190.666531;-10.827239,190.586570;62.973230,542.244150;65.009425,542.209015;-8.800451,190.506609;-6.773663,190.426648;67.045620,542.173880;69.081815,542.138745;-4.746876,190.346687;-2.720088,190.266726;71.118010,542.103610;73.154205,542.068475;-0.693300,190.186765;1.333487,190.106805;75.190400,542.033340;77.226595,541.998205;3.360275,190.026844;5.387063,189.946883;79.262790,541.963070;81.298985,541.927935;7.413850,189.866922;9.440638,189.786961;83.335180,541.892800;85.371375,541.857665;11.467425,189.707000;13.494213,189.627039;62.395060,422.638481;62.966825,425.362928;87.407570,541.822530;89.443765,541.787394;64.988641,425.259278;63.843573,419.803053;15.521001,189.547079;17.547788,189.467118;65.292086,416.967624;67.010457,425.155627;91.479960,541.752259;93.516155,541.717124;69.032273,425.051977;66.740598,414.132195;19.574576,189.387157;21.601364,189.307196;68.189111,411.296767;71.054089,424.948326;95.552350,541.681989;97.588545,541.646854;73.075906,424.844676;69.637623,408.461338;23.628151,189.227235;25.654939,189.147274;71.086136,405.625910;75.097722,424.741026;99.624740,541.611719;101.660935,541.576584;77.119538,424.637375;72.534648,402.790481;27.681726,189.067313;29.708514,188.987353;73.983161,399.955053;79.141354,424.533725;103.697130,541.541449;105.733325,541.506314;81.163170,424.430074;75.431674,397.119624;31.735302,188.907392;33.762089,188.827431;76.880186,394.284195;83.184986,424.326424;107.769520,541.471179;109.805715,541.436044;85.206802,424.222773;78.328699,391.448767;35.788877,188.747470;37.815665,188.667509;79.777211,388.613338;87.228618,424.119123;111.841910,541.400909;113.878105,541.365774;89.250434,424.015473;81.225724,385.777910;39.842452,188.587548;41.869240,188.507587;82.674236,382.942481;91.272250,423.911822;115.914300,541.330639;117.950495,541.295504;93.294066,423.808172;84.122749,380.107053;43.896028,188.427627;45.922815,188.347666;85.571262,377.271624;95.315882,423.704521;119.986690,541.260369;122.022885,541.225234;97.337698,423.600871;87.019774,374.436195;47.949603,188.267705;49.976390,188.187744;88.468287,371.600767;99.359514,423.497221;124.059080,541.190099;126.095275,541.154964;101.381330,423.393570;89.916799,368.765338;52.003178,188.107783;54.029966,188.027822;91.365312,365.929910;103.403146,423.289920;128.131470,541.119829;130.167665,541.084694;105.424962,423.186269;92.813824,363.094481;56.056753,187.947861;58.083541,187.867901;94.262337,360.259052;107.446778,423.082619;132.203860,541.049559;134.240055,541.014424;109.468594,422.978968;95.710850,357.423624;60.110329,187.787940;62.137116,187.707979;97.159362,354.588195;111.490410,422.875318;136.276250,540.979289;138.312445,540.944154;113.512226,422.771668;98.607875,351.752767;64.163904,187.628018;66.190691,187.548057;100.056387,348.917338;115.534042,422.668017;140.348640,540.909019;142.384835,540.873884;117.555858,422.564367;101.504900,346.081910;68.217479,187.468096;70.244267,187.388135;102.953412,343.246481;119.577674,422.460716;144.421030,540.838749;146.457225,540.803614;121.599490,422.357066;104.401925,340.411052;72.271054,187.308175;74.297842,187.228214;105.850437,337.575624;123.621306,422.253415;148.493420,540.768479;150.529615,540.733344;125.643122,422.149765;107.298950,334.740195;76.324630,187.148253;78.351417,187.068292;108.747463,331.904767;127.664938,422.046115;152.565810,540.698209;154.602005,540.663074;129.686754,421.942464;110.195975,329.069338;80.378205,186.988331;82.404993,186.908370;111.644488,326.233909;131.708570,421.838814;156.638200,540.627939;158.674395,540.592804;133.730386,421.735163;113.093000,323.398481;84.431780,186.828409;86.458568,186.748449;114.541513,320.563052;135.752203,421.631513;160.710590,540.557669;162.746785,540.522534;137.774019,421.527862;115.990025,317.727624;88.485355,186.668488;90.512143,186.588527;117.438538,314.892195;139.795835,421.424212;164.782980,540.487399;166.819175,540.452264;141.817651,421.320562;118.887051,312.056767;92.538931,186.508566;94.565718,186.428605;120.335563,309.221338;143.839467,421.216911;168.855370,540.417129;170.891565,540.381994;145.861283,421.113261;121.784076,306.385909;96.592506,186.348644;98.619294,186.268683;123.232588,303.550481;147.883099,421.009610;172.927760,540.346859;174.963955,540.311724;149.904915,420.905960;124.681101,300.715052;100.646081,186.188723;102.672869,186.108762;126.129613,297.879624;151.926731,420.802309;177.000150,540.276589;179.036345,540.241454;153.948547,420.698659;127.578126,295.044195;104.699657,186.028801;106.726444,185.948840;129.026639,292.208767;155.970363,420.595009;181.072540,540.206319;183.108735,540.171184;157.992179,420.491358;130.475151,289.373338;108.753232,185.868879;110.780019,185.788918;131.923664,286.537909;160.013995,420.387708;185.144930,540.136049;187.181125,540.100914;162.035811,420.284057;133.372176,283.702481;112.806807,185.708957;114.833595,185.628997;134.820689,280.867052;164.057627,420.180407;189.217320,540.065779;191.253515,540.030644;166.079443,420.076756;136.269201,278.031624;116.860382,185.549036;118.887170,185.469075;137.717714,275.196195;168.101259,419.973106;193.289710,539.995509;195.325905,539.960374;170.123075,419.869456;139.166227,272.360766;120.913958,185.389114;122.940745,185.309153;140.614739,269.525338;172.144891,419.765805;197.362100,539.925239;199.398295,539.890104;174.166707,419.662155;142.063252,266.689909;124.967533,185.229192;126.994320,185.149231;143.511764,263.854481;176.188523,419.558504;201.434490,539.854969;203.470685,539.819834;178.210339,419.454854;144.960277,261.019052;129.021108,185.069271;131.047896,184.989310;146.408789,258.183624;180.232155,419.351203;205.506880,539.784699;207.543075,539.749564;182.253971,419.247553;147.857302,255.348195;133.074683,184.909349;135.101471,184.829388;149.305815,252.512766;184.275787,419.143903;209.579270,539.714428;211.615465,539.679293;186.297603,419.040252;150.754327,249.677338;137.128259,184.749427;139.155046,184.669466;152.202840,246.841909;188.319419,418.936602;213.651660,539.644158;215.687855,539.609023;190.341235,418.832951;153.651352,244.006481;141.181834,184.589505;143.208622,184.509545;155.099865,241.171052;192.363051,418.729301;217.724050,539.573888;219.760245,539.538753;194.384867,418.625650;156.548377,238.335624;145.235409,184.429584;147.262197,184.349623;157.996890,235.500195;196.406683,418.522000;221.796439,539.503618;223.832634,539.468483;198.428499,418.418350;159.445403,232.664766;149.288984,184.269662;151.315772,184.189701;160.893915,229.829338;200.450316,418.314699;225.868829,539.433348;227.905024,539.398213;202.472132,418.211049;162.342428,226.993909;153.342560,184.109740;155.369347,184.029779;163.790940,224.158481;204.493948,418.107398;229.941219,539.363078;231.977414,539.327943;206.515764,418.003748;165.239453,221.323052;157.396135,183.949818;159.422923,183.869858;166.687965,218.487623;208.537580,417.900097;234.013609,539.292808;234.917706,533.863247;210.559396,417.796447;168.136478,215.652195;161.449710,183.789897;163.476498,183.709936;169.584991,212.816766;212.581212,417.692797;235.080431,524.901070;235.243156,515.938894;214.603028,417.589146;171.033503,209.981338;165.503286,183.629975;167.530073,183.550014;172.482016,207.145909;216.624844,417.485496;235.405881,506.976717;235.568606,498.014540;218.646660,417.381845;173.930528,204.310481;169.556861,183.470053;171.583648,183.390092;175.379041,201.475052;220.668476,417.278195;235.731331,489.052363;235.894056,480.090186;222.690292,417.174544;176.827553,198.639623;173.610436,183.310132;175.637224,183.230171;178.276066,195.804195;224.712108,417.070894;236.056781,471.128009;236.219507,462.165832;226.733924,416.967244;179.724578,192.968766;177.664011,183.150210;179.690799,183.070249;181.173091,190.133338;228.755740,416.863593;236.382232,453.203655;236.544957,444.241478;230.777556,416.759943;182.621604,187.297909;181.717587,182.990288;183.744374,182.910327;184.070116,184.462480;232.799372,416.656292;236.707682,435.279301;236.870407,426.317125;234.821188,416.552642 |
| | | LAND1.plannedPath=353.646421,-330.235669;86.219211,-289.790692;-57.399120,-476.043693;293.049800,-559.155132;353.646421,-330.235669;353.131597,-332.180552;84.822383,-291.602183;83.425556,-293.413674;352.616772,-334.125435;352.101948,-336.070317;82.028728,-295.225165;80.631901,-297.036656;351.587124,-338.015200;351.072299,-339.960083;79.235073,-298.848147;77.838246,-300.659638;350.557475,-341.904966;350.042650,-343.849848;76.441418,-302.471129;75.044591,-304.282620;349.527826,-345.794731;349.013002,-347.739614;73.647763,-306.094111;72.250936,-307.905602;348.498177,-349.684497;347.983353,-351.629379;70.854109,-309.717093;69.457281,-311.528584;347.468528,-353.574262;346.953704,-355.519145;68.060454,-313.340075;66.663626,-315.151566;346.438880,-357.464028;345.924055,-359.408910;65.266799,-316.963057;63.869971,-318.774548;345.409231,-361.353793;344.894406,-363.298676;62.473144,-320.586039;61.076316,-322.397529;344.379582,-365.243559;343.864758,-367.188441;59.679489,-324.209020;58.282661,-326.020511;343.349933,-369.133324;342.835109,-371.078207;56.885834,-327.832002;55.489006,-329.643493;342.320284,-373.023090;341.805460,-374.967972;54.092179,-331.454984;52.695351,-333.266475;341.290636,-376.912855;340.775811,-378.857738;51.298524,-335.077966;49.901697,-336.889457;340.260987,-380.802621;339.746163,-382.747503;48.504869,-338.700948;47.108042,-340.512439;339.231338,-384.692386;338.716514,-386.637269;45.711214,-342.323930;44.314387,-344.135421;338.201689,-388.582152;337.686865,-390.527034;42.917559,-345.946912;41.520732,-347.758403;337.172041,-392.471917;336.657216,-394.416800;40.123904,-349.569894;38.727077,-351.381385;336.142392,-396.361683;335.627567,-398.306565;37.330249,-353.192876;35.933422,-355.004367;335.112743,-400.251448;334.597919,-402.196331;34.536594,-356.815858;33.139767,-358.627349;334.083094,-404.141214;333.568270,-406.086096;31.742939,-360.438840;30.346112,-362.250331;333.053445,-408.030979;332.538621,-409.975862;28.949285,-364.061822;27.552457,-365.873313;332.023797,-411.920745;331.508972,-413.865627;26.155630,-367.684803;24.758802,-369.496294;330.994148,-415.810510;330.479324,-417.755393;23.361975,-371.307785;21.965147,-373.119276;329.964499,-419.700276;329.449675,-421.645158;20.568320,-374.930767;19.171492,-376.742258;328.934850,-423.590041;328.420026,-425.534924;17.774665,-378.553749;16.377837,-380.365240;327.905202,-427.479807;327.390377,-429.424689;14.981010,-382.176731;13.584182,-383.988222;326.875553,-431.369572;326.360728,-433.314455;12.187355,-385.799713;10.790527,-387.611204;325.845904,-435.259338;325.331080,-437.204220;9.393700,-389.422695;7.996873,-391.234186;324.816255,-439.149103;324.301431,-441.093986;6.600045,-393.045677;5.203218,-394.857168;323.786606,-443.038869;323.271782,-444.983751;3.806390,-396.668659;2.409563,-398.480150;322.756958,-446.928634;322.242133,-448.873517;1.012735,-400.291641;-0.384092,-402.103132;321.727309,-450.818399;321.212484,-452.763282;-1.780920,-403.914623;-3.177747,-405.726114;320.697660,-454.708165;320.182836,-456.653048;-4.574575,-407.537605;-5.971402,-409.349096;319.668011,-458.597930;319.153187,-460.542813;-7.368230,-411.160586;-8.765057,-412.972077;318.638363,-462.487696;318.123538,-464.432579;-10.161885,-414.783568;-11.558712,-416.595059;317.608714,-466.377461;317.093889,-468.322344;-12.955539,-418.406550;-14.352367,-420.218041;316.579065,-470.267227;316.064241,-472.212110;-15.749194,-422.029532;-17.146022,-423.841023;315.549416,-474.156992;315.034592,-476.101875;-18.542849,-425.652514;-19.939677,-427.464005;314.519767,-478.046758;314.004943,-479.991641;-21.336504,-429.275496;-22.733332,-431.086987;313.490119,-481.936523;312.975294,-483.881406;-24.130159,-432.898478;-25.526987,-434.709969;312.460470,-485.826289;311.945645,-487.771172;-26.923814,-436.521460;-28.320642,-438.332951;311.430821,-489.716054;310.915997,-491.660937;-29.717469,-440.144442;-31.114297,-441.955933;310.401172,-493.605820;309.886348,-495.550703;-32.511124,-443.767424;-33.907951,-445.578915;309.371523,-497.495585;308.856699,-499.440468;-35.304779,-447.390406;-36.701606,-449.201897;308.341875,-501.385351;307.827050,-503.330234;-38.098434,-451.013388;-39.495261,-452.824879;307.312226,-505.275116;306.797402,-507.219999;-40.892089,-454.636370;-42.288916,-456.447860;306.282577,-509.164882;305.767753,-511.109765;-43.685744,-458.259351;-45.082571,-460.070842;305.252928,-513.054647;304.738104,-514.999530;-46.479399,-461.882333;-47.876226,-463.693824;304.223280,-516.944413;303.708455,-518.889296;-49.273054,-465.505315;-50.669881,-467.316806;303.193631,-520.834178;302.678806,-522.779061;-52.066709,-469.128297;-53.463536,-470.939788;302.163982,-524.723944;301.649158,-526.668827;-54.860363,-472.751279;-56.257191,-474.562770;301.134333,-528.613709;300.619509,-530.558592;-53.103034,-477.062540;-29.560792,-482.645749;300.104684,-532.503475;299.589860,-534.448358;-6.018549,-488.228958;17.523693,-493.812168;299.075036,-536.393240;298.560211,-538.338123;41.065935,-499.395377;64.608178,-504.978586;298.045387,-540.283006;297.530562,-542.227889;88.150420,-510.561795;111.692662,-516.145005;297.015738,-544.172771;296.500914,-546.117654;135.234905,-521.728214;158.777147,-527.311423;295.986089,-548.062537;295.471265,-550.007420;182.319389,-532.894632;205.861631,-538.477841;294.956441,-551.952302;294.441616,-553.897185;229.403874,-544.061051;252.946116,-549.644260;293.926792,-555.842068;293.411967,-557.786951;276.488358,-555.227469 |
| | | LAND1.returnPathCoordinates=-1 |
| | | LAND1.returnPathRawCoordinates=-1 |
| | | LAND1.returnPointCoordinates=-1 |
| | | LAND1.updateTime=2025-12-23 18\:41\:03 |
| | | LAND1.updateTime=2025-12-23 19\:10\:14 |
| | | LAND1.userId=-1 |
| | |
| | | #Mower Configuration Properties - Updated |
| | | #Tue Dec 23 19:08:18 CST 2025 |
| | | #Current work land selection updated |
| | | #Wed Dec 24 16:28:00 CST 2025 |
| | | appVersion=-1 |
| | | boundaryLengthVisible=false |
| | | currentWorkLandNumber=LAND1 |
| | |
| | | handheldMarkerId=1872 |
| | | idleTrailDurationSeconds=60 |
| | | manualBoundaryDrawingMode=false |
| | | mapScale=4.08 |
| | | mapScale=0.78 |
| | | measurementModeEnabled=false |
| | | mowerId=860 |
| | | serialAutoConnect=true |
| | | serialBaudRate=115200 |
| | | serialPortName=COM15 |
| | | simCardNumber=-1 |
| | | viewCenterX=-14.44 |
| | | viewCenterY=-332.04 |
| | | viewCenterX=-148.00 |
| | | viewCenterY=424.51 |
| | |
| | | import homein.WenJianSuo; |
| | | import ui.UIConfig; |
| | | import zhuye.Shouye; |
| | | import gecaoji.Device; |
| | | import chuankou.SerialPortNativeLoader; |
| | | import set.Setsys; |
| | | import udpdell.UDPServer; |
| | | import user.Usrdell; |
| | | import javax.swing.*; |
| | | import java.awt.*; |
| | | import java.awt.event.*; |
| | |
| | | // 主表ååºå |
| | | JPanel formPanel = createFormPanel(); |
| | | |
| | | // å
è£
卿»å¨çªæ ¼ä¸ï¼ä»¥é²å
容æ¾ç¤ºä¸å
¨ |
| | | JScrollPane scrollPane = new JScrollPane(formPanel); |
| | | scrollPane.setBorder(null); |
| | | scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); |
| | | scrollPane.getVerticalScrollBar().setUnitIncrement(16); |
| | | |
| | | // åºé¨åºç¨ä¿¡æ¯ |
| | | JPanel appInfoPanel = createAppInfoPanel(); |
| | | |
| | | mainPanel.add(topPanel, BorderLayout.NORTH); |
| | | mainPanel.add(formPanel, BorderLayout.CENTER); |
| | | mainPanel.add(scrollPane, BorderLayout.CENTER); |
| | | mainPanel.add(appInfoPanel, BorderLayout.SOUTH); |
| | | |
| | | add(mainPanel); |
| | |
| | | usernameField.setText(""); |
| | | } |
| | | |
| | | // 妿å¯ç 为-1ï¼æ¸
空å¯ç æ¡ |
| | | String savedPassword = UserChuShiHua.getProperty("password"); |
| | | if (savedPassword != null && savedPassword.equals("-1")) { |
| | | passwordField.setText(""); |
| | | // å è½½è®°ä½æç¶æ |
| | | String rememberPwd = UserChuShiHua.getProperty("rememberPassword"); |
| | | boolean isRemember = "1".equals(rememberPwd); |
| | | rememberMe.setSelected(isRemember); |
| | | |
| | | // å¦æè®°ä½æè¢«éä¸ï¼å¡«å
å¯ç |
| | | if (isRemember) { |
| | | String savedPassword = UserChuShiHua.getProperty("password"); |
| | | if (savedPassword != null && !savedPassword.equals("-1")) { |
| | | passwordField.setText(savedPassword); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | // éªè¯ç¨æ·ååå¯ç |
| | | if (validateLogin(username, password)) { |
| | | JOptionPane.showMessageDialog(this, |
| | | "ç»å½æåï¼", |
| | | "æå", |
| | | JOptionPane.INFORMATION_MESSAGE); |
| | | |
| | | // æ´æ°æåç»å½æ¶é´ |
| | | UserChuShiHua.updateProperty("lastLoginTime", String.valueOf(System.currentTimeMillis())); |
| | | |
| | | // å¦æè®°ä½æè¢«éä¸ï¼ä¿åç¨æ·å |
| | | // ä¿åè®°ä½æç¶æ |
| | | if (rememberMe.isSelected()) { |
| | | UserChuShiHua.updateProperty("rememberPassword", "1"); |
| | | UserChuShiHua.updateProperty("userName", username); |
| | | } else { |
| | | UserChuShiHua.updateProperty("rememberPassword", "0"); |
| | | } |
| | | |
| | | // è¿éå¯ä»¥æ·»å 跳转å°ä¸»çé¢ç代ç |
| | | // å
³éç»å½çªå£å¹¶æå¼é¦é¡µ |
| | | openMainApplication(); |
| | | |
| | | } else { |
| | |
| | | Shouye homePanel = new Shouye(); |
| | | mainFrame.setContentPane(homePanel); |
| | | |
| | | mainFrame.pack(); |
| | | int targetWidth = Math.max(mainFrame.getWidth(), 480); |
| | | int targetHeight = Math.max(mainFrame.getHeight(), 800); |
| | | mainFrame.setSize(targetWidth, targetHeight); |
| | | // 设置ä¸ç»å½é¡µé¢ç¸åç尺寸 |
| | | mainFrame.setSize(UIConfig.DIALOG_WIDTH, UIConfig.DIALOG_HEIGHT); |
| | | mainFrame.setMinimumSize(new Dimension(UIConfig.DIALOG_WIDTH, UIConfig.DIALOG_HEIGHT)); |
| | | mainFrame.setResizable(false); |
| | | mainFrame.setLocationRelativeTo(null); |
| | | mainFrame.setVisible(true); |
| | | |
| | |
| | | RegistrationFrame registerFrame = new RegistrationFrame(this, currentLanguageCode); |
| | | registerFrame.setVisible(true); |
| | | } |
| | | |
| | | /** |
| | | * ç¨åºå
¥å£ç¹ |
| | | * éæHomeinç±»çåå§åé»è¾ |
| | | */ |
| | | public static void main(String[] args) { |
| | | // æ£æ¥ç¨åºæ¯å¦å·²ç»è¿è¡ |
| | | if (WenJianSuo.isAlreadyRunning()) { |
| | | JOptionPane.showMessageDialog(null, |
| | | "ç¨åºå·²ç»å¨è¿è¡ä¸ï¼\nä¸è½åæ¶æå¼å¤ä¸ªå®ä¾ã", |
| | | "è¦å", |
| | | JOptionPane.WARNING_MESSAGE); |
| | | System.exit(0); |
| | | return; |
| | | } |
| | | |
| | | // æ·»å å
³éé©åï¼ç¡®ä¿ç¨åºéåºæ¶éæ¾é |
| | | Runtime.getRuntime().addShutdownHook(new Thread(() -> { |
| | | WenJianSuo.releaseLock(); |
| | | })); |
| | | |
| | | try { |
| | | SerialPortNativeLoader.ensureLibraryPresent(); |
| | | // åå§åæ°æ® |
| | | UserChuShiHua.initialize(); |
| | | Usrdell.initialize(); // åå§åç¨æ·å±æ§ |
| | | |
| | | Setsys setsys = new Setsys(); |
| | | setsys.initializeFromProperties(); |
| | | Device.initializeActiveDevice(setsys.getMowerId()); |
| | | |
| | | UDPServer.startAsync();//å¯å¨æ°æ®æ¥æ¶çº¿ç¨ |
| | | |
| | | // æ¾ç¤ºåå§æ°æ® |
| | | System.out.println("åå§ç¨æ·å: " + UserChuShiHua.getProperty("userName")); |
| | | System.out.println("åå§å¯ç : " + UserChuShiHua.getProperty("password")); |
| | | |
| | | // å¯å¨ç»å½çé¢ |
| | | EventQueue.invokeLater(() -> { |
| | | try { |
| | | new Denglu().setVisible(true); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | JOptionPane.showMessageDialog(null, |
| | | "ç»å½çé¢å¯å¨å¤±è´¥: " + e.getMessage(), |
| | | "é误", |
| | | JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | }); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | JOptionPane.showMessageDialog(null, |
| | | "ç¨åºå¯å¨å¤±è´¥: " + e.getMessage(), |
| | | "é误", |
| | | JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | package homein; |
| | | |
| | | import denglu.UserChuShiHua; |
| | | import gecaoji.Device; |
| | | import chuankou.SerialPortAutoConnector; |
| | | import chuankou.SerialPortNativeLoader; |
| | | import set.Setsys; |
| | | import udpdell.UDPServer; |
| | | import denglu.Denglu; |
| | | import java.awt.EventQueue; |
| | | import javax.swing.JOptionPane; |
| | | |
| | | public class Homein { |
| | | /** |
| | | * ç¨åºå
¥å£ç¹ - å·²è¿ç§»å°Dengluç±» |
| | | * ä¿çæ¤æ¹æ³ä»¥ä¿æååå
¼å®¹æ§ï¼å®é
è°ç¨Denglu.main |
| | | */ |
| | | public static void main(String[] args) { |
| | | // æ£æ¥ç¨åºæ¯å¦å·²ç»è¿è¡ |
| | | if (WenJianSuo.isAlreadyRunning()) { |
| | | JOptionPane.showMessageDialog(null, |
| | | "ç¨åºå·²ç»å¨è¿è¡ä¸ï¼\nä¸è½åæ¶æå¼å¤ä¸ªå®ä¾ã", |
| | | "è¦å", |
| | | JOptionPane.WARNING_MESSAGE); |
| | | System.exit(0); |
| | | return; |
| | | } |
| | | |
| | | // æ·»å å
³éé©åï¼ç¡®ä¿ç¨åºéåºæ¶éæ¾é |
| | | Runtime.getRuntime().addShutdownHook(new Thread(() -> { |
| | | WenJianSuo.releaseLock(); |
| | | })); |
| | | |
| | | try { |
| | | SerialPortNativeLoader.ensureLibraryPresent(); |
| | | // åå§åæ°æ® |
| | | UserChuShiHua.initialize(); |
| | | |
| | | Setsys setsys = new Setsys(); |
| | | setsys.initializeFromProperties(); |
| | | Device.initializeActiveDevice(setsys.getMowerId()); |
| | | |
| | | UDPServer.startAsync();//å¯å¨æ°æ®æ¥æ¶çº¿ç¨ |
| | | // SerialPortAutoConnector.initialize();//å¯å¨ä¸²å£èªå¨è¿æ¥ |
| | | |
| | | // æ¾ç¤ºåå§æ°æ® |
| | | System.out.println("åå§ç¨æ·å: " + UserChuShiHua.getProperty("userName")); |
| | | System.out.println("åå§å¯ç : " + UserChuShiHua.getProperty("password")); |
| | | |
| | | // å¯å¨ç»å½çé¢ |
| | | startLoginInterface(); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | JOptionPane.showMessageDialog(null, |
| | | "ç¨åºå¯å¨å¤±è´¥: " + e.getMessage(), |
| | | "é误", |
| | | JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | } |
| | | |
| | | private static void startLoginInterface() { |
| | | // å¨EDTä¸å¯å¨ç»å½çé¢ |
| | | EventQueue.invokeLater(() -> { |
| | | try { |
| | | new Denglu().setVisible(true); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | JOptionPane.showMessageDialog(null, |
| | | "ç»å½çé¢å¯å¨å¤±è´¥: " + e.getMessage(), |
| | | "é误", |
| | | JOptionPane.ERROR_MESSAGE); |
| | | } |
| | | }); |
| | | Denglu.main(args); |
| | | } |
| | | } |
| | |
| | | // åå»ºè®¾ç½®é¡¹é¢æ¿ï¼åè§ç½è²é¢æ¿ï¼ |
| | | JPanel settingsPanel = createSettingsPanel(); |
| | | |
| | | // å建æ»å¨é¢æ¿ |
| | | JScrollPane scrollPane = new JScrollPane(settingsPanel); |
| | | scrollPane.setBorder(null); // å»é¤è¾¹æ¡ |
| | | scrollPane.getViewport().setBackground(BACKGROUND_COLOR); // 设置è§å£èæ¯è²ä¸ä¸»èæ¯ä¸è´ |
| | | scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); // ç¦æ¢æ°´å¹³æ»å¨ |
| | | scrollPane.getVerticalScrollBar().setUnitIncrement(16); // å¢å æ»å¨é度 |
| | | |
| | | // æ·»å ç»ä»¶å°ä¸»é¢æ¿ |
| | | mainPanel.add(settingsPanel, BorderLayout.CENTER); |
| | | mainPanel.add(scrollPane, BorderLayout.CENTER); |
| | | |
| | | add(mainPanel, BorderLayout.CENTER); |
| | | } |
| | | |
| | | private JPanel createSettingsPanel() { |
| | | // å建åè§ç½è²é¢æ¿å®¹å¨ |
| | | JPanel container = new JPanel() { |
| | | JPanel container = new ScrollablePanel() { |
| | | @Override |
| | | protected void paintComponent(Graphics g) { |
| | | Graphics2D g2d = (Graphics2D) g.create(); |
| | |
| | | timer.start(); |
| | | } |
| | | |
| | | /** |
| | | * 坿»å¨ç颿¿ï¼å¼ºå¶å®½åº¦éåºè§å£ |
| | | */ |
| | | private class ScrollablePanel extends JPanel implements Scrollable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Override |
| | | public Dimension getPreferredScrollableViewportSize() { |
| | | return getPreferredSize(); |
| | | } |
| | | |
| | | @Override |
| | | public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { |
| | | return 16; |
| | | } |
| | | |
| | | @Override |
| | | public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { |
| | | return 16; |
| | | } |
| | | |
| | | @Override |
| | | public boolean getScrollableTracksViewportWidth() { |
| | | return true; // 强å¶å®½åº¦éåºè§å£ï¼é²æ¢æ°´å¹³æ»å¨ |
| | | } |
| | | |
| | | @Override |
| | | public boolean getScrollableTracksViewportHeight() { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void setVisible(boolean visible) { |
| | | if (visible) { |
| | |
| | | package udpdell; |
| | | |
| | | import java.io.IOException; |
| | | import java.net.DatagramPacket; |
| | | import java.net.DatagramSocket; |
| | |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | | |
| | | import Mqttmessage.Client; |
| | | import gecaoji.Device; |
| | | import zhuye.Coordinate; |
| | | |
| | | import publicway.Gpstoxuzuobiao; |
| | | |
| | | public class UDPServer { |
| | |
| | | thread.setDaemon(false); // ä¿æ JVM æç»åæ´» |
| | | thread.start(); |
| | | serverThread = thread; |
| | | // Client.test(); |
| | | return thread; |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package user; |
| | | |
| | | /** |
| | | * ç¨æ·ä¿¡æ¯ç±» |
| | | * å
å«user.propertiesæä»¶ä¸çææå±æ§ |
| | | */ |
| | | public class Usr { |
| | | // ç¨æ·é®ç®± |
| | | private String email; |
| | | // è¯è¨è®¾ç½® |
| | | private String language; |
| | | // æåç»å½æ¶é´ |
| | | private String lastLoginTime; |
| | | // å¯ç |
| | | private String password; |
| | | // æ³¨åæ¶é´ |
| | | private String registrationTime; |
| | | // ç¨æ·ç¶æ |
| | | private String status; |
| | | // ç¨æ·ID |
| | | private String userId; |
| | | // ç¨æ·å |
| | | private String userName; |
| | | // æ¯å¦è®°ä½ç»å½å¯ç ï¼1表示记ä½ï¼0表示ä¸è®°ä½ |
| | | private String rememberPassword; |
| | | |
| | | /** |
| | | * è·åç¨æ·é®ç®± |
| | | * @return ç¨æ·é®ç®± |
| | | */ |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®ç¨æ·é®ç®± |
| | | * @param email ç¨æ·é®ç®± |
| | | */ |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | /** |
| | | * è·åè¯è¨è®¾ç½® |
| | | * @return è¯è¨è®¾ç½® |
| | | */ |
| | | public String getLanguage() { |
| | | return language; |
| | | } |
| | | |
| | | /** |
| | | * 设置è¯è¨è®¾ç½® |
| | | * @param language è¯è¨è®¾ç½® |
| | | */ |
| | | public void setLanguage(String language) { |
| | | this.language = language; |
| | | } |
| | | |
| | | /** |
| | | * è·åæåç»å½æ¶é´ |
| | | * @return æåç»å½æ¶é´ |
| | | */ |
| | | public String getLastLoginTime() { |
| | | return lastLoginTime; |
| | | } |
| | | |
| | | /** |
| | | * 设置æåç»å½æ¶é´ |
| | | * @param lastLoginTime æåç»å½æ¶é´ |
| | | */ |
| | | public void setLastLoginTime(String lastLoginTime) { |
| | | this.lastLoginTime = lastLoginTime; |
| | | } |
| | | |
| | | /** |
| | | * è·åå¯ç |
| | | * @return å¯ç |
| | | */ |
| | | public String getPassword() { |
| | | return password; |
| | | } |
| | | |
| | | /** |
| | | * 设置å¯ç |
| | | * @param password å¯ç |
| | | */ |
| | | public void setPassword(String password) { |
| | | this.password = password; |
| | | } |
| | | |
| | | /** |
| | | * è·åæ³¨åæ¶é´ |
| | | * @return æ³¨åæ¶é´ |
| | | */ |
| | | public String getRegistrationTime() { |
| | | return registrationTime; |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®æ³¨åæ¶é´ |
| | | * @param registrationTime æ³¨åæ¶é´ |
| | | */ |
| | | public void setRegistrationTime(String registrationTime) { |
| | | this.registrationTime = registrationTime; |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·ç¶æ |
| | | * @return ç¨æ·ç¶æ |
| | | */ |
| | | public String getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®ç¨æ·ç¶æ |
| | | * @param status ç¨æ·ç¶æ |
| | | */ |
| | | public void setStatus(String status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·ID |
| | | * @return ç¨æ·ID |
| | | */ |
| | | public String getUserId() { |
| | | return userId; |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®ç¨æ·ID |
| | | * @param userId ç¨æ·ID |
| | | */ |
| | | public void setUserId(String userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·å |
| | | * @return ç¨æ·å |
| | | */ |
| | | public String getUserName() { |
| | | return userName; |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®ç¨æ·å |
| | | * @param userName ç¨æ·å |
| | | */ |
| | | public void setUserName(String userName) { |
| | | this.userName = userName; |
| | | } |
| | | |
| | | /** |
| | | * è·åæ¯å¦è®°ä½ç»å½å¯ç |
| | | * @return æ¯å¦è®°ä½ç»å½å¯ç ï¼1表示记ä½ï¼0表示ä¸è®°ä½ï¼ |
| | | */ |
| | | public String getRememberPassword() { |
| | | return rememberPassword; |
| | | } |
| | | |
| | | /** |
| | | * 设置æ¯å¦è®°ä½ç»å½å¯ç |
| | | * @param rememberPassword æ¯å¦è®°ä½ç»å½å¯ç ï¼1表示记ä½ï¼0表示ä¸è®°ä½ï¼ |
| | | */ |
| | | public void setRememberPassword(String rememberPassword) { |
| | | this.rememberPassword = rememberPassword; |
| | | } |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package user; |
| | | |
| | | import java.io.FileInputStream; |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.util.Properties; |
| | | |
| | | /** |
| | | * ç¨æ·å±æ§ç®¡çç±» |
| | | * è´è´£åå§åå è½½user.propertiesä¸ç屿§å¼ï¼å¹¶æä¾è·ååä¿®æ¹åè½ |
| | | */ |
| | | public class Usrdell { |
| | | private static final String PROPERTIES_FILE = "user.properties"; |
| | | private static Properties userProperties; |
| | | |
| | | // 屿§é®å常é |
| | | private static final String KEY_EMAIL = "email"; |
| | | private static final String KEY_LANGUAGE = "language"; |
| | | private static final String KEY_LAST_LOGIN_TIME = "lastLoginTime"; |
| | | private static final String KEY_PASSWORD = "password"; |
| | | private static final String KEY_REGISTRATION_TIME = "registrationTime"; |
| | | private static final String KEY_STATUS = "status"; |
| | | private static final String KEY_USER_ID = "userId"; |
| | | private static final String KEY_USER_NAME = "userName"; |
| | | private static final String KEY_REMEMBER_PASSWORD = "rememberPassword"; |
| | | |
| | | /** |
| | | * åå§åæ¹æ³ï¼ä»user.propertiesæä»¶å è½½ææå±æ§å¼å°å
å |
| | | */ |
| | | public static void initialize() { |
| | | synchronized (Usrdell.class) { |
| | | userProperties = new Properties(); |
| | | try (FileInputStream input = new FileInputStream(PROPERTIES_FILE)) { |
| | | userProperties.load(input); |
| | | System.out.println("ç¨æ·å±æ§åå§åæåï¼"); |
| | | } catch (IOException e) { |
| | | System.err.println("åå§åå¤±è´¥ï¼æä»¶æªæ¾å°æè¯»åé误: " + e.getMessage()); |
| | | // 妿æä»¶ä¸åå¨ï¼å建é»è®¤å±æ§ |
| | | userProperties = new Properties(); |
| | | } |
| | | |
| | | // ç¡®ä¿rememberPassword屿§åå¨ï¼å¦æä¸åå¨å设置为é»è®¤å¼"0" |
| | | if (!userProperties.containsKey(KEY_REMEMBER_PASSWORD)) { |
| | | userProperties.setProperty(KEY_REMEMBER_PASSWORD, "0"); |
| | | // ä¿åå°æä»¶ |
| | | try (FileOutputStream output = new FileOutputStream(PROPERTIES_FILE)) { |
| | | userProperties.store(output, "Updated User Properties"); |
| | | } catch (IOException e) { |
| | | System.err.println("ä¿åé»è®¤rememberPassword屿§å¤±è´¥: " + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * åå§åå¹¶è·åææå±æ§å¼ï¼è¿åUsr对象 |
| | | * @return å
嫿æå±æ§å¼çUsr对象 |
| | | */ |
| | | public static Usr initializeAndGetAll() { |
| | | if (userProperties == null) { |
| | | initialize(); |
| | | } |
| | | |
| | | Usr usr = new Usr(); |
| | | usr.setEmail(getProperty(KEY_EMAIL)); |
| | | usr.setLanguage(getProperty(KEY_LANGUAGE)); |
| | | usr.setLastLoginTime(getProperty(KEY_LAST_LOGIN_TIME)); |
| | | usr.setPassword(getProperty(KEY_PASSWORD)); |
| | | usr.setRegistrationTime(getProperty(KEY_REGISTRATION_TIME)); |
| | | usr.setStatus(getProperty(KEY_STATUS)); |
| | | usr.setUserId(getProperty(KEY_USER_ID)); |
| | | usr.setUserName(getProperty(KEY_USER_NAME)); |
| | | usr.setRememberPassword(getProperty(KEY_REMEMBER_PASSWORD)); |
| | | |
| | | return usr; |
| | | } |
| | | |
| | | /** |
| | | * è·åæå®å±æ§çå¼ |
| | | * @param key 屿§é®å |
| | | * @return 屿§å¼ï¼å¦æä¸åå¨è¿ånull |
| | | */ |
| | | public static String getProperty(String key) { |
| | | if (userProperties == null) { |
| | | initialize(); |
| | | } |
| | | String value = userProperties.getProperty(key); |
| | | if (value == null || value.trim().isEmpty() || "-1".equals(value.trim())) { |
| | | return null; |
| | | } |
| | | return value.trim(); |
| | | } |
| | | |
| | | /** |
| | | * æ´æ°å±æ§å¼å¹¶ä¿åå°æä»¶ |
| | | * @param key 屿§é®å |
| | | * @param value 屿§å¼ |
| | | */ |
| | | public static void updateProperty(String key, String value) { |
| | | synchronized (Usrdell.class) { |
| | | if (userProperties == null) { |
| | | initialize(); |
| | | } |
| | | |
| | | if (value == null || value.trim().isEmpty()) { |
| | | userProperties.setProperty(key, "-1"); |
| | | } else { |
| | | userProperties.setProperty(key, value.trim()); |
| | | } |
| | | |
| | | try (FileOutputStream output = new FileOutputStream(PROPERTIES_FILE)) { |
| | | userProperties.store(output, "Updated User Properties"); |
| | | } catch (IOException e) { |
| | | System.err.println("æ´æ°å¤±è´¥ï¼æä»¶åå
¥é误: " + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·é®ç®± |
| | | * @return ç¨æ·é®ç®± |
| | | */ |
| | | public static String getEmail() { |
| | | return getProperty(KEY_EMAIL); |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®ç¨æ·é®ç®± |
| | | * @param email ç¨æ·é®ç®± |
| | | */ |
| | | public static void setEmail(String email) { |
| | | updateProperty(KEY_EMAIL, email); |
| | | } |
| | | |
| | | /** |
| | | * è·åè¯è¨è®¾ç½® |
| | | * @return è¯è¨è®¾ç½® |
| | | */ |
| | | public static String getLanguage() { |
| | | return getProperty(KEY_LANGUAGE); |
| | | } |
| | | |
| | | /** |
| | | * 设置è¯è¨è®¾ç½® |
| | | * @param language è¯è¨è®¾ç½® |
| | | */ |
| | | public static void setLanguage(String language) { |
| | | updateProperty(KEY_LANGUAGE, language); |
| | | } |
| | | |
| | | /** |
| | | * è·åæåç»å½æ¶é´ |
| | | * @return æåç»å½æ¶é´ |
| | | */ |
| | | public static String getLastLoginTime() { |
| | | return getProperty(KEY_LAST_LOGIN_TIME); |
| | | } |
| | | |
| | | /** |
| | | * 设置æåç»å½æ¶é´ |
| | | * @param lastLoginTime æåç»å½æ¶é´ |
| | | */ |
| | | public static void setLastLoginTime(String lastLoginTime) { |
| | | updateProperty(KEY_LAST_LOGIN_TIME, lastLoginTime); |
| | | } |
| | | |
| | | /** |
| | | * è·åå¯ç |
| | | * @return å¯ç |
| | | */ |
| | | public static String getPassword() { |
| | | return getProperty(KEY_PASSWORD); |
| | | } |
| | | |
| | | /** |
| | | * 设置å¯ç |
| | | * @param password å¯ç |
| | | */ |
| | | public static void setPassword(String password) { |
| | | updateProperty(KEY_PASSWORD, password); |
| | | } |
| | | |
| | | /** |
| | | * è·åæ³¨åæ¶é´ |
| | | * @return æ³¨åæ¶é´ |
| | | */ |
| | | public static String getRegistrationTime() { |
| | | return getProperty(KEY_REGISTRATION_TIME); |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®æ³¨åæ¶é´ |
| | | * @param registrationTime æ³¨åæ¶é´ |
| | | */ |
| | | public static void setRegistrationTime(String registrationTime) { |
| | | updateProperty(KEY_REGISTRATION_TIME, registrationTime); |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·ç¶æ |
| | | * @return ç¨æ·ç¶æ |
| | | */ |
| | | public static String getStatus() { |
| | | return getProperty(KEY_STATUS); |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®ç¨æ·ç¶æ |
| | | * @param status ç¨æ·ç¶æ |
| | | */ |
| | | public static void setStatus(String status) { |
| | | updateProperty(KEY_STATUS, status); |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·ID |
| | | * @return ç¨æ·ID |
| | | */ |
| | | public static String getUserId() { |
| | | return getProperty(KEY_USER_ID); |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®ç¨æ·ID |
| | | * @param userId ç¨æ·ID |
| | | */ |
| | | public static void setUserId(String userId) { |
| | | updateProperty(KEY_USER_ID, userId); |
| | | } |
| | | |
| | | /** |
| | | * è·åç¨æ·å |
| | | * @return ç¨æ·å |
| | | */ |
| | | public static String getUserName() { |
| | | return getProperty(KEY_USER_NAME); |
| | | } |
| | | |
| | | /** |
| | | * è®¾ç½®ç¨æ·å |
| | | * @param userName ç¨æ·å |
| | | */ |
| | | public static void setUserName(String userName) { |
| | | updateProperty(KEY_USER_NAME, userName); |
| | | } |
| | | |
| | | /** |
| | | * è·åæ¯å¦è®°ä½ç»å½å¯ç |
| | | * @return æ¯å¦è®°ä½ç»å½å¯ç ï¼1表示记ä½ï¼0表示ä¸è®°ä½ï¼ï¼å¦ææªè®¾ç½®åè¿å"0" |
| | | */ |
| | | public static String getRememberPassword() { |
| | | String value = getProperty(KEY_REMEMBER_PASSWORD); |
| | | return value != null ? value : "0"; // é»è®¤è¿å"0"表示ä¸è®°ä½ |
| | | } |
| | | |
| | | /** |
| | | * 设置æ¯å¦è®°ä½ç»å½å¯ç |
| | | * @param rememberPassword æ¯å¦è®°ä½ç»å½å¯ç ï¼1表示记ä½ï¼0表示ä¸è®°ä½ï¼ |
| | | */ |
| | | public static void setRememberPassword(String rememberPassword) { |
| | | updateProperty(KEY_REMEMBER_PASSWORD, rememberPassword); |
| | | } |
| | | |
| | | /** |
| | | * æ¹éæ´æ°ç¨æ·å±æ§ |
| | | * @param usr å
å«è¦æ´æ°å±æ§å¼çUsr对象 |
| | | */ |
| | | public static void updateAll(Usr usr) { |
| | | if (usr == null) { |
| | | return; |
| | | } |
| | | |
| | | synchronized (Usrdell.class) { |
| | | if (userProperties == null) { |
| | | initialize(); |
| | | } |
| | | |
| | | if (usr.getEmail() != null) { |
| | | userProperties.setProperty(KEY_EMAIL, usr.getEmail()); |
| | | } |
| | | if (usr.getLanguage() != null) { |
| | | userProperties.setProperty(KEY_LANGUAGE, usr.getLanguage()); |
| | | } |
| | | if (usr.getLastLoginTime() != null) { |
| | | userProperties.setProperty(KEY_LAST_LOGIN_TIME, usr.getLastLoginTime()); |
| | | } |
| | | if (usr.getPassword() != null) { |
| | | userProperties.setProperty(KEY_PASSWORD, usr.getPassword()); |
| | | } |
| | | if (usr.getRegistrationTime() != null) { |
| | | userProperties.setProperty(KEY_REGISTRATION_TIME, usr.getRegistrationTime()); |
| | | } |
| | | if (usr.getStatus() != null) { |
| | | userProperties.setProperty(KEY_STATUS, usr.getStatus()); |
| | | } |
| | | if (usr.getUserId() != null) { |
| | | userProperties.setProperty(KEY_USER_ID, usr.getUserId()); |
| | | } |
| | | if (usr.getUserName() != null) { |
| | | userProperties.setProperty(KEY_USER_NAME, usr.getUserName()); |
| | | } |
| | | if (usr.getRememberPassword() != null) { |
| | | userProperties.setProperty(KEY_REMEMBER_PASSWORD, usr.getRememberPassword()); |
| | | } |
| | | |
| | | try (FileOutputStream output = new FileOutputStream(PROPERTIES_FILE)) { |
| | | userProperties.store(output, "Updated User Properties"); |
| | | } catch (IOException e) { |
| | | System.err.println("æ¹éæ´æ°å¤±è´¥ï¼æä»¶åå
¥é误: " + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | visualizationPanel.repaint(); |
| | | } |
| | | |
| | | // æµè¯æ¹æ³ |
| | | public static void main(String[] args) { |
| | | JFrame frame = new JFrame("AutoMow - é¦é¡µ"); |
| | | frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); |
| | | frame.setSize(400, 800); |
| | | frame.setLocationRelativeTo(null); |
| | | |
| | | Shouye shouye = new Shouye(); |
| | | frame.add(shouye); |
| | | |
| | | frame.setVisible(true); |
| | | UDPServer.startAsync();//å¯å¨æ°æ®æ¥æ¶çº¿ç¨ |
| | | } |
| | | } |
| | |
| | | #Updated User Properties |
| | | #Tue Dec 09 17:21:03 CST 2025 |
| | | #Wed Dec 24 16:28:00 CST 2025 |
| | | email=789 |
| | | language=zh |
| | | lastLoginTime=-1 |
| | | lastLoginTime=1766564880280 |
| | | password=123 |
| | | registrationTime=-1 |
| | | rememberPassword=1 |
| | | status=-1 |
| | | userId=-1 |
| | | userName=233 |